UNPKG

botui

Version:

Build customizable conversational UIs and bots

34 lines (33 loc) 1.13 kB
export declare type WithWildcards<T> = T & { [key: string]: unknown; }; export declare type BlockMeta = WithWildcards<{ previous?: Block; }>; export declare type BlockData = WithWildcards<{}>; export declare type History = Block[]; export interface Block { key: number; type: string; meta: BlockMeta; data: BlockData; } export interface BlockManager { add(data: BlockData, meta?: BlockMeta): Promise<number>; setAll(blocks: Block[]): Promise<Block[]>; getAll(): Promise<Block[]>; get(key: number): Promise<Block>; remove(key: number): Promise<void>; update(key: number, data: BlockData, meta?: BlockMeta): Promise<void>; removeAll(): Promise<void>; } export declare function createBlock(type: string, meta: BlockMeta, data: BlockData, key?: number): Block; export declare function blockManager(callback?: (history?: History) => void): { getAll: () => History; setAll: (blocks: Block[]) => void; get: (key: number) => Block; add: (block: Block) => number; update: (key: number, block: Block) => void; remove: (key: number) => void; clear: () => void; };