declare namespace ICard {
    interface AuthorizePreAuthRequest {
        amount: string | number;
        cardNumber: string;
        cvv?: string;
        expiryMonth: string;
        expiryYear: string;
        country: string;
        currency: string;
        email: string;
        fullName?: string;
        paymentReference: string;
        productDescription?: string | null;
        productId?: string | null;
        publicKey?: string;
        cardToken?: string;
    }
    interface TokenizeCardRequest {
        amount: string | number;
        cardNumber: string;
        cvv?: string;
        expiryMonth: string;
        expiryYear: string;
        country: string;
        currency: string;
        email: string;
        fullName?: string;
        paymentReference: string;
        productDescription?: string | null;
        productId?: string | null;
        publicKey?: string;
        cardToken?: string;
        pin?: string;
    }
    interface AuthorizePreAuthRequestWithToken {
        amount: string | number;
        country: string;
        currency: string;
        email: string;
        fullName?: string;
        paymentReference: string;
        productDescription?: string | null;
        productId?: string | null;
        publicKey?: string;
        cardToken: string;
    }
    interface CapturePreAuthRequest {
        /**
         * Authorized Amount.
         */
        amount: string | number;
        /**
         * Country Code.
         */
        country: string;
        /**
         * Currency Code.
         */
        currency: string;
        /**
         * Payment or Transaction Reference.
         */
        paymentReference: string;
        /**
         * Product Description.
         * * optional
         */
        productDescription?: string | null;
        /**
         * Product ID.
         * * optional
         */
        productId?: string | null;
        publicKey?: string;
    }
    interface CancelPreAuthRequest {
        paymentReference: string;
        country: string;
        productDescription?: string | null;
        productId?: string | null;
        publicKey?: string;
    }
    interface RefundPreAuthRequest {
        paymentReference: string;
        country: string;
        currency: string;
        productDescription?: string | null;
        productId?: string | null;
        publicKey?: string;
    }
    interface Response {
        code: string;
        payments: {};
        message: string;
    }
}
