import { OMMStreamRequestParams, OMMResponseState, OMMFields, OMMFieldValue } from '../../delivery/stream'; import { Session } from '../../session/session'; import { StateEvents, StateManager } from '../../state'; import { BaseStream, PossibleStreamEvents } from '../base-interfaces'; export interface IStreamError extends Error { name: string; } export declare const MARKET_PRICE_DOMAIN = "MarketPrice"; export interface OpenStreamParams { withUpdates: boolean; } export interface Params extends Pick> { universe: string | string[]; } export interface StreamOptions extends Pick> { universe: string[]; } export declare const StreamEvent: { Refresh: "Refresh"; Status: "Status"; Update: "Update"; Complete: "Complete"; Error: "error"; StateChanged: "stateChanged"; }; export type StreamRefreshCallback = (refresh: OMMFields, instrument?: string, stream?: Stream) => void; export type StreamUpdateCallback = (update: OMMFields, instrument?: string, stream?: Stream) => void; export type StreamStatusCallback = (status: OMMResponseState, instrument?: string, stream?: Stream) => void; export type StreamCompleteCallback = (stream?: Stream) => void; export type StreamErrorCallback = (error: IStreamError, stream?: Stream) => void; export interface PricingStreamEvents extends StateEvents { [StreamEvent.Refresh]: StreamRefreshCallback; [StreamEvent.Update]: StreamUpdateCallback; [StreamEvent.Status]: StreamStatusCallback; [StreamEvent.Complete]: StreamCompleteCallback; [StreamEvent.Error]: StreamErrorCallback; } interface PricingStream extends StateManager { readonly definition: Params; readonly session: Session; getFieldValue(instrument: string, field: string): OMMFieldValue | undefined; getFields(instrument: string, fields?: string[]): OMMFields | undefined; getItemStatus(instrument: string): OMMResponseState | undefined; } export type Stream = PricingStream & BaseStream; export type PricingInstrumentParams = OMMStreamRequestParams; export declare const PricingInstrumentEvent: { Refresh: "Refresh"; Status: "Status"; Update: "Update"; Complete: "Complete"; Error: "error"; StateChanged: "stateChanged"; }; export interface PricingInstrumentEvents extends StateEvents { [PricingInstrumentEvent.Refresh]: (refresh: OMMFields, stream: PricingInstrumentStream) => void; [PricingInstrumentEvent.Update]: (update: OMMFields, stream: PricingInstrumentStream) => void; [PricingInstrumentEvent.Status]: (status: OMMResponseState, stream: PricingInstrumentStream) => void; [PricingInstrumentEvent.Complete]: (stream: PricingInstrumentStream) => void; [PricingInstrumentEvent.Error]: (error: Error, stream: PricingInstrumentStream) => void; } export interface PricingInstrumentStream extends StateManager { readonly name: string; readonly itemStatus: OMMResponseState; getFieldValue(field: string): OMMFieldValue | undefined; getFields(fields?: string[]): OMMFields | undefined; } export {};