import type { OutputStream } from './index.js'; export declare function isToolTraceEnabled(): boolean; /** One-line summary of a single tool invocation's params — short enough to chain. */ declare function summarizeToolInput(name: string, input: any): string; /** Compose the Slack line. Truncates from the tail when total exceeds MAX_LINE_LEN. */ declare function renderToolLine(toolName: string, summaries: string[], opts?: { prefix?: string | null; }): string; export interface ToolTraceOptions { /** Prefix prepended to the line; used by multi-agent threads (e.g. `*[writer]*`). */ slotPrefix?: string | null; } export declare class ToolTrace { private stream; private region; private prefix; /** Name of the currently-open group (null if no open group). */ private groupName; /** Accumulated summaries for the open group; rendered on every update. */ private groupSummaries; constructor(stream: OutputStream, opts?: ToolTraceOptions); onToolUse(name: string, input: any): void; /** Seal the current group on the tool-trace side. The stream's mutable region * is not touched here — the next `stream.emitText(text)` or * `stream.openMutable(...)` will seal it naturally. */ flush(): void; } /** Factory: returns a ToolTrace wired to the given OutputStream, or null if the feature is disabled or stream is missing. */ export declare function createToolTrace(stream: OutputStream | null | undefined, opts?: ToolTraceOptions): ToolTrace | null; export declare const _test: { summarizeToolInput: typeof summarizeToolInput; renderToolLine: typeof renderToolLine; }; export {};