import type { QdrantAccessor } from '../../accessor/qdrant.ts';
import { type DirListing, type FileStat, type PathSpec } from '../../types.ts';
import type { Row } from '../vector/types.ts';
type Readdir = (accessor: QdrantAccessor, path: PathSpec) => Promise<FileStat[] | DirListing>;
/**
 * A ranked point's path below its collection, and its body: the source text
 * when the point has one, its `.json` otherwise.
 */
export declare function hit(accessor: QdrantAccessor, row: Row): [string[], Uint8Array];
/**
 * The files under `under` that may hold `text` in any case.
 *
 * The listing's scroll carries every payload, so each `.json` and `.txt` row
 * keeps its rendered text, lowercased, and a file is read only when that text
 * holds `text`; a blob, or a file too large to keep, is always read. The walk
 * lists each directory from the store, so the text is checked against the
 * points as they are now. null for a text that is not ASCII, whose case a
 * lowercased copy may not keep, or a listing that fails. Mirrors Python's
 * `files_containing`.
 */
export declare function filesContaining(readdir: Readdir, accessor: QdrantAccessor, text: string, under: readonly PathSpec[]): Promise<PathSpec[] | null>;
export {};
//# sourceMappingURL=search.d.ts.map