tinkoff-invest-api
Version:
Node.js SDK for Tinkoff Invest API
53 lines • 2.63 kB
TypeScript
/**
* Класс для подписок на realtime marketdata.
* See: https://tinkoff.github.io/investAPI/marketdata/#marketdataservice
*/
import { BaseStream } from './base.js';
import { MarketSubscription } from './market-subscription.js';
import { Candle, LastPrice, MarketDataRequest, MarketDataResponse, OrderBook, SubscribeCandlesRequest, SubscribeInfoRequest, SubscribeLastPriceRequest, SubscribeOrderBookRequest, SubscribeTradesRequest, Trade, TradingStatus } from '../generated/marketdata.js';
import { TinkoffInvestApi } from '../api.js';
type SubscribeRequest = Required<MarketDataRequest>[keyof MarketDataRequest];
export type WithoutAction<T extends SubscribeRequest> = Omit<T, 'subscriptionAction'>;
export declare class MarketStream extends BaseStream<MarketDataRequest, MarketDataResponse> {
api: TinkoffInvestApi;
options: {
autoReconnect: boolean;
autoReconnectDelayMin: number;
autoReconnectDelayMax: number;
};
subscriptions: Set<MarketSubscription<any, any>>;
protected autoReconnectDelay: number;
constructor(api: TinkoffInvestApi);
/**
* Подписка на свечи.
*/
candles(req: WithoutAction<SubscribeCandlesRequest>, dataHandler: (candle: Candle) => unknown): Promise<() => Promise<void>>;
/**
* Подписка на сделки.
*/
trades(req: WithoutAction<SubscribeTradesRequest>, dataHandler: (trade: Trade) => unknown): Promise<() => Promise<void>>;
/**
* Подписка на стакан.
*/
orderBook(req: WithoutAction<SubscribeOrderBookRequest>, dataHandler: (orderbook: OrderBook) => unknown): Promise<() => Promise<void>>;
/**
* Подписка на цены.
*/
lastPrice(req: WithoutAction<SubscribeLastPriceRequest>, dataHandler: (lastPrice: LastPrice) => unknown): Promise<() => Promise<void>>;
/**
* Подписка на информацию об инструменте.
*/
info(req: WithoutAction<SubscribeInfoRequest>, dataHandler: (tradingStatus: TradingStatus) => unknown): Promise<() => Promise<void>>;
/**
* Получение текущих подписок.
*/
getMySubscriptions(): Promise<MarketDataResponse>;
reconnect(): Promise<void>;
protected ensureConnected(): void;
protected onClose(error?: Error): void;
protected watch(subscription: MarketSubscription<any, any>): Promise<() => Promise<void>>;
protected unwatch(subscription: MarketSubscription<any, any>): Promise<void>;
protected calcAutoReconnectDelay(): void;
}
export {};
//# sourceMappingURL=market.d.ts.map