import { BaseGateway } from '@atomixdesign/nodepay-core';
import { DirectDebit, OnceOffPayment, RecurringPayment, CustomerDetails } from '@atomixdesign/nodepay-core/features';
import { EzidebitConfig, EzidebitCharge, EzidebitPaymentSchedule, EzidebitDirectDebit, EzidebitCustomer, EzidebitCreditCard, EzidebitCustomerDetails, EzidebitBankAccount } from './types';
import { IEzidebitAPIResponse } from './transport';
export declare class Ezidebit extends BaseGateway<EzidebitConfig> implements DirectDebit, OnceOffPayment, RecurringPayment, CustomerDetails {
    private api;
    protected get baseConfig(): EzidebitConfig;
    constructor(config?: Partial<EzidebitConfig>);
    get name(): string;
    get shortName(): string;
    addCustomer(customer: EzidebitCustomer, creditCard?: EzidebitCreditCard, bankAccount?: EzidebitBankAccount): Promise<IEzidebitAPIResponse>;
    updateCustomer(reference: string, customerDetails: EzidebitCustomerDetails, creditCard?: EzidebitCreditCard, bankAccount?: EzidebitBankAccount): Promise<IEzidebitAPIResponse>;
    directDebit(directDebitCharge: EzidebitDirectDebit): Promise<IEzidebitAPIResponse>;
    charge(onceOffCharge: EzidebitCharge, creditCard: EzidebitCreditCard): Promise<IEzidebitAPIResponse>;
    chargeRecurring(paymentSchedule: EzidebitPaymentSchedule): Promise<IEzidebitAPIResponse>;
}
