import type { CodaliGatewayPlannerToolDescriptor } from "./GatewayPlanner.js"; /** Cap on tools expanded in one planner prompt, after capability narrowing. */ export declare const MAX_EXPANDED_TOOLS = 40; export interface ToolExposureDescriptor extends CodaliGatewayPlannerToolDescriptor { capability?: string; readOnly?: boolean; } export type ToolExposureDescriptors = Record; interface NormalizedDescriptor { name: string; description: string; capability: string; readOnly: boolean; inputSchema?: Record; } export declare const normalizeToolExposure: (toolNames: readonly string[], descriptors: ToolExposureDescriptors | undefined) => NormalizedDescriptor[]; export declare const groupByCapability: (tools: NormalizedDescriptor[]) => Map; /** * Stage 1 rendering: one line per capability, no schemas. This is what the * classifier sees, and it stays a fixed small size no matter how many tools a * tenant has connected. */ export declare const renderCapabilityLines: (toolNames: readonly string[], descriptors: ToolExposureDescriptors | undefined) => string; export interface RenderToolLinesResult { text: string; expandedTools: string[]; truncated: boolean; } /** * Stage 2 rendering: full descriptions and argument shapes, narrowed to the * capabilities the classifier selected. Passing no selection expands * everything, which is the correct behaviour for small local tool sets. */ export declare const renderToolLines: (toolNames: readonly string[], descriptors: ToolExposureDescriptors | undefined, selectedCapabilities?: readonly string[]) => RenderToolLinesResult; export {}; //# sourceMappingURL=ToolExposure.d.ts.map