import { BaseGateway } from '@atomixdesign/nodepay-core';
import { DirectDebit, OnceOffPayment, RecurringPayment, CustomerDetails } from '@atomixdesign/nodepay-core/features';
import { PaywayConfig, PaywayCharge, PaywayDirectDebit, PaywayCustomer, PaywayPaymentSchedule, PaywayCreditCard, PaywayAddress, PaywayBankAccount } from './types';
import { IPaywayAPIResponse } from './transport';
export declare class Payway extends BaseGateway<PaywayConfig> implements DirectDebit, OnceOffPayment, RecurringPayment, CustomerDetails {
    private api;
    protected get baseConfig(): PaywayConfig;
    constructor(config?: Partial<PaywayConfig>);
    get name(): string;
    get shortName(): string;
    addCustomer(customerDetails: PaywayCustomer, creditCard?: PaywayCreditCard, bankAccount?: PaywayBankAccount): Promise<IPaywayAPIResponse>;
    updateCustomer(reference: string, customerDetails: PaywayAddress, creditCard?: PaywayCreditCard, bankAccount?: PaywayBankAccount): Promise<IPaywayAPIResponse>;
    directDebit(directDebitCharge: PaywayDirectDebit): Promise<IPaywayAPIResponse>;
    charge(onceOffCharge: PaywayCharge, creditCard?: PaywayCreditCard): Promise<IPaywayAPIResponse>;
    chargeRecurring(paymentSchedule: PaywayPaymentSchedule): Promise<IPaywayAPIResponse>;
}
