import { PaystreamConfig } from '../types';
import { IPaystreamAPIResponse } from './api-response';
import { ChargeDTO, CreditCardDTO, PlanDTO, CustomerDTO, BankAccountDTO } from './dtos';
import { SubscriptionDTO } from './dtos/subscription';
export declare class PaystreamAPI {
    private config;
    private httpClient;
    constructor(config: PaystreamConfig);
    private _request;
    private _get;
    private _put;
    private _post;
    getCCtoken(creditCard: CreditCardDTO): Promise<IPaystreamAPIResponse>;
    getBankAccountToken(bankAccount: BankAccountDTO): Promise<IPaystreamAPIResponse>;
    addCustomer(customer: CustomerDTO): Promise<IPaystreamAPIResponse>;
    updateCustomer(reference: string, customer: CustomerDTO): Promise<IPaystreamAPIResponse>;
    listPlans(): Promise<IPaystreamAPIResponse>;
    addPlan(plan: PlanDTO): Promise<IPaystreamAPIResponse>;
    addSubscription(subscription: SubscriptionDTO): Promise<IPaystreamAPIResponse>;
    placeCharge(charge: ChargeDTO): Promise<IPaystreamAPIResponse>;
}
