@actyx/sdk
Version:
Actyx SDK
48 lines (47 loc) • 1.22 kB
TypeScript
import { Timestamp } from '..';
import { Event, Events } from './types';
export declare type RawEvent = Readonly<{
payload: unknown;
timestamp: number;
source: string;
tags?: string[];
}>;
export declare type LastPublished = Readonly<{
timestamp: number;
psn: number;
sequence: number;
}>;
export declare const eventFactory: () => {
mkEvent: (raw: RawEvent) => Event;
mkEvents: (raw: RawEvent[]) => {
offset: number;
stream: string;
timestamp: number;
lamport: number;
appId: string;
tags: string[];
payload: unknown;
}[];
};
declare type MkNumberEvent = {
val: number;
source: string;
tAdd: (t: Timestamp) => Timestamp;
};
declare type MkPadding = {
numEvents: number;
source: string;
tAdd: (t: Timestamp) => Timestamp;
};
export declare type MkEvent = MkNumberEvent | MkPadding;
export declare const emitter: (source: string) => (val: number) => {
val: number;
source: string;
tAdd: (t: Timestamp) => number;
};
export declare type Timeline = {
all: Events;
of: (...sources: string[]) => Events;
};
export declare const mkTimeline: (...events: MkEvent[]) => Timeline;
export {};