export interface TaxonomyTreeNode { id: string; label: string; parentId: string | null; itemCount: number; children?: TaxonomyTreeNode[]; } /** * Assign a file to a taxonomy node. Creates the root node if none exist. * When a node exceeds MAX_NODE_ITEMS, it splits into 2 child nodes. */ export declare function assignToTaxonomy(vector: Float32Array, fileId: string, fileName: string, opts: { wsPath: string; }): Promise; /** * Split a taxonomy node into 2 child nodes using k-means clustering. */ export declare function splitNode(nodeId: string, opts: { wsPath: string; }): Promise; /** * Get the full taxonomy tree. * Returns the root node with nested children, or null if no taxonomy exists. */ export declare function getTaxonomyTree(opts: { wsPath: string; }): Promise; /** * Rebuild the entire taxonomy from scratch. * Drops all taxonomy nodes and re-assigns every non-deleted parent file. */ export declare function rebuildTaxonomy(opts: { wsPath: string; embedder?: unknown; }): Promise; /** * Merge nodes with item_count < 2 back into their parent. * Called by gc() to clean up sparse taxonomy branches. */ export declare function mergeEmptyNodes(opts: { wsPath: string; }): Promise; //# sourceMappingURL=taxonomy.d.ts.map