import { Payment } from './Payment'; import { Query } from './Query'; import { Action } from './Action'; import { ECPayAIOServiceUrls, MerchantMode, MerchantConfig, BasePaymentParams, PaymentParams, QueryParams, ActionParams } from '../types'; declare type PaymentConstructor = { new (merchant: Merchant, baseParams: BasePaymentParams, params: SpecificPaymentParams): SpecificPaymentClass; }; declare type QueryConstructor = { new (merchant: Merchant, params: SpecificQueryParams): SpecificQueryClass; }; declare type ActionConstructor = { new (merchant: Merchant, params: SpecificActionParams): SpecificActionClass; }; export declare class Merchant { private readonly version; readonly mode: MerchantMode; readonly config: MerchantConfig; readonly ecpayServiceUrls: ECPayAIOServiceUrls; constructor(mode: MerchantMode, config: MerchantConfig, ecpayServiceUrls?: ECPayAIOServiceUrls); createPayment, SpecificPaymentParams>(PaymentCtor: PaymentConstructor, baseParams: BasePaymentParams, params: SpecificPaymentParams): SpecificPaymentClass; createQuery, SpecificQueryParams>(QueryCtor: QueryConstructor, params: SpecificQueryParams): SpecificQueryClass; createAction, SpecificActionParams>(ActionCtor: ActionConstructor, params: SpecificActionParams): SpecificActionClass; _mergeServiceUrls(customUrls: ECPayAIOServiceUrls): ECPayAIOServiceUrls; } export {};