import { EzidebitConfig } from '../types';
import { IEzidebitAPIResponse } from './api-response';
import { BankAccountDTO, CreditCardDTO, CustomerDTO, OnceOffChargeDTO, PaymentDTO, PaymentScheduleDTO, CustomerDetailsDTO } from './dtos';
export declare class EzidebitAPI {
    private config;
    private soapClient;
    private nonPCISoapClient;
    constructor(config: EzidebitConfig);
    private ensureClient;
    describe(pci?: boolean): Promise<unknown>;
    addCustomer(customer: CustomerDTO): Promise<IEzidebitAPIResponse>;
    updateCustomer(customerDetails: CustomerDetailsDTO): Promise<IEzidebitAPIResponse>;
    addCustomerCreditCard(creditCard: CreditCardDTO): Promise<IEzidebitAPIResponse>;
    addCustomerBankAccount(bankAccount: BankAccountDTO): Promise<IEzidebitAPIResponse>;
    placeCharge(charge: OnceOffChargeDTO): Promise<IEzidebitAPIResponse>;
    placeDirectCharge(payment: PaymentDTO): Promise<IEzidebitAPIResponse>;
    schedulePayment(schedule: PaymentScheduleDTO): Promise<IEzidebitAPIResponse>;
}
