/** * DialogueRunner.ts * * Dialogue execution: node traversal, variable substitution, * conditional branching, and event hooks. * * @module dialogue */ export type DialogueNodeType = 'text' | 'choice' | 'branch' | 'event'; export interface DialogueNode { id: string; type: DialogueNodeType; speaker?: string; text?: string; choices?: Array<{ label: string; nextId: string; condition?: string; }>; condition?: string; trueNextId?: string; falseNextId?: string; nextId?: string; event?: string; } export type EventCallback = (event: string, nodeId: string) => void; export declare class DialogueRunner { private nodes; private variables; private currentNodeId; private history; private eventCallback; private finished; loadNodes(nodes: DialogueNode[]): void; setVariable(key: string, value: unknown): void; getVariable(key: string): unknown; onEvent(cb: EventCallback): void; start(nodeId: string): DialogueNode | null; advance(choiceIndex?: number): DialogueNode | null; private processNode; resolveText(text: string): string; getAvailableChoices(node: DialogueNode): Array<{ label: string; nextId: string; }>; getCurrentNode(): DialogueNode | null; isFinished(): boolean; getHistory(): string[]; } //# sourceMappingURL=DialogueRunner.d.ts.map