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.
301 lines • 7.33 kB
TypeScript
export type MarketChangeCallback = (marketCache: {
[key: string]: MarketCache;
}, deltas: string[]) => void;
export type OrderChangeCallback = (orderCache: {
[key: string]: OrderAccountCache;
}, deltas: string[]) => void;
export type RawDataCallback = (rawData: string) => void;
export type Message = {
id: number;
op: string;
};
export type CurrencyRate = {
currencyCode: string;
rate: number;
};
export type StatusMessage = Message & {
statusCode: StatusCode;
connectionClosed: boolean;
errorCode: string;
errorMessage: string;
connectionsAvailable: number;
};
export type ConnectionMessage = Message & {
connectionId: string;
};
export type AuthenticationMessage = Message & {
appKey: string;
session: string;
};
export type SubscriptionMessage = Message & {
segmentationEnabled: boolean;
conflateMs: number;
heartbeatMs: number;
initialClk: string;
clk: string;
};
export type ChangeMessage = SubscriptionMessage & {
ct: ChangeType;
status: number;
pt: number;
con: boolean;
segmentationType?: string;
};
export type StreamMarketFilter = {
marketIds?: string[];
bspMarket?: boolean;
bettingTypes?: BettingType[];
eventTypeIds?: string[];
eventIds?: string[];
turnInPlayEnabled?: boolean;
marketTypes?: string[];
venues?: string[];
countryCodes?: string[];
raceTypes?: string[];
};
export type MarketDataFilter = Record<string, never>;
export type MarketChangeMessage = ChangeMessage & {
mc: MarketChange[];
};
export type RunnerChange = {
id: number;
con?: boolean;
tv?: number;
ltp?: number;
spn?: number;
spf?: number;
batb?: [number, number, number][];
batl?: [number, number, number][];
bdatb?: [number, number, number][];
bdatl?: [number, number, number][];
atb?: [number, number][];
atl?: [number, number][];
spb?: [number, number][];
spl?: [number, number][];
trd?: [number, number][];
};
export type MarketDefinition = {
venue: string;
bspMarket: boolean;
turnInPlayEnabled: boolean;
persistenceEnabled: boolean;
marketBaseRate: number;
eventId: string;
eventTypeId: string;
numberOfWinners: number;
bettingType: string;
marketType: string;
marketTime: string;
suspendTime: string;
bspReconciled: boolean;
complete: boolean;
inPlay: boolean;
crossMatching: boolean;
runnersVoidable: boolean;
numberOfActiveRunners: number;
betDelay: number;
status: StreamMarketStatus;
runners: RunnerDefinition[];
regulators: string[];
countryCode: string;
discountAllowed: boolean;
timezone: string;
openDate: string;
version: number;
name: string;
eventName: string;
totalMatched: number;
};
export type RunnerDefinition = {
status: StreamRunnerStatus;
adjustmentFactor: number;
lastPriceTraded: number;
totalMatched: number;
removalDate: string;
id: number;
hc: number;
fullImage: {
[key: string]: RunnerChange;
};
bsp: number;
};
export type MarketChange = {
id: string;
rc?: RunnerChange[];
img?: boolean;
tv?: number;
con?: boolean;
marketDefinition?: MarketDefinition;
};
export type MarketCache = {
marketId: string;
marketDefinition: MarketDefinition;
runners: {
[key: string]: RunnerCache;
};
totalMatched: number;
lastValueTraded: number;
published: number;
};
export type RunnerCache = {
id: number;
status: StreamRunnerStatus;
adjustmentFactor: number;
lastPriceTraded: number;
totalMatched: number;
batb: [number, number, number][];
batl: [number, number, number][];
atb: [number, number][];
atl: [number, number][];
ltp: number;
tv: number;
spn: number;
spf: number;
spb: [number, number][];
spl: [number, number][];
trd: [number, number][];
fullImage: {
[key: string]: RunnerChange;
};
};
export type MarketSubscriptionMessage = Message & {
marketFilter: StreamMarketFilter;
segmentationEnabled: boolean;
conflateMs: number;
heartbeatMs: number;
};
export type OrderFilter = {
accountIds?: number[];
includeOverallPosition?: boolean;
customerStrategyRefs?: string[];
partitionMatchedByStrategyRef?: boolean;
};
export type OrderSubscriptionMessage = Message & {
orderFilter?: OrderFilter;
segmentationEnabled: boolean;
conflateMs?: number;
heartbeatMs?: number;
};
export type OrderChangeMessage = ChangeMessage & {
oc?: OrderAccountChange[];
};
export type OrderAccountChange = {
closed?: boolean;
id: string;
fullImage?: boolean;
orc?: OrderRunnerChange[];
};
export type OrderRunnerChange = {
fullImage?: boolean;
id: number;
hc?: number;
uo?: UnmatchedOrder[];
mb?: [number, number][];
ml?: [number, number][];
smc?: {
[key: string]: StrategyMatchChange;
};
};
export type UnmatchedOrder = {
id: string;
p: number;
s: number;
bsp?: number;
side: OrderSide;
status: StreamOrderStatus;
pt: StreamPersistenceType;
ot: StreamOrderType;
pd: number;
md?: number;
cd?: number;
ld?: number;
lsrc?: string;
avp?: number;
sm: number;
sr: number;
sl: number;
sc: number;
sv: number;
rac?: string;
rc?: string;
rfo?: string;
rfs?: string;
};
export type StrategyMatchChange = {
mb?: [number, number][];
ml?: [number, number][];
};
export type OrderAccountCache = {
marketId: string;
closed: boolean;
runners: {
[key: string]: OrderRunnerCache;
};
published: number;
};
export type OrderRunnerCache = {
id: number;
hc?: number;
unmatchedOrders: {
[key: string]: UnmatchedOrder;
};
matchedBacks: [number, number][];
matchedLays: [number, number][];
strategyMatches: {
[key: string]: StrategyMatchChange;
};
};
export declare enum StatusCode {
SUCCESS = "SUCCESS",
FAILURE = "FAILURE"
}
export declare enum ChangeType {
SUB_IMAGE = "SUB_IMAGE",
RESUB_DELTA = "RESUB_DELTA",
HEARTBEAT = "HEARTBEAT"
}
export declare enum SegmentType {
SEG_START = "SEG_START",
SEG_END = "SEG_END"
}
export declare enum BettingType {
ODDS = "ODDS",
LINE = "LINE",
RANGE = "RANGE",
ASIAN_HANDICAP_DOUBLE_LINE = "ASIAN_HANDICAP_DOUBLE_LINE",
ASIAN_HANDICAP_SINGLE_LINE = "ASIAN_HANDICAP_SINGLE_LINE"
}
export declare enum StreamMarketStatus {
INACTIVE = "INACTIVE",
OPEN = "OPEN",
SUSPENDED = "SUSPENDED",
CLOSED = "CLOSED"
}
export declare enum StreamRunnerStatus {
ACTIVE = "ACTIVE",
WINNER = "WINNER",
LOSER = "LOSER",
PLACED = "PLACED",
REMOVED_VACANT = "REMOVED_VACANT",
REMOVED = "REMOVED",
HIDDEN = "HIDDEN"
}
export declare enum OrderSide {
BACK = "B",
LAY = "L"
}
export declare enum StreamOrderStatus {
EXECUTABLE = "E",
EXECUTION_COMPLETE = "EC"
}
export declare enum StreamPersistenceType {
LAPSE = "L",
PERSIST = "P",
MARKET_ON_CLOSE = "MOC"
}
export declare enum StreamOrderType {
LIMIT = "L",
MARKET_ON_CLOSE = "MOC",
LIMIT_ON_CLOSE = "LOC"
}
//# sourceMappingURL=betfair-exchange-stream-api-types.d.ts.map