import type { LinkView } from '../../ops/types.ts'; export interface FindEntry { key: string; name: string; kind: 'f' | 'd' | 'l' | 'c'; depth: number; isEmpty?: boolean | null; } export type PredNode = { op: 'name'; pattern: string; icase: boolean; } | { op: 'path'; pattern: string; prefix?: string; } | { op: 'type'; kind: string; } | { op: 'empty'; } | { op: 'not'; kid: PredNode; } | { op: 'and'; kids: PredNode[]; } | { op: 'or'; kids: PredNode[]; } | { op: 'true'; }; export declare function evalPredicate(node: PredNode, entry: FindEntry): boolean; export declare function displayPath(prefix: string, key: string): string; export declare function prefixPathNodes(node: PredNode, prefix: string): PredNode; export declare function treeHasType(node: PredNode): boolean; export declare function treeHasEmpty(node: PredNode): boolean; export declare function keep(entry: FindEntry, tree: PredNode, minDepth: number | null | undefined): boolean; export declare function startBasename(virtual: string): string; export interface EmitStartPathOptions { kind: FindEntry['kind']; isEmpty?: boolean | null; exists: boolean; tree: PredNode; maxDepth: number | null | undefined; minDepth: number | null | undefined; size?: number | null | undefined; minSize?: number | null | undefined; maxSize?: number | null | undefined; } export declare function emitStartPath(results: string[], startKey: string, startName: string, opts: EmitStartPathOptions): void; export interface BuildTreeOptions { name?: string | null | undefined; iname?: string | null | undefined; pathPattern?: string | null | undefined; type?: string | null | undefined; nameExclude?: string | null | undefined; orNames?: string[] | null | undefined; empty?: boolean | null | undefined; } export declare function hasLinkChildren(links: LinkView | null | undefined, virtual: string): boolean; export declare function buildTree(opts: BuildTreeOptions): PredNode; export declare function optionsTree(options: { name?: string | null; iname?: string | null; pathPattern?: string | null; type?: string | null; nameExclude?: string | null; orNames?: string[] | null; empty?: boolean | null; tree?: PredNode | null; }): PredNode; export declare function computeNonemptyDirs(keys: string[]): Set; export declare function unrespellRaw(row: string, virtual: string, raw: string): string; //# sourceMappingURL=find_eval.d.ts.map