botui
Version:
Build customizable conversational UIs and bots
34 lines (33 loc) • 1.13 kB
TypeScript
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;
};