/** * Split a string into lowercased word tokens, breaking camelCase, snake_case, * dots, slashes, and other separators. * @param {string} s * @returns {string[]} */ export function splitIdent(s: string): string[]; /** * Build the FTS5-indexed body for a file — the code-aware searchable surface (§5 mechanism 3). * Folds: (1) the file path, doubled, so filename matches count; (2) `extra` tokens (symbol names, * deps) the caller supplies; (3) the raw source, whose whole lowercased identifiers unicode61 * indexes; (4) the camelCase supplement (see `camelParts`). Exact and descriptive queries both * land, closing the "sparse code loses to prose" gap. * @param {{ path: string, body: string, extra?: string[] }} doc * @returns {string} */ export function indexBody({ path, body, extra }: { path: string; body: string; extra?: string[]; }): string; /** * Extract content keywords from a query: deduped, stopwords dropped, length >= 3. * @param {string} query * @returns {string[]} */ export function keywords(query: string): string[]; /** * Build an FTS5 MATCH expression (OR of quoted keywords), or null if the query * has no usable terms. * @param {string} query * @returns {string | null} */ export function ftsMatch(query: string): string | null;