UNPKG

nodejs-order-book

Version:

Node.js Lmit Order Book for high-frequency trading (HFT).

72 lines (71 loc) 2.56 kB
import { type ILimitOrder, type IStopLimitOrder, type IStopMarketOrder, type InternalLimitOrderOptions, type InternalStopLimitOrderOptions, type InternalStopMarketOrderOptions, type OrderOptions, OrderType, type Side, type TimeInForce } from "./types"; declare abstract class BaseOrder { readonly _id: string; readonly _side: Side; _size: number; _time: number; constructor(options: OrderOptions); get id(): string; get side(): Side; get size(): number; set size(size: number); get time(): number; set time(time: number); abstract toString(): void; abstract toJSON(): void; abstract toObject(): void; } export declare class LimitOrder extends BaseOrder { private readonly _type; readonly _origSize: number; private _price; private readonly _timeInForce; private readonly _makerQty; private readonly _takerQty; private readonly _postOnly; private readonly _ocoStopPrice?; constructor(options: InternalLimitOrderOptions); get type(): OrderType.LIMIT; get price(): number; set price(price: number); get timeInForce(): TimeInForce; get postOnly(): boolean; get origSize(): number; get makerQty(): number; get takerQty(): number; get ocoStopPrice(): number | undefined; toString: () => string; toJSON: () => string | null; toObject: () => ILimitOrder; } export declare class StopMarketOrder extends BaseOrder { private readonly _type; private readonly _stopPrice; constructor(options: InternalStopMarketOrderOptions); get type(): OrderType.STOP_MARKET; get stopPrice(): number; toString: () => string; toJSON: () => string | null; toObject: () => IStopMarketOrder; } export declare class StopLimitOrder extends BaseOrder { private readonly _type; private _price; private readonly _stopPrice; private readonly _timeInForce; private readonly _isOCO; constructor(options: InternalStopLimitOrderOptions); get type(): OrderType.STOP_LIMIT; get price(): number; set price(price: number); get stopPrice(): number; get timeInForce(): TimeInForce; get isOCO(): boolean; toString: () => string; toJSON: () => string | null; toObject: () => IStopLimitOrder; } export declare const OrderFactory: { createOrder<T extends OrderOptions>(options: T): T extends InternalLimitOrderOptions ? LimitOrder : T extends InternalStopLimitOrderOptions ? StopLimitOrder : T extends InternalStopMarketOrderOptions ? StopMarketOrder : never; }; export {};