import type { ResolvedDynamicToolResolver } from "#runtime/types.js"; import type { DynamicToolEvents } from "#shared/dynamic-tool-definition.js"; import type { ModelMessage } from "ai"; interface ConnectionSearchResultItem { readonly connection: string; readonly description: string; readonly error?: string; readonly inputSchema?: Record; readonly needsAuthorization?: boolean; readonly outputSchema?: Record; readonly tool?: string; readonly qualifiedName?: string; } /** * Extracts connection search results from conversation history. * Scans tool-result messages for `connection_search` results and * returns deduplicated tool metadata (latest result wins per qualifiedName). */ export declare function extractDiscoveredTools(messages: readonly ModelMessage[]): ConnectionSearchResultItem[]; /** * Creates the connection search dynamic tool resolver events. * * The resolver subscribes to `step.started` so it re-derives the tool * set from conversation history on every step. After compaction, old * `connection_search` results disappear from messages and discovered * tools naturally drop from the toolset. */ export declare function createConnectionSearchEvents(): DynamicToolEvents; /** * Creates a `ResolvedDynamicToolResolver` for the framework connection * search tool. Used by graph resolution to register alongside authored * dynamic tool resolvers. */ export declare function createConnectionSearchResolver(): ResolvedDynamicToolResolver; export {};