import { Config } from './common/config';
import { AnalyticsClient } from './client/analyticsClient';
import { Authentication } from './api/authentication';
import { AccountCapability } from './api/accountCapability';
import { Issuing } from './api/issuing';
import { ConfirmationLetter } from './api/confirmationLetter';
import { CoreResources } from './api/coreResources';
import { Finance } from './api/finance';
import { PaymentAcceptance } from './api/paymentAcceptance';
import { Payouts } from './api/payouts';
import { Risk } from './api/risk';
import { Scale } from './api/scale';
import { Simulation } from './api/simulation';
import { TransactionalFX } from './api/transactionalFX';
import { RequestConfig } from './common/request';
export declare let analyticsClient: AnalyticsClient;
export declare class Airwallex {
    private _token;
    private _clearTokenTimer;
    private _loginMutex;
    private _simulation;
    config: Config;
    accountCapability: AccountCapability;
    authentication: Authentication;
    confirmationLetter: ConfirmationLetter;
    coreResources: CoreResources;
    finance: Finance;
    issuing: Issuing;
    paymentAcceptance: PaymentAcceptance;
    payouts: Payouts;
    risk: Risk;
    scale: Scale;
    transactionalFX: TransactionalFX;
    private readonly TIMEOUT_REFRESH_TOKEN;
    get: (url: string, options?: RequestConfig) => Promise<any>;
    post: (url: string, data: any, options?: RequestConfig) => Promise<any>;
    put: (url: string, data: any, options?: RequestConfig) => Promise<any>;
    patch: (url: string, data: any, options?: RequestConfig) => Promise<any>;
    delete: (url: string, options?: RequestConfig) => Promise<any>;
    constructor(config: Config);
    _cleanup(): void;
    get simulation(): Simulation;
    get token(): string | undefined;
    get basePath(): string;
    private _clearToken;
    private _setTimeout;
    private _clearTimeout;
    login(forceRefresh?: boolean): Promise<void>;
}
//# sourceMappingURL=airwallex.core.d.ts.map