UNPKG

betfair-node

Version:

A comprehensive Node.js TypeScript library for the Betfair Exchange API, providing both JSON-RPC API integration and real-time Exchange Stream API support for automated betting and trading applications.

78 lines 3.51 kB
import { TLSSocket } from 'tls'; import { Interface } from 'readline'; import { MarketSubscriptionMessage, OrderSubscriptionMessage, CurrencyRate, MarketChangeCallback, OrderChangeCallback, RawDataCallback, OrderFilter } from './betfair-exchange-stream-api-types'; import { StreamDecoderState } from './betfair-stream-decoder'; import { HeartbeatState } from './heartbeat'; export interface StreamApiState { tlsSocket?: TLSSocket; readline?: Interface; authenticationStatus: boolean; authToken: string; appKey: string; connectionId?: string; pendingPackets: { [key: string]: string; }; streamDecoder: StreamDecoderState; heartbeat: HeartbeatState; segmentationEnabled: boolean; conflateMs: number; heartbeatMs: number; audCurrencyRate: CurrencyRate; lastMarketSubscription?: MarketSubscriptionMessage; lastOrderSubscription?: OrderSubscriptionMessage; lastMarkets: string[]; marketChangeCallback: MarketChangeCallback; orderChangeCallback?: OrderChangeCallback; rawDataCallback?: RawDataCallback; } /** * Creates initial stream API state */ export declare const createStreamApiState: (authToken: string, appKey: string, segmentationEnabled: boolean, conflateMs: number, heartbeatMs: number, audCurrencyRate: CurrencyRate, marketChangeCallback: MarketChangeCallback, orderChangeCallback?: OrderChangeCallback, rawDataCallback?: RawDataCallback) => StreamApiState; /** * Opens the TLS stream connection */ export declare const openStream: (state: StreamApiState) => Promise<StreamApiState>; /** * Closes the stream connection */ export declare const closeStream: (state: StreamApiState) => StreamApiState; /** * Authenticates the stream connection */ export declare const authenticateStream: (state: StreamApiState) => StreamApiState; /** * Subscribes to market updates */ export declare const subscribeToMarkets: (state: StreamApiState, marketIds: string[]) => StreamApiState; /** * Subscribes to order updates */ export declare const subscribeToOrders: (state: StreamApiState, orderFilter?: OrderFilter) => StreamApiState; /** * Gets the current market cache */ export declare const getStreamCache: (state: StreamApiState) => { [key: string]: any; }; /** * Gets the current order cache */ export declare const getOrderStreamCache: (state: StreamApiState) => { [key: string]: any; }; /** * Updates authentication credentials */ export declare const setAuthCredentials: (state: StreamApiState, appKey: string, authToken: string) => StreamApiState; /** * Restarts the stream connection */ export declare const restartStream: (state: StreamApiState) => Promise<StreamApiState>; export declare const createAndConnectStream: (authToken: string, appKey: string, segmentationEnabled: boolean, conflateMs: number, heartbeatMs: number, audCurrencyRate: CurrencyRate, marketChangeCallback: MarketChangeCallback, orderChangeCallback?: OrderChangeCallback, rawDataCallback?: RawDataCallback) => Promise<StreamApiState>; /** * Creates and connects a stream specifically optimized for recording with more lenient heartbeat */ export declare const createAndConnectRecordingStream: (authToken: string, appKey: string, segmentationEnabled: boolean, conflateMs: number, audCurrencyRate: CurrencyRate, marketChangeCallback: MarketChangeCallback, orderChangeCallback?: OrderChangeCallback, rawDataCallback?: RawDataCallback) => Promise<StreamApiState>; //# sourceMappingURL=betfair-exchange-stream-api.d.ts.map