@actyx/sdk
Version:
Actyx SDK
26 lines (25 loc) • 1.03 kB
TypeScript
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<unknown>, attemptStartFrom: FixedStart) => Observable<EventsOrTimetravel>;
/**
* 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;