@vaadin/hilla-react-signals
Version:
Signals for Hilla React
47 lines (46 loc) • 2.27 kB
TypeScript
export type StateEvent = Readonly<{
id: string;
type: string;
value: unknown;
accepted: boolean;
parentSignalId?: string;
}>;
type CreateStateEventType<V, T extends string, C extends Record<string, unknown> = Record<never, never>> = Readonly<{
type: T;
value: V;
}> & Readonly<C> & StateEvent;
export type SnapshotStateEvent<T> = CreateStateEventType<T, 'snapshot'>;
export type SetStateEvent<T> = CreateStateEventType<T, 'set'>;
export declare function createSetStateEvent<T>(value: T, signalId?: string, parentSignalId?: string): SetStateEvent<T>;
export type ReplaceStateEvent<T> = CreateStateEventType<T, 'replace', {
expected: T;
}>;
export declare function createReplaceStateEvent<T>(expected: T, value: T, signalId?: string, parentSignalId?: string): ReplaceStateEvent<T>;
export type IncrementStateEvent = CreateStateEventType<number, 'increment'>;
export declare function createIncrementStateEvent(delta: number): IncrementStateEvent;
export type ListEntry<T> = Readonly<{
id: string;
prev?: string;
next?: string;
value: T;
}>;
export type ListSnapshotStateEvent<T> = CreateStateEventType<never, 'snapshot', {
entries: Array<ListEntry<T>>;
}>;
export type InsertLastStateEvent<T> = CreateStateEventType<T, 'insert', {
position: 'last';
entryId?: string;
}>;
export declare function createInsertLastStateEvent<T>(value: T): InsertLastStateEvent<T>;
export type RemoveStateEvent = CreateStateEventType<never, 'remove', {
entryId: string;
}>;
export declare function createRemoveStateEvent(entryId: string): RemoveStateEvent;
export declare function isSnapshotStateEvent<T>(event: unknown): event is SnapshotStateEvent<T>;
export declare function isSetStateEvent<T>(event: unknown): event is SetStateEvent<T>;
export declare function isReplaceStateEvent<T>(event: unknown): event is ReplaceStateEvent<T>;
export declare function isIncrementStateEvent(event: unknown): event is IncrementStateEvent;
export declare function isListSnapshotStateEvent<T>(event: unknown): event is ListSnapshotStateEvent<T>;
export declare function isInsertLastStateEvent<T>(event: unknown): event is InsertLastStateEvent<T>;
export declare function isRemoveStateEvent(event: unknown): event is RemoveStateEvent;
export {};