/// import { PublicKey } from '@solana/web3.js'; import BN from 'bn.js'; import { Op, Channel, MessageType } from './consts'; export declare type AccountName = 'bids' | 'asks' | 'requestQueue' | 'eventQueue'; export declare type AccountsData = { [key in AccountName]: Buffer | undefined; }; export declare type RequestQueueItem = { requestFlags: { newOrder: boolean; cancelOrder: boolean; bid: boolean; postOnly: boolean; ioc: boolean; }; openOrdersSlot: number; feeTier: number; maxBaseSizeOrCancelId: BN; nativeQuoteQuantityLocked: BN; orderId: BN; openOrders: PublicKey; clientOrderId?: BN; }; export declare type SubRequest = { readonly op: Op; readonly channel: Channel; readonly markets: string[]; }; export interface Message { readonly type: MessageType; readonly timestamp: Date; } export interface DataMessage extends Message { readonly symbol: string; readonly slot: number; } export interface ErrorResponse extends Message { readonly type: 'error'; readonly message: string; } export interface SuccessResponse extends Message { readonly type: 'subscribed' | 'unsubscribed'; readonly channel: Channel; readonly markets: string[]; } export declare type PriceLevel = [number, number]; export interface L2 extends DataMessage { readonly type: 'l2update' | 'l2snapshot'; readonly asks: PriceLevel[]; readonly bids: PriceLevel[]; } export interface Quote extends DataMessage { readonly type: 'quote'; readonly bestAsk: PriceLevel | undefined; readonly bestBid: PriceLevel | undefined; } export interface Trade extends DataMessage { readonly type: 'trade'; readonly price: number; readonly size: number; readonly side: 'buy' | 'sell'; readonly id: string; } declare type OrderMeta = { id: string; accountId: string; clientId?: string; }; export interface Filled extends DataMessage { readonly type: 'filled'; readonly price: number; readonly size: number; readonly side: 'buy' | 'sell'; readonly id: string; readonly makerOrder: OrderMeta; readonly takerOrder: OrderMeta; } export interface ReceivedOrder extends DataMessage { readonly type: 'received'; readonly reason: 'new' | 'cancel'; readonly side: 'buy' | 'sell'; readonly orderId: string; readonly clientId?: string; readonly openOrdersAccount: string; readonly openOrdersSlot: number; readonly feeTier: number; } export interface ReceivedNewOrder extends ReceivedOrder { readonly reason: 'new'; readonly orderType: 'limit' | 'ioc' | 'postOnly'; readonly price: number; readonly size: number; } export interface ReceivedCancelOrder extends ReceivedOrder { readonly reason: 'cancel'; } export interface Open extends DataMessage { readonly type: 'open'; readonly price: number; readonly size: number; readonly side: 'buy' | 'sell'; readonly order: OrderMeta; } export interface Done extends DataMessage { readonly type: 'done'; } export interface Orders extends DataMessage { readonly type: 'orders'; } export {}; //# sourceMappingURL=types.d.ts.map