import type { ToolDefinition } from '../../../services/llm'; import type { WorkflowCandidate } from '../../../types/discovery'; /** * Ranked discovery of compiled YAML workflows via FTS + tag overlap. * * Callers pass their own module-level caches so each pipeline keeps * isolated cache instances. */ export declare function findCompiledWorkflows(prompt: string, caches: { yamlWorkflowMap: Map; toolDefCache: Map; }, logPrefix?: string): Promise<{ inventory: string; toolIds: string[]; candidates: WorkflowCandidate[]; }>; /** * LLM-as-judge: does a compiled workflow match the user's intent? * One cheap call (secondary model, ~200 tokens) to potentially skip * the entire agentic loop. */ export declare function evaluateWorkflowMatch(prompt: string, candidates: WorkflowCandidate[], logPrefix?: string): Promise<{ matched: boolean; workflowName: string | null; confidence: number; }>; /** * Extract structured inputs from the user's prompt using the matched * workflow's input_schema. Acts as a second confirmation gate — if the * LLM can't map the prompt to the schema, the match is rejected. */ export declare function extractWorkflowInputs(prompt: string, inputSchema: Record, workflowName: string): Promise<{ inputs: Record | null; extracted: boolean; }>;