from _typeshed import Incomplete

from braintree.error_result import ErrorResult
from braintree.resource_collection import ResourceCollection
from braintree.subscription import Subscription
from braintree.successful_result import SuccessfulResult

class SubscriptionGateway:
    gateway: Incomplete
    config: Incomplete
    def __init__(self, gateway) -> None: ...
    def cancel(self, subscription_id: str) -> SuccessfulResult | ErrorResult | None: ...
    def create(self, params: dict[str, Incomplete] | None = None) -> SuccessfulResult | ErrorResult | None: ...
    def find(self, subscription_id: str) -> Subscription: ...
    def retry_charge(self, subscription_id, amount=None, submit_for_settlement: bool = False): ...
    def search(self, *query) -> ResourceCollection: ...
    def update(
        self, subscription_id: str, params: dict[str, Incomplete] | None = None
    ) -> SuccessfulResult | ErrorResult | None: ...
