/**
 * Interface for Chargebee payment method manage from the API server
 */
import { PaymentGateway } from "../checkout";
/**
 * Interface for Stripe payment methods from the API server
 */
export declare type APIStripePaymentMethod = {
    id: string;
    name: string | null;
    brand: string;
    last4: string;
    exp_month: number;
    exp_year: number;
    is_default: boolean;
};
/**
 * Interface for Stripe payment methods for the Redux store
 */
export declare type StoreStripePaymentMethod = Omit<APIStripePaymentMethod, "exp_month" | "exp_year" | "is_default"> & {
    expMonth: APIStripePaymentMethod["exp_month"];
    expYear: APIStripePaymentMethod["exp_year"];
    isDefault: APIStripePaymentMethod["is_default"];
};
/**
 * Interface for PayPal payment method from the API server
 */
export declare type APIPayPalPaymentMethod = {
    id: string;
    email: string;
    is_default: boolean;
};
/**
 * Interface for PayPal payment method for the Redux store
 */
export interface StorePayPalPaymentMethod {
    id: string;
    email: string;
    isDefault: boolean;
}
/**
 * User Payment method interface for the API server.
 */
export interface APIPaymentSource {
    stripe: Array<APIStripePaymentMethod>;
    paypal: Array<APIPayPalPaymentMethod>;
    is_chargebee: boolean;
}
/**
 * User Payment method interface for the Redux store.
 */
export interface StorePaymentSource {
    stripe: Array<StoreStripePaymentMethod>;
    paypal: Array<StorePayPalPaymentMethod>;
    isChargebee: boolean;
}
/**
 * Minimal representation for a payment method for the API server
 */
export interface APIMinimalPaymentMethod {
    id: string;
    payment_gateway: PaymentGateway;
}
/**
 * Minimal representation for a payment method for the Redux store
 */
export interface StoreMinimalPaymentMethod {
    id: string;
    paymentGateway: PaymentGateway;
}
/**
 * Helper types to easily identify PaymentMethod types by the gateway
 */
export interface StripePaymentMethod {
    paymentGateway: "stripe";
    paymentSource: StoreStripePaymentMethod;
}
export interface PayPalPaymentMethod {
    paymentGateway: "paypal";
    paymentSource: StorePayPalPaymentMethod;
}
export declare type PaymentMethod = StripePaymentMethod | PayPalPaymentMethod;
