/// /// import events from "events"; import WebSocket from "ws"; import { MessagePack } from "msgpack5"; export declare enum STATE { AUTHENTICATING = "authenticating", AUTHENTICATED = "authenticated", CONNECTED = "connected", CONNECTING = "connecting", DISCONNECTED = "disconnected", WAITING_TO_CONNECT = "waiting to connect", WAITING_TO_RECONNECT = "waiting to reconnect" } export declare enum EVENT { CLIENT_ERROR = "client_error", STATE_CHANGE = "state_change", AUTHORIZED = "authorized", UNAUTHORIZED = "unauthorized", TRADES = "stock_trades", QUOTES = "stock_quotes", BARS = "stock_bars", UPDATED_BARS = "stock_updated_bars", DAILY_BARS = "stock_daily_bars", TRADING_STATUSES = "trading_statuses", LULDS = "lulds", CANCEL_ERRORS = "cancel_errors", CORRECTIONS = "corrections", ORDERBOOKS = "orderbooks", NEWS = "news" } export declare const CONN_ERROR: Map; export declare enum ERROR { MISSING_SECERT_KEY = "missing secret key", MISSING_API_KEY = "missing api key", UNEXPECTED_MESSAGE = "unexpected message" } interface WebsocketSession { apiKey: string; secretKey: string; subscriptions: any; reconnect: boolean; verbose: boolean; backoff: boolean; reconnectTimeout: number; maxReconnectTimeout: number; backoffIncrement: number; url: string; currentState: STATE; pongTimeout?: NodeJS.Timeout; pingInterval?: NodeJS.Timer; pongWait: number; isReconnected: boolean; } interface AlpacaBaseWebsocket { session: WebsocketSession; connect: () => void; onConnect: (fn: () => void) => void; reconnect: () => void; onError: (fn: (err: Error) => void) => void; onStateChange: (fn: () => void) => void; authenticate: () => void; handleMessage(data: any): void; disconnect: () => void; onDisconnect: (fn: () => void) => void; getSubscriptions: () => void; log: (msg: Array) => void; } export interface WebsocketOptions { apiKey: string; secretKey: string; url: string; verbose: boolean; subscriptions?: any; } export declare abstract class AlpacaWebsocket extends events.EventEmitter implements AlpacaBaseWebsocket { session: WebsocketSession; msgpack: MessagePack; conn: WebSocket; constructor(options: WebsocketOptions); connect(): void; onConnect(fn: () => void): void; reconnect(): void; ping(): void; authenticate(): void; disconnect(): void; onDisconnect(fn: () => void): void; onError(fn: (err: Error) => void): void; onStateChange(fn: (newState: STATE) => void): void; handleMessage(data: any): void; log(msg: unknown): void; getSubscriptions(): void; resetSession(): void; abstract dataHandler(data: unknown): void; abstract updateSubscriptions(data: unknown): void; abstract subscribeAll(): void; } export {};