import { CustomerDetails, DirectDebit, OnceOffPayment, RecurringPayment } from './features';
import { IDirectDebit, IBaseCharge, ICustomerDetails, ICreditCard, IBankAccount } from './types';
import { IBaseResponse } from './network';
import { BaseGateway } from './gateways';
export declare class Context implements CustomerDetails, DirectDebit, OnceOffPayment, RecurringPayment {
    private gateway?;
    [x: string]: any;
    constructor(gateway?: any);
    use(adapter: BaseGateway): void;
    get name(): string;
    get shortName(): string;
    private dispatch;
    createBankAccount(bankAccount: IBankAccount | undefined): Promise<IBaseResponse>;
    addCustomer(customerDetails: ICustomerDetails, creditCard?: ICreditCard | undefined, bankAccount?: IBankAccount | undefined): Promise<IBaseResponse>;
    updateCustomer(reference: string, customerDetails: ICustomerDetails, creditCard?: ICreditCard | undefined, bankAccount?: IBankAccount | undefined): Promise<IBaseResponse>;
    directDebit(directDebitCharge: IDirectDebit): Promise<IBaseResponse>;
    charge(onceOffCharge: IBaseCharge, creditCard?: ICreditCard | undefined): Promise<IBaseResponse>;
    chargeRecurring(...arguments_: unknown[]): Promise<unknown>;
    __noSuchMethod__(name: string, arguments_: any): any;
}
