import type { Stripe } from '@stripe/stripe-js';
import type { Provider, PaymentMethodsType, StripeGatewayOptions } from '../../@types';
type StripeOptionsMode = 'payment' | 'setup' | 'subscription';
declare class StripeProviderFactory implements Provider {
    static provider: Promise<Stripe | null>;
    private loadProvider;
    createProvider(params?: StripeGatewayOptions): {
        provider: Promise<Stripe>;
        getOptions: (method: PaymentMethodsType | PaymentMethodsType[]) => {
            mode: StripeOptionsMode;
            paymentMethodCreation: "manual";
            amount: number;
            currency: string;
        } | {
            onBehalfOf: string;
            mode?: undefined;
            paymentMethodCreation?: undefined;
            amount?: undefined;
            currency?: undefined;
        };
    };
}
export declare const stripeProviderFactory: StripeProviderFactory;
export {};
