import type { AirtableAccessor } from '../../accessor/airtable.ts';
import type { FileStat, PathSpec } from '../../types.ts';
export declare const LINE_KEYS: ReadonlySet<string>;
export declare const TEXT_TYPES: ReadonlySet<string>;
export declare const WORDLESS_TYPES: ReadonlySet<string>;
export declare const SPACELESS_TYPES: ReadonlySet<string>;
export declare const SPACED_TEXT_TYPES: ReadonlySet<string>;
/**
 * The lines of a table's records.jsonl or a view's file that may hold `text`,
 * in the order a plain read lists them.
 *
 * Airtable lists only the records a formula is true for, so the formula asks
 * whether the record id (`RECORD_ID()`) or a cell, as the text a formula reads
 * and lowercased, holds `text`; grep matches each line itself. Only a table
 * whose every field spells its cell as that text (a text, a select, an email,
 * a url, a phone number) or with no word in it (a number, a date, a checkbox)
 * is asked; a link, an AI text or an attachment holds no space outside the
 * text a formula reads of it, so a table with one is asked for a text with a
 * space. A collaborator, a lookup or a formula renders ids or errors a formula
 * does not read. `text` goes through `recordQueries` for the line's keys,
 * field names among them, and its escapes. null for any other file, a path
 * the listing does not hold, a table with another field type or a field name
 * a formula cannot quote, a text a key holds, a failed listing, or more than
 * `maxReadRecords` matches. Mirrors Python's `lines_containing`.
 */
export declare function linesContaining(accessor: AirtableAccessor, path: PathSpec, text: string, entry?: FileStat | null): Promise<Uint8Array | null>;
//# sourceMappingURL=search.d.ts.map