import { Listener, ListenerChild } from "../utils/Listener"; import { Socket } from "./Socket/Socket"; import { Stream } from "./Stream/Stream"; import { PERIOD_FIELD, RelevantCurrencies } from "../interface/Enum"; import { SocketConnection } from "./Socket/SocketConnection"; import { StreamConnection } from "./Stream/StreamConnection"; import { Trading } from "./Trading/Trading"; import { Logger } from "../utils/Logger"; import { TradeRecord } from "./TradeRecord"; import { Counter } from "../utils/Counter"; export declare const DefaultHost = "ws.xapi.pro"; export declare const DefaultRateLimit = 850; export type XAPIConfig = { accountId: string; password: string; accountType?: 'real' | 'demo'; type?: 'real' | 'demo'; rateLimit?: number; host?: string; appName?: string; tradingDisabled?: boolean; }; export declare class XAPI extends Listener { Stream: Stream; Socket: Socket; trading: Trading; logger: Logger; counter: Counter; private _serverTime; connections: Record; constructor(config: XAPIConfig, logger?: Logger, counter?: Counter); get Time(): null | Date; onClose(callback: (params: { socket: { socketId: string; connection: SocketConnection | null; }; stream: { streamId: string; connection: StreamConnection | null; }; }) => void): ListenerChild[]; onTransactionUpdate(callback: (params: { key: 'BALANCE' | 'PENDING' | 'DELETE' | 'MODIFY' | 'CREATED'; trade: TradeRecord; }) => void, key?: string | null): ListenerChild; connect({ timeout }?: { timeout: number; }): Promise<{ socketId: string; streamId: string; }>; getAccountCurrencyValue(anotherCurrency: RelevantCurrencies): Promise; getPriceHistory({ symbol, period, ticks, startUTC, socketId, }: { symbol: string; period?: PERIOD_FIELD | undefined; ticks?: number | null; startUTC?: number | null; socketId?: string | undefined; }): Promise<{ symbol: string; period: PERIOD_FIELD; candles: { timestamp: number; open: number; close: number; low: number; high: number; volume: number; }[]; digits: number; json: string; }>; disconnect(socketId?: string | undefined): Promise[]>; }