import { ReconnectingWebSocket } from "@iam4x/reconnecting-websocket"; import type { BybitPlaceOrderOpts } from "./bybit.types"; import type { BybitWorker } from "./bybit.worker"; import type { Account, Order } from "../../types/lib.types"; type Data = { op: string; reqId?: string; header?: Record; args?: string[] | Record[]; }; export declare class BybitWsTrading { account: Account; parent: BybitWorker; pingAt: number; isStopped: boolean; ws: ReconnectingWebSocket | null; interval: NodeJS.Timeout | null; pendingRequests: Map void>; queue: { payload: Data; consume: number; }[]; isProcessing: boolean; rateLimit: number; queueInterval: number; constructor({ account, parent }: { account: Account; parent: BybitWorker; }); listenWebsocket: () => void; onOpen: () => Promise; auth: () => Promise; ping: () => void; onPong: () => void; onMessage: (event: MessageEvent) => void; onClose: () => void; send: (data: Data) => void; placeOrders: ({ orders, priority, retry, }: { orders: BybitPlaceOrderOpts[]; priority?: boolean; retry?: boolean; }) => Promise; updateOrders: ({ updates, priority, }: { updates: { order: Order; update: { price: number; } | { amount: number; }; }[]; priority?: boolean; }) => Promise; cancelOrders: ({ orders, priority, }: { orders: Order[]; priority?: boolean; }) => Promise; enqueueSend: ({ payload, consume, priority, }: { payload: Data; consume?: number; priority?: boolean; }) => void; processQueue: () => Promise; stop: () => void; } export {};