import { FatzebraConfig } from '../types';
import { IFatzebraAPIResponse } from './api-response';
import { ChargeDTO, CreditCardDTO, CustomerDTO, BankAccountDTO } from './dtos';
import { PaymentPlanDTO } from './dtos/payment-plan';
import { DirectDebitDTO } from './dtos/direct-debit';
export declare class FatzebraAPI {
    private config;
    private httpClient;
    constructor(config: FatzebraConfig);
    private _request;
    private _get;
    private _put;
    private _post;
    getCCtoken(creditCard: CreditCardDTO): Promise<IFatzebraAPIResponse>;
    getBankAccountToken(bankAccount: BankAccountDTO): Promise<IFatzebraAPIResponse>;
    getCustomer(reference: string): Promise<IFatzebraAPIResponse>;
    addCustomer(customer: CustomerDTO): Promise<IFatzebraAPIResponse>;
    updateCustomer(reference: string, customer: CustomerDTO): Promise<IFatzebraAPIResponse>;
    addDirectDebit(directDebit: DirectDebitDTO): Promise<IFatzebraAPIResponse>;
    addPaymentPlan(subscription: PaymentPlanDTO): Promise<IFatzebraAPIResponse>;
    placeCharge(charge: ChargeDTO): Promise<IFatzebraAPIResponse>;
}
