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
TypeScript
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