export interface FramePayComponentProps {
    // Framepay Api
    readonly Framepay: FramepayProps;

    // Card Components
    readonly CardCvvElement: React.ElementType;
    readonly CardElement: React.ElementType;
    readonly CardExpiryElement: React.ElementType;
    readonly CardNumberElement: React.ElementType;

    // Bank Components
    readonly BankAccountNumberElement: React.ElementType;
    readonly BankAccountTypeElement: React.ElementType;
    readonly BankRoutingNumberElement: React.ElementType;

    // IBAN components
    readonly IBANElement: React.ElementType;

    // Express method components
    readonly ApplePayElement: React.ElementType;
    readonly SamsungPayElement: React.ElementType;
    readonly GooglePayElement: React.ElementType;
    readonly PaypalElement: React.ElementType;
}

export interface FramePayCardProps {
    readonly Framepay: FramepayProps;
    readonly CardCvvElement: React.ElementType;
    readonly CardElement: React.ElementType;
    readonly CardExpiryElement: React.ElementType;
    readonly CardNumberElement: React.ElementType;
}

export interface FramePayBankProps {
    readonly Framepay: FramepayProps;
    readonly BankAccountNumberElement: React.ElementType;
    readonly BankAccountTypeElement: React.ElementType;
    readonly BankRoutingNumberElement: React.ElementType;
}

export interface FramePayIBANProps {
    readonly Framepay: FramepayProps;
    readonly IBANElement: React.ElementType;
}

export interface FramePayApplePayProps {
    readonly Framepay: FramepayProps;
    readonly ApplePayElement: React.ElementType;
}

export interface FramePaySamsungPayProps {
    readonly Framepay: FramepayProps;
    readonly SamsungPayElement: React.ElementType;
}

export interface FramePayGooglePayProps {
    readonly Framepay: FramepayProps;
    readonly GooglePayElement: React.ElementType;
}

export interface FramePayPaypalProps {
    readonly Framepay: FramepayProps;
    readonly PaypalElement: React.ElementType;
}
