///
import { EventEmitter } from 'events';
import { Transport } from './transport';
import Payment from './payment';
import IChannelManager from './IChannelManager';
import { AcceptPaymentRequest } from './accept_payment_request';
import { AcceptPaymentResponse } from './accept_payment_response';
import { AcceptTokenRequest } from './accept_token_request';
import { AcceptTokenResponse } from './accept_token_response';
import { PaymentRequiredResponse } from './PaymentRequiredResponse';
export default interface Client extends EventEmitter {
doPreflight(sender: string, gateway: string, datetime?: number): Promise;
doPayment(payment: Payment, gateway: string, purchaseMeta?: any): Promise;
acceptPayment(req: AcceptPaymentRequest): Promise;
doVerify(token: string, gateway: string): Promise;
acceptVerify(req: AcceptTokenRequest): Promise;
}
export declare class ClientImpl extends EventEmitter implements Client {
private transport;
private channelManager;
constructor(transport: Transport, channelManager: IChannelManager);
doPreflight(sender: string, gateway: string, datetime?: number): Promise;
doPayment(payment: Payment, gateway: string, purchaseMeta?: any): Promise;
acceptPayment(req: AcceptPaymentRequest): Promise;
doVerify(token: string, gateway: string): Promise;
acceptVerify(req: AcceptTokenRequest): Promise;
}