import type { GoogleApiAccessor } from '../../accessor/google_api.ts';
import { DirListing, type FileStat, type PathSpec } from '../../types.ts';
/**
 * The whole words Drive is asked for `text` over an app mount's JSON, or null
 * when its index cannot stand in for grep: the `recordQueries` of the text,
 * with the app's API names and the words every rendering carries as keys. A
 * digit, a JSON literal or a word an id can hold is never asked, and a word a
 * JSON escape can run into is asked without its first letter too. Mirrors
 * Python's `drive_queries`.
 */
export declare function driveQueries(text: string, vocabulary: ReadonlySet<string>): string[] | null;
/**
 * The Docs, Sheets or Slides files under `under` Drive full-text search names.
 *
 * One query asks for every file of the app's MIME type holding the word, and
 * the answer is matched by id against the owned and shared listings grep walks
 * next. Null for a word `driveQueries` turns down, a scope below a corpus,
 * a listing or search that fails or that Drive did not finish, or an empty
 * answer.
 *
 * Drive searches a file's text, so the answer can leave out one whose JSON
 * holds the word only in a value that is not text (a font, a time zone, a link
 * or image address, a tab title, an id or a formula), or only as part of a word
 * styling splits into text runs (`snow` bold in `snowman`). Mirrors Python's
 * `files_containing`.
 */
export declare function filesContaining<A extends GoogleApiAccessor>(accessor: A, readdir: (accessor: A, path: PathSpec) => Promise<FileStat[] | DirListing>, mime: string, vocabulary: ReadonlySet<string>, text: string, under: readonly PathSpec[]): Promise<PathSpec[] | null>;
//# sourceMappingURL=search.d.ts.map