import { ListResult } from '../list_result';
import { RequestWrapper } from "../request_wrapper";
import { Model } from "./model";
import { filter } from "../filter";
export declare class PaymentSource extends Model {
    id: string;
    resource_version?: number;
    updated_at?: number;
    created_at: number;
    customer_id: string;
    type: string;
    reference_id: string;
    status: string;
    gateway: string;
    gateway_account_id?: string;
    ip_address?: string;
    issuing_country?: string;
    card?: Card;
    bank_account?: BankAccount;
    boleto?: CustVoucherSource;
    billing_address?: BillingAddress;
    amazon_payment?: AmazonPayment;
    upi?: Upi;
    paypal?: Paypal;
    venmo?: Venmo;
    klarna_pay_now?: KlarnaPayNow;
    mandates?: Array<Mandate>;
    deleted: boolean;
    business_entity_id?: string;
    static create_using_temp_token(params?: _payment_source.create_using_temp_token_params): RequestWrapper;
    static create_using_permanent_token(params?: _payment_source.create_using_permanent_token_params): RequestWrapper;
    static create_using_token(params?: _payment_source.create_using_token_params): RequestWrapper;
    static create_using_payment_intent(params?: _payment_source.create_using_payment_intent_params): RequestWrapper;
    static create_voucher_payment_source(params?: _payment_source.create_voucher_payment_source_params): RequestWrapper;
    static create_card(params?: _payment_source.create_card_params): RequestWrapper;
    static create_bank_account(params?: _payment_source.create_bank_account_params): RequestWrapper;
    static update_card(payment_source_id: string, params?: _payment_source.update_card_params): RequestWrapper;
    static update_bank_account(payment_source_id: string, params?: _payment_source.update_bank_account_params): RequestWrapper;
    static verify_bank_account(payment_source_id: string, params?: _payment_source.verify_bank_account_params): RequestWrapper;
    static retrieve(payment_source_id: string, params?: any): RequestWrapper;
    static list(params?: _payment_source.payment_source_list_params): RequestWrapper<ListResult>;
    static switch_gateway_account(payment_source_id: string, params?: _payment_source.switch_gateway_account_params): RequestWrapper;
    static export_payment_source(payment_source_id: string, params?: _payment_source.export_payment_source_params): RequestWrapper;
    static delete(payment_source_id: string, params?: any): RequestWrapper;
    static delete_local(payment_source_id: string, params?: any): RequestWrapper;
}
export declare class Card extends Model {
    first_name?: string;
    last_name?: string;
    iin: string;
    last4: string;
    brand: string;
    funding_type: string;
    expiry_month: number;
    expiry_year: number;
    billing_addr1?: string;
    billing_addr2?: string;
    billing_city?: string;
    billing_state_code?: string;
    billing_state?: string;
    billing_country?: string;
    billing_zip?: string;
    masked_number?: string;
}
export declare class BankAccount extends Model {
    last4: string;
    name_on_account?: string;
    first_name?: string;
    last_name?: string;
    direct_debit_scheme?: string;
    bank_name?: string;
    mandate_id?: string;
    account_type?: string;
    echeck_type?: string;
    account_holder_type?: string;
    email?: string;
}
export declare class CustVoucherSource extends Model {
    last4: string;
    first_name?: string;
    last_name?: string;
    email?: string;
}
export declare class BillingAddress extends Model {
    first_name?: string;
    last_name?: string;
    email?: string;
    company?: string;
    phone?: string;
    line1?: string;
    line2?: string;
    line3?: string;
    city?: string;
    state_code?: string;
    state?: string;
    country?: string;
    zip?: string;
    validation_status?: string;
}
export declare class AmazonPayment extends Model {
    email?: string;
    agreement_id?: string;
}
export declare class Upi extends Model {
    vpa?: string;
}
export declare class Paypal extends Model {
    email?: string;
    agreement_id?: string;
}
export declare class Venmo extends Model {
    user_name?: string;
}
export declare class KlarnaPayNow extends Model {
    email?: string;
}
export declare class Mandate extends Model {
    id: string;
    subscription_id: string;
    created_at: number;
}
export declare namespace _payment_source {
    interface create_using_temp_token_params {
        customer_id: string;
        gateway_account_id?: string;
        type: string;
        tmp_token: string;
        issuing_country?: string;
        replace_primary_payment_source?: boolean;
        additional_information?: any;
    }
    interface create_using_permanent_token_params {
        customer_id: string;
        type: string;
        gateway_account_id?: string;
        reference_id?: string;
        issuing_country?: string;
        replace_primary_payment_source?: boolean;
        payment_method_token?: string;
        customer_profile_token?: string;
        network_transaction_id?: string;
        mandate_id?: string;
        skip_retrieval?: boolean;
        additional_information?: any;
        card?: card_create_using_permanent_token_params;
        billing_address?: billing_address_create_using_permanent_token_params;
    }
    interface create_using_token_params {
        customer_id: string;
        replace_primary_payment_source?: boolean;
        token_id: string;
    }
    interface create_using_payment_intent_params {
        customer_id: string;
        replace_primary_payment_source?: boolean;
        payment_intent?: payment_intent_create_using_payment_intent_params;
    }
    interface create_voucher_payment_source_params {
        customer_id: string;
        voucher_payment_source?: voucher_payment_source_create_voucher_payment_source_params;
    }
    interface create_card_params {
        customer_id: string;
        replace_primary_payment_source?: boolean;
        card?: card_create_card_params;
    }
    interface create_bank_account_params {
        customer_id: string;
        issuing_country?: string;
        replace_primary_payment_source?: boolean;
        bank_account?: bank_account_create_bank_account_params;
    }
    interface update_card_params {
        gateway_meta_data?: any;
        reference_transaction?: string;
        card?: card_update_card_params;
    }
    interface update_bank_account_params {
        bank_account?: bank_account_update_bank_account_params;
    }
    interface verify_bank_account_params {
        amount1: number;
        amount2: number;
    }
    interface payment_source_list_params {
        limit?: number;
        offset?: string;
        subscription_id?: string;
        include_deleted?: boolean;
        customer_id?: filter._string;
        type?: filter._enum;
        status?: filter._enum;
        updated_at?: filter._timestamp;
        created_at?: filter._timestamp;
        "sort_by[asc]"?: string;
        "sort_by[desc]"?: string;
    }
    interface switch_gateway_account_params {
        gateway_account_id: string;
    }
    interface export_payment_source_params {
        gateway_account_id: string;
    }
    interface card_create_using_permanent_token_params {
        last4?: string;
    }
    interface card_create_using_permanent_token_params {
        iin?: string;
    }
    interface card_create_using_permanent_token_params {
        expiry_month?: number;
    }
    interface card_create_using_permanent_token_params {
        expiry_year?: number;
    }
    interface card_create_using_permanent_token_params {
        brand?: string;
    }
    interface card_create_using_permanent_token_params {
        funding_type?: string;
    }
    interface billing_address_create_using_permanent_token_params {
        first_name?: string;
    }
    interface billing_address_create_using_permanent_token_params {
        last_name?: string;
    }
    interface billing_address_create_using_permanent_token_params {
        email?: string;
    }
    interface billing_address_create_using_permanent_token_params {
        line1?: string;
    }
    interface billing_address_create_using_permanent_token_params {
        line2?: string;
    }
    interface billing_address_create_using_permanent_token_params {
        line3?: string;
    }
    interface billing_address_create_using_permanent_token_params {
        city?: string;
    }
    interface billing_address_create_using_permanent_token_params {
        state_code?: string;
    }
    interface billing_address_create_using_permanent_token_params {
        state?: string;
    }
    interface billing_address_create_using_permanent_token_params {
        zip?: string;
    }
    interface billing_address_create_using_permanent_token_params {
        country?: string;
    }
    interface payment_intent_create_using_payment_intent_params {
        id?: string;
    }
    interface payment_intent_create_using_payment_intent_params {
        gateway_account_id?: string;
    }
    interface payment_intent_create_using_payment_intent_params {
        gw_token?: string;
    }
    interface payment_intent_create_using_payment_intent_params {
        payment_method_type?: string;
    }
    interface payment_intent_create_using_payment_intent_params {
        reference_id?: string;
    }
    interface payment_intent_create_using_payment_intent_params {
        /**
         * @deprecated Please refer API docs to use other attributes
         */
        gw_payment_method_id?: string;
    }
    interface payment_intent_create_using_payment_intent_params {
        additional_info?: any;
    }
    interface payment_intent_create_using_payment_intent_params {
        additional_information?: any;
    }
    interface voucher_payment_source_create_voucher_payment_source_params {
        voucher_type: string;
    }
    interface voucher_payment_source_create_voucher_payment_source_params {
        gateway_account_id?: string;
    }
    interface voucher_payment_source_create_voucher_payment_source_params {
        tax_id?: string;
    }
    interface voucher_payment_source_create_voucher_payment_source_params {
        billing_address?: any;
    }
    interface card_create_card_params {
        gateway_account_id?: string;
    }
    interface card_create_card_params {
        first_name?: string;
    }
    interface card_create_card_params {
        last_name?: string;
    }
    interface card_create_card_params {
        number: string;
    }
    interface card_create_card_params {
        expiry_month: number;
    }
    interface card_create_card_params {
        expiry_year: number;
    }
    interface card_create_card_params {
        cvv?: string;
    }
    interface card_create_card_params {
        preferred_scheme?: string;
    }
    interface card_create_card_params {
        billing_addr1?: string;
    }
    interface card_create_card_params {
        billing_addr2?: string;
    }
    interface card_create_card_params {
        billing_city?: string;
    }
    interface card_create_card_params {
        billing_state_code?: string;
    }
    interface card_create_card_params {
        billing_state?: string;
    }
    interface card_create_card_params {
        billing_zip?: string;
    }
    interface card_create_card_params {
        billing_country?: string;
    }
    interface card_create_card_params {
        additional_information?: any;
    }
    interface bank_account_create_bank_account_params {
        gateway_account_id?: string;
    }
    interface bank_account_create_bank_account_params {
        iban?: string;
    }
    interface bank_account_create_bank_account_params {
        first_name?: string;
    }
    interface bank_account_create_bank_account_params {
        last_name?: string;
    }
    interface bank_account_create_bank_account_params {
        company?: string;
    }
    interface bank_account_create_bank_account_params {
        email?: string;
    }
    interface bank_account_create_bank_account_params {
        phone?: string;
    }
    interface bank_account_create_bank_account_params {
        bank_name?: string;
    }
    interface bank_account_create_bank_account_params {
        account_number?: string;
    }
    interface bank_account_create_bank_account_params {
        routing_number?: string;
    }
    interface bank_account_create_bank_account_params {
        bank_code?: string;
    }
    interface bank_account_create_bank_account_params {
        account_type?: string;
    }
    interface bank_account_create_bank_account_params {
        account_holder_type?: string;
    }
    interface bank_account_create_bank_account_params {
        echeck_type?: string;
    }
    interface bank_account_create_bank_account_params {
        swedish_identity_number?: string;
    }
    interface bank_account_create_bank_account_params {
        billing_address?: any;
    }
    interface card_update_card_params {
        first_name?: string;
    }
    interface card_update_card_params {
        last_name?: string;
    }
    interface card_update_card_params {
        expiry_month?: number;
    }
    interface card_update_card_params {
        expiry_year?: number;
    }
    interface card_update_card_params {
        billing_addr1?: string;
    }
    interface card_update_card_params {
        billing_addr2?: string;
    }
    interface card_update_card_params {
        billing_city?: string;
    }
    interface card_update_card_params {
        billing_zip?: string;
    }
    interface card_update_card_params {
        billing_state_code?: string;
    }
    interface card_update_card_params {
        billing_state?: string;
    }
    interface card_update_card_params {
        billing_country?: string;
    }
    interface card_update_card_params {
        additional_information?: any;
    }
    interface bank_account_update_bank_account_params {
        first_name?: string;
    }
    interface bank_account_update_bank_account_params {
        last_name?: string;
    }
    interface bank_account_update_bank_account_params {
        email?: string;
    }
}
