import type { Database } from "./sqlite.js"; export { type ResolveEntityArgs, resolveEntity } from "./reep.js"; export declare const TOOL_NAMES: readonly ["search_docs", "resolve_provider_id", "get_provider_docs", "list_providers", "compare_providers", "request_update", "resolve_entity", "get_metric", "list_metrics", "search_papers", "get_paper", "get_web_source", "read_paper", "match_quote", "add_local_paper", "forget_paper", "purge_cache"]; type TextContent = { type: "text"; text: string; }; export type ToolResponse = { isError?: boolean; content: TextContent[]; }; export type SearchDocsArgs = { query: string; provider?: string; max_results?: number; }; export type ResolveProviderIdArgs = { query: string; }; export type GetProviderDocsArgs = { provider: string; topic?: string; category?: string; max_results?: number; }; export type CompareProvidersArgs = { topic: string; providers?: string[]; }; export type RequestUpdateArgs = { type: "new_provider" | "recrawl" | "flag_outdated" | "suggest_source"; provider: string; reason: string; suggested_urls?: string[]; }; /** * Build a safe FTS5 MATCH query from user text. * * User questions are usually natural language, not exact doc phrases. Joining * searchable tokens with AND keeps results precise while still allowing queries * like "Opta qualifier 214" to match docs that contain those tokens separately. */ export declare function sanitiseFtsQuery(query: string): string; /** * Upstream versions are whatever the provider calls its own release: a bare * number ("0.3.0"), a version already carrying its prefix ("v3"), or a phrase * ("Soccer v4 / Soccer Extended v4"). Only prefix the bare numbers, so a reader * never sees "vv3" or "vSoccer v4". */ export declare function versionLabel(version: string | null): string; export declare function resolveProviderId(db: Database, args: ResolveProviderIdArgs): ToolResponse; export declare function getProviderDocs(db: Database, args: GetProviderDocsArgs): ToolResponse; export declare function searchDocs(db: Database, args: SearchDocsArgs): ToolResponse; /** Where the open index came from, for the freshness line in list_providers. */ export type DataSourceLabel = "bundled" | "downloaded" | "pinned"; export declare function listProviders(db: Database, options?: { source?: DataSourceLabel; }): ToolResponse; export declare function compareProviders(db: Database, args: CompareProvidersArgs): ToolResponse; export declare function requestUpdate(db: Database, args: RequestUpdateArgs, options?: { now?: Date; requestId?: string; }): ToolResponse;