export interface PaymentIntent {
    providerRef: string;
    checkoutUrl: string;
    expiresAt?: Date;
}
export interface PaymentProvider {
    readonly code: string;
    readonly currencies: string[];
    createIntent(params: {
        paymentId: string;
        amount: number;
        currency: string;
        description: string;
        successUrl: string;
        failureUrl: string;
        metadata?: Record<string, string>;
    }): Promise<PaymentIntent>;
    parseWebhook(rawBody: string, headers: Record<string, string>): Promise<{
        paymentId: string;
        status: 'SUCCEEDED' | 'FAILED';
        providerRef: string;
    }>;
}
export declare class StubPaymentProvider implements PaymentProvider {
    readonly code = "STUB";
    readonly currencies: string[];
    private readonly logger;
    createIntent(params: any): Promise<PaymentIntent>;
    parseWebhook(rawBody: string, headers?: Record<string, string>): Promise<{
        paymentId: any;
        status: "FAILED" | "SUCCEEDED";
        providerRef: any;
    }>;
}
export declare class YouCanPayProvider implements PaymentProvider {
    readonly code = "YOUCAN_PAY";
    readonly currencies: string[];
    private readonly logger;
    createIntent(params: any): Promise<PaymentIntent>;
    parseWebhook(rawBody: string, headers?: Record<string, string>): Promise<{
        paymentId: any;
        status: "FAILED" | "SUCCEEDED";
        providerRef: any;
    }>;
}
