/// <reference types="node" />
import { MobileMoneyCheckoutOptions, CheckoutResult, PaymentProvider, RefundOptions, RefundResult, CreditCardCheckoutOptions, RedirectCheckoutOptions, HandleWebhookOptions, MobileMoneyPayoutOptions, PayoutResult } from "../payment-provider.interface";
import EventEmitter2 from "eventemitter2";
import { PaymentFailedEvent, PaymentInitiatedEvent, PaymentSuccessfulEvent } from "../payment-events";
declare class StripePaymentProvider implements PaymentProvider {
    private config;
    private eventEmitter?;
    private stripe;
    private webhookSecret?;
    constructor(config: StripePaymentProviderConfig);
    init(): Promise<void>;
    useEventEmitter(eventEmitter: EventEmitter2): void;
    checkoutMobileMoney(options: MobileMoneyCheckoutOptions): Promise<CheckoutResult>;
    checkoutCreditCard(options: CreditCardCheckoutOptions): Promise<CheckoutResult>;
    checkoutRedirect(options: RedirectCheckoutOptions): Promise<CheckoutResult>;
    refund(options: RefundOptions): Promise<RefundResult>;
    payoutMobileMoney(options: MobileMoneyPayoutOptions): Promise<PayoutResult>;
    handleWebhook(rawBody: Buffer | string, options: HandleWebhookOptions): Promise<PaymentInitiatedEvent | PaymentSuccessfulEvent | PaymentFailedEvent | null>;
}
type StripePaymentProviderConfig = {
    privateKey: string;
    webhookUrl?: string;
    webhookSecret?: string;
};
export default StripePaymentProvider;
//# sourceMappingURL=stripe.d.ts.map