export interface FilterResult { score: number; } export declare abstract class TreeItem { readonly key: string; children: import("mobx/lib/types/observablearray").IObservableArray; info: ItemInfo & I; lastFilterResult?: FilterResult; parent?: TreeItem; constructor(key: string, info: I, children?: C[]); readonly visible: boolean; /** * Returns maximum subtree score */ readonly score: number; readonly flat: (this | C)[]; readonly depth: number; abstract filter(query: string, options: O, engine: QueryEngine): void; resetFilter(): void; } export interface ItemInfo { order?: number; } export interface TextItemInfo extends ItemInfo { text: string; } export declare class TextItem extends TreeItem { InfoType: T; lastFilterResult?: FilterResult & { match: number[]; }; readonly text: string; filter(query: string, options: O, engine: QueryEngine): void; } export declare class Tree { children: import("mobx/lib/types/observablearray").IObservableArray; ext: E; constructor(items?: Item[], ext?: (tree: Tree) => E); readonly flat: Item[]; filter(query: string, options: O, engine: QueryEngine): void; resetFilter(): void; } export interface QueryEngine { Options: O; score(text: string, query: string, options?: O): number; match(text: string, query: string, options?: O): number[]; } export declare type TreeItemWithSelection = TreeItem<{ selected?: boolean; }>; export declare class TreeNavigation { private tree; static ext: >(tree: Tree) => TreeNavigation; private index; current: I | undefined; constructor(tree: Tree); setIndex(index: number): void; reset(): void; private modify; down(): number; up(): number; } //# sourceMappingURL=tree.d.ts.map