import type { ZodTypeAny } from 'zod'; import type { Capability, ToolDeclaration, CapabilityPromptSection, CapabilityAction } from './index.js'; import type { ExtractionPassParams, ExtractionPassResult, ExtractionStrategy } from '../extraction/ExtractionStrategy.js'; export interface ExtractionCapabilityConfig { schema: ZodTypeAny; /** Fields that must be present to consider extraction complete. */ requiredFields?: string[]; } /** * Agent-level extraction: collects structured data across turns using a * single `submit_extracted_data` tool. Distinct from flow-node extraction in * per-node extraction — this is for standalone agents, not flow nodes. */ export declare class ExtractionCapability implements Capability, ExtractionStrategy { readonly name = "extraction-capability"; private schema; private requiredFields; private collectedData; constructor(config: ExtractionCapabilityConfig); getTools(): ToolDeclaration[]; getPromptSections(): CapabilityPromptSection[]; processToolResult(toolName: string, args: unknown, result: unknown): CapabilityAction | null; /** Read the data collected so far. */ get data(): Record; /** * ExtractionStrategy impl — merges `params.currentData` into capability * state and returns the resulting snapshot. Does not run an LLM call; * LLM-driven extraction for this capability happens through the * `submit_extracted_data` tool and `processToolResult`. */ runExtractionPass(params: ExtractionPassParams): Promise; private getMissingFields; }