phrase-engine
Version:
Language files on steroids for conversational UIs that aren't boring.
50 lines (49 loc) • 1.41 kB
TypeScript
export interface InitPacketInterface {
ignore_spaces: boolean[];
next_stack: PhraseNode[];
id_map: {
[key: string]: Node;
};
node_count: number;
}
export interface EvalPacketInterface {
data: {
[key: string]: any;
};
sentence_components: string[];
id_render_map: {
[key: string]: boolean;
};
class_render_map: {
[key: string]: boolean;
};
}
export interface VarsPacket {
vars: {
[key: string]: ({
type: 'string';
last: boolean;
} | {
type: 'enum';
values: string[];
} | {
type: 'boolean';
})[];
};
}
export declare abstract class PhraseNode {
protected __node_name: string;
protected __next_node: PhraseNode;
protected __node_sequenced_name: string;
protected __vared: boolean;
protected abstract validateNodeName(name: string): boolean;
abstract init(root: Node, packet: InitPacketInterface): void;
abstract eval(packet: EvalPacketInterface, branch?: number): EvalPacketInterface;
protected __seq(seq: Number): void;
vars(packet: VarsPacket): VarsPacket;
count(packet: EvalPacketInterface): number;
gen(packet: EvalPacketInterface): any;
constructor(root: Node | any, packet: InitPacketInterface);
protected setNextNode(node: PhraseNode): void;
protected next(): PhraseNode;
}