import { IBetEvent, IBetMatch, IBetRecord, IBetEventState, ISnapshot, PartitionKey } from '@jayesol/jayeson.lib.record'; import { IEndPointDispatcher, IEndPointGroupManager } from './dispatch'; import { FSRepo } from './core'; import { IMessageClass, Subscriber, EPEvent } from '@jayesol/jayeson.lib.delivery'; import * as T from 'ts-promise'; import { IndexedSnapshot, DeltaOutgoing, Outgoing, IndexedSnapshotImpl } from "./data_structure"; import { InEndPointEventHandler, SportsFeedInProcessor } from "./receive"; import { SportsFeedMessageGroup } from "./message_class"; import 'reflect-metadata'; import { RuleCombination } from '@jayesol/jayeson.model'; export declare class InsertMatch { private _after; private _get; constructor(_after: ISnapshot, _get: M[]); after(): ISnapshot; get(): M[]; } export declare class UpdateMatch { private _after; private _get; constructor(_after: ISnapshot, _get: M[]); after(): ISnapshot; get(): M[]; } export declare class DeleteMatch { private _after; private _get; constructor(_after: ISnapshot, _get: M[]); after(): ISnapshot; get(): M[]; } export declare class InsertEvent { private _after; private _get; constructor(_after: ISnapshot, _get: E[]); after(): ISnapshot; get(): E[]; } export declare class UpdateEvent { private _after; private _get; constructor(_after: ISnapshot, _get: E[]); after(): ISnapshot; get(): E[]; } export declare class DeleteEvent { private _after; private _get; constructor(_after: ISnapshot, _get: E[]); after(): ISnapshot; get(): E[]; } export declare class InsertOdd { private _after; private _get; constructor(_after: ISnapshot, _get: R[]); after(): ISnapshot; get(): R[]; } export declare class UpdateOdd { private _after; private _get; constructor(_after: ISnapshot, _get: R[]); after(): ISnapshot; get(): R[]; } export declare class DeleteOdd { private _after; private _get; constructor(_after: ISnapshot, _get: R[]); after(): ISnapshot; get(): R[]; } export declare class Reset { private _after; private _get; constructor(_after: ISnapshot, _get: PartitionKey[]); after(): ISnapshot; get(): PartitionKey[]; } export interface DeltaEventHandler { onInsertMatch(insertMatch: InsertMatch): void; onUpdateMatch(updateMatch: UpdateMatch): void; onDeleteMatch(deleteMatch: DeleteMatch): void; onInsertEvent(insertEvent: InsertEvent): void; onUpdateEvent(updateEvent: UpdateEvent): void; onDeleteEvent(deleteEvent: DeleteEvent): void; onInsertOdd(insertOdd: InsertOdd): void; onUpdateOdd(updateOdd: UpdateOdd): void; onDeleteOdd(deleteOdd: DeleteOdd): void; onReset(resetKeys: Reset): void; onSwitchFilterStart(requestId?: number): void; onSwitchFilterEnd(): void; onFullSnapshotStart(): void; onFullSnapshotEnd(): void; onSwitchFilterFail(requestId?: number): void; } export declare class FeedView { private _fsRepo; private _epgm; private _grp; private _handlers; constructor(manager: IEndPointGroupManager, repo: FSRepo, grp: SportsFeedMessageGroup); fsRepo(): FSRepo; epgm(): IEndPointGroupManager; grp(): SportsFeedMessageGroup; snapshot(): IndexedSnapshot; register(listener: DeltaEventHandler): void; unregister(listener: DeltaEventHandler): void; private hasHandler; private removeHandler; handlerSize(): number; cleanUp(): void; } export declare class AbstractComparableEPDispatcher implements IEndPointDispatcher { private _stream; id(): string; submit(out: Outgoing): void; onException(e: Error): void; protected _grp: SportsFeedMessageGroup; protected _readyToDispatch: boolean; constructor(_stream: string, _grp: SportsFeedMessageGroup); stream(): string; grp(): SportsFeedMessageGroup; isInitialized(): T.Promise; readyToDispatch(): void; isReadyToDispatch(): boolean; } export declare class MemoryDispatcher extends AbstractComparableEPDispatcher { private _fsRepo; private _handler; static MEMORY_STREAM: string; lastPushedSs: IndexedSnapshotImpl; _id: string; constructor(_fsRepo: FSRepo, _grp: SportsFeedMessageGroup, _handler: DeltaEventHandler); grp(): SportsFeedMessageGroup; handler(): DeltaEventHandler; id(): string; submit(out: Outgoing): void; onException(e: Error): void; handleMessage(msg: Outgoing): void; protected pushSwitchFilterStart(requestId: number): void; protected pushSwitchFilterEnd(): void; protected pushFullSnapshotStart(): void; protected pushFullSnapshotEnd(): void; protected pushSwitchFilterFail(requestId: number): void; protected pushInsertMatch(ds: DeltaOutgoing): void; protected pushInsertEvent(ds: DeltaOutgoing): void; protected pushInsertOdd(ds: DeltaOutgoing): void; protected pushUpdateMatch(ds: DeltaOutgoing): void; protected pushUpdateEvent(ds: DeltaOutgoing): void; protected pushUpdateOdd(ds: DeltaOutgoing): void; protected pushDeleteMatch(ds: DeltaOutgoing): void; protected pushDeleteEvent(ds: DeltaOutgoing): void; protected pushDeleteOdd(ds: DeltaOutgoing): void; private pushReset; protected events(matches: IBetMatch[]): IBetEvent[]; protected records(events: IBetEvent[]): IBetRecord[]; protected states(events: IBetEvent[]): IBetEventState[]; isSame(lhs: IMessageClass, rhs: IMessageClass): boolean; isInitialized(): T.Promise; } export declare class SportsFeedClient implements DeltaEventHandler { private _subscriber; private _eventHandler; private _viewTemplate; private _epgm; private _fsRepo; private _grp; private _views; private filterRequestCounter; private resolverMap; constructor(grp: SportsFeedMessageGroup, fsRepo: FSRepo, epgm: IEndPointGroupManager, subscriber: Subscriber, eventHandler: InEndPointEventHandler, inProcessor: SportsFeedInProcessor); subscriber(): Subscriber; epgm(): IEndPointGroupManager; InEndPointEventHandler(): InEndPointEventHandler; fsRepo(): FSRepo; grp(): SportsFeedMessageGroup; eventHandler(): InEndPointEventHandler; eventListener(event: EPEvent): void; configureEventHandler(eventHandler: InEndPointEventHandler): void; setUpStreamFilter(filterData: RuleCombination): T.Promise; getSubscriber(): Subscriber; start(): void; view(): FeedView; removeView(view: FeedView): void; onSwitchFilterFail(requestId: number): void; onSwitchFilterStart(requestId: number): void; onInsertMatch(insertMatch: InsertMatch): void; onUpdateMatch(updateMatch: UpdateMatch): void; onDeleteMatch(deleteMatch: DeleteMatch): void; onInsertEvent(insertEvent: InsertEvent): void; onUpdateEvent(updateEvent: UpdateEvent): void; onDeleteEvent(deleteEvent: DeleteEvent): void; onInsertOdd(insertOdd: InsertOdd): void; onUpdateOdd(updateOdd: UpdateOdd): void; onDeleteOdd(deleteOdd: DeleteOdd): void; onReset(resetKeys: Reset): void; onSwitchFilterEnd(): void; onFullSnapshotStart(): void; onFullSnapshotEnd(): void; }