import type { JevRequest, JevResponse } from "../jev/types.js"; import { type ResolvedFabricAction } from "./action-registry.js"; export declare const DEFAULT_SEMANTIC_CANDIDATE_LIMIT = 127; export declare const DEFAULT_SEMANTIC_MIN_PROBABILITY = 0.2; export type SemanticSearchErrorCode = "disabled" | "empty_query" | "invalid_search_mode" | "credential_missing" | "authentication_failed" | "invalid_response" | "timeout" | "aborted" | "rate_limited" | "service_unavailable"; export type SemanticSearchBackend = { requested: "semantic"; used: "semantic"; degraded: false; model: string; usage: { inputTokens: number; outputTokens: number; }; abstained: boolean; } | { requested: "semantic"; used: "lexical"; degraded: true; reason: "timeout" | "rate_limited" | "service_unavailable"; }; export type SemanticSearchResult = { ok: true; actions: ResolvedFabricAction[]; backend: SemanticSearchBackend; } | { ok: false; error: { code: SemanticSearchErrorCode; message: string; }; }; export interface SemanticSearchEvaluator { (request: JevRequest, signal: AbortSignal): Promise; } interface Candidate { id: string; action: ResolvedFabricAction; description: string; server: string; } export declare const mcpServerOf: (action: ResolvedFabricAction) => string | undefined; export declare const isMcpServerBlocked: (server: string | undefined, blockedServers: readonly string[]) => boolean; export declare const selectSemanticCandidates: (query: string, actions: ResolvedFabricAction[], blockedServers: readonly string[], limit: number) => Candidate[]; export declare const classifyJevSearchFailure: (error: unknown) => SemanticSearchResult; export declare const semanticSearchActions: (options: { query: string; actions: ResolvedFabricAction[]; blockedServers?: readonly string[]; candidateLimit?: number; minProbability?: number; signal: AbortSignal; evaluate: SemanticSearchEvaluator; }) => Promise; export {}; //# sourceMappingURL=semantic-search.d.ts.map