import { AxiosDefaults, AxiosInterceptorManager, AxiosRequestConfig, AxiosResponse } from 'axios'; import { EventEmitter } from 'node:events'; import { AccountAPI } from '../account/index.js'; import { RequestSetup, SignedRequest } from '../auth/RequestSigner.js'; import { CurrencyAPI } from '../currency/index.js'; import { ExchangeRateAPI } from '../exchange-rate/ExchangeRateAPI.js'; import { FeeAPI } from '../fee/index.js'; import { FillAPI } from '../fill/index.js'; import { OrderAPI } from '../order/index.js'; import { Candle, CandleGranularity, ProductAPI, ProductEvent } from '../product/index.js'; import { ProfileAPI } from '../profile/index.js'; import { TimeAPI } from '../time/index.js'; import { TransferAPI } from '../transfer/index.js'; import { UserAPI } from '../user/index.js'; import { WithdrawAPI } from '../withdraw/index.js'; export interface RESTClient { on(event: ProductEvent.NEW_CANDLE, listener: (productId: string, granularity: CandleGranularity, candle: Candle) => void): this; } export declare class RESTClient extends EventEmitter { private readonly signRequest; get defaults(): AxiosDefaults; get interceptors(): { request: AxiosInterceptorManager; response: AxiosInterceptorManager; }; readonly account: AccountAPI; readonly currency: CurrencyAPI; readonly exchangeRate: ExchangeRateAPI; readonly fee: FeeAPI; readonly fill: FillAPI; readonly order: OrderAPI; readonly product: ProductAPI; readonly profile: ProfileAPI; readonly time: TimeAPI; readonly transfer: TransferAPI; readonly user: UserAPI; readonly withdraw: WithdrawAPI; private readonly httpClient; private readonly logger; constructor(baseURL: string, signRequest: (setup: RequestSetup) => Promise); static stringifyPayload(config: AxiosRequestConfig): string; }