import { type GitOpts } from "../utils/git.js"; export interface SymbolResult { symbol: string; kind: "class" | "function" | "macro" | "enum" | "typedef"; file: string; line: number; context: string; surrounding?: string[]; repo: string; } export interface SymbolSearchResult { query: string; kind_filter: string; results: SymbolResult[]; total_matches: number; truncated: boolean; } /** @internal exported for testing */ export declare function isVendoredPath(file: string): boolean; /** * Build a regex pattern that matches definition lines containing the query. * Each kind has a specific pattern that only matches declarations/definitions. */ /** @internal exported for testing */ export declare function buildPattern(query: string, kind: string): string; /** * Search for symbol definitions (classes, functions, macros, enums) across CrossPad repos. * Only matches definition lines, not usages. */ export declare function crosspadSearchSymbols(query: string, kind?: string, repos?: string[], maxResults?: number, contextLines?: number, includeVendored?: boolean, opts?: GitOpts): Promise; /** @internal exported for testing */ export declare function escapeForShell(s: string): string; /** @internal exported for testing */ export declare function escapeForRegex(s: string): string; /** @internal exported for testing */ export declare function classifyDefinition(line: string): SymbolResult["kind"] | null; /** @internal exported for testing */ export declare function extractSymbolName(line: string, kind: SymbolResult["kind"]): string | null;