import { BaseGateway } from '@atomixdesign/nodepay-core';
import { OnceOffPayment, RecurringPayment, CustomerDetails } from '@atomixdesign/nodepay-core/features';
import { PaystreamConfig, PaystreamCharge, PaystreamSubscription, PaystreamCreditCard, PaystreamCustomerDetails, PaystreamPaymentPlan } from './types';
import { IPaystreamAPIResponse } from './transport';
export declare class Paystream extends BaseGateway<PaystreamConfig> implements OnceOffPayment, RecurringPayment, CustomerDetails {
    private api;
    protected get baseConfig(): PaystreamConfig;
    constructor(config?: Partial<PaystreamConfig>);
    get name(): string;
    get shortName(): string;
    addCustomer(customerDetails: PaystreamCustomerDetails, creditCard?: PaystreamCreditCard): Promise<IPaystreamAPIResponse>;
    updateCustomer(reference: string, customerDetails: PaystreamCustomerDetails): Promise<IPaystreamAPIResponse>;
    charge(onceOffCharge: PaystreamCharge, creditCard?: PaystreamCreditCard): Promise<IPaystreamAPIResponse>;
    chargeRecurring(subscription: PaystreamSubscription): Promise<IPaystreamAPIResponse>;
    listPlans(): Promise<IPaystreamAPIResponse>;
    createPlan(paymentPlan: PaystreamPaymentPlan): Promise<IPaystreamAPIResponse>;
}
