import { Observable } from '../../node_modules/rxjs'; import { EventKey, FixedStart, MsgType, SerializedStateSnap, Where } from '../types'; import { EventStore } from './eventStore'; import { Events } from './types'; export declare type StateMsg = { type: MsgType.state; snapshot: SerializedStateSnap; }; export declare type EventsMsg = { type: MsgType.events; events: Events; caughtUp: boolean; }; export declare type TimeTravelMsg = { type: MsgType.timetravel; trigger: EventKey; }; export declare type EventsOrTimetravel = StateMsg | EventsMsg | TimeTravelMsg; export declare type SubscribeMonotonic = (session: string, subscriptions: Where, attemptStartFrom: FixedStart) => Observable; /** * Create a new endpoint, based on the given EventStore and SnapshotStore. * The returned function itself is stateless between subsequent calls -- * all state is within the EventStore itself. */ export declare const eventsMonotonic: (eventStore: EventStore) => SubscribeMonotonic;