import type { LinearAccessor } from '../../accessor/linear.ts';
import type { PathSpec } from '../../types.ts';
export declare const SEARCH_LIMIT = 250;
export declare const RECORD_KEYS: ReadonlySet<string>;
export declare const KEPT_DIRS: readonly string[];
/**
 * The files under `under` that may hold `text`: the `issue.json` files
 * Linear's search names or whose other fields hold it, and the member,
 * project, cycle and document files whose text holds it.
 *
 * Linear searches an issue's title and description by word, so with
 * `askLinear` each word is asked on its own, and an issue is read when each
 * word is either named there or held by the text the listing kept
 * (`unsearchedText`): the rest of its JSON (team, project, cycle, state,
 * people, labels, dates, link), and the words of those two the search may
 * split otherwise. The text goes through `recordQueries` for its key names and
 * escapes. Every issue is read without `askLinear`, when the text cannot be
 * searched, a search fails or answers a full page, or nothing is found, since
 * Linear indexes a write some time after it lands. A member, project, cycle or
 * document file is read when the text its row kept (`keptText`) holds `text`
 * in any case, or when it was too large to keep. The walk lists each directory
 * from Linear, so the kept text is checked against the records as they are
 * now. null for a text that is not ASCII or a scope inside an issue. Mirrors
 * Python's `files_containing`.
 */
export declare function filesContaining(accessor: LinearAccessor, text: string, under: readonly PathSpec[], askLinear: boolean): Promise<PathSpec[] | null>;
//# sourceMappingURL=search.d.ts.map