export declare class Tree { jsonStr: string; root: Node; history: number[]; rootElement: HTMLElement; summaryElement: Summary; static create(url: string, result: HTMLElement, error?: HTMLElement): void; loadJson(url: string): Promise; protected _loadJson(json: string, resolve: Function, reject: Function): void; fromJson(): void; toHTML(node: HTMLElement): void; summary(node: Node): void; } export declare class DepthFirst { private func; result: any[]; constructor(tree: Tree, func: Function); private visit; } export declare abstract class Node { content: string; title: string; value: number; protected static counter: number; protected static labelCounter: number; kind: string; tree: Tree; nextName: string; previousName: string; labels: Map; children: Map; parent: Node; variable: string; card: Card; radioButtons: HTMLElement[]; constructor(content: string, title?: string, value?: number, labels?: { text: string; value: number; }[]); private static parseChildren; static fromJson(json: any): Node; toHtml(): HTMLElement; protected radios(): void; protected buttons(): void; protected fireNext(): void; protected firePrevious(): void; show(): void; hide(): void; } export declare class Binary extends Node { content: string; title: string; value: number; kind: string; constructor(content: string, title: string, value?: number); } export declare class Nary extends Node { kind: string; } export declare class Leaf extends Node { action: string; kind: string; nextName: string; summaryButton: HTMLElement; actionButton: HTMLElement; constructor(content: string, title: string, value: number, action?: string); protected buttons(): void; protected fireAction(): void; protected fireSummary(): void; protected fireNext(): void; } export declare class Summary extends Node { kind: string; nextName: string; summaryElement: HTMLElement; constructor(); protected fireNext(): void; show(): void; private compileSummary; private makeSummaryLine; } export declare class Card { div: HTMLElement; title: HTMLElement; content: HTMLElement; buttons: HTMLElement; constructor(); show(): void; hide(): void; }