from _typeshed import Self

from stripe.api_resources.abstract import (
    CreateableAPIResource as CreateableAPIResource,
    ListableAPIResource as ListableAPIResource,
    UpdateableAPIResource as UpdateableAPIResource,
    custom_method as custom_method,
)

class PaymentMethod(CreateableAPIResource, ListableAPIResource, UpdateableAPIResource):
    OBJECT_NAME: str
    def attach(self: Self, idempotency_key: str | None = ..., **params) -> Self: ...
    def detach(self: Self, idempotency_key: str | None = ..., **params) -> Self: ...
