/** * Utility functions for handling reasoning/thinking content across providers. * * @plan PLAN-20251202-THINKING.P06 * @requirement REQ-THINK-002 */ import type { IContent, ThinkingBlock, ToolCallBlock } from '../../services/history/IContent.js'; /** Policy for stripping thinking blocks from context */ export type StripPolicy = 'all' | 'allButLast' | 'none'; /** * Extract all ThinkingBlock instances from an IContent. * * @plan PLAN-20251202-THINKING.P08 * @requirement REQ-THINK-002.1 */ export declare function extractThinkingBlocks(content: IContent): ThinkingBlock[]; /** * Filter thinking blocks from contents based on strip policy. * * @plan PLAN-20251202-THINKING.P08 * @requirement REQ-THINK-002.2 */ export declare function filterThinkingForContext(contents: IContent[], policy: StripPolicy): IContent[]; /** * Convert ThinkingBlocks to a single reasoning_content string. * * @plan PLAN-20251202-THINKING.P08 * @requirement REQ-THINK-002.3 */ export declare function thinkingToReasoningField(blocks: ThinkingBlock[]): string | undefined; /** * Estimate token count for thinking blocks. * * @plan PLAN-20251202-THINKING.P08 * @requirement REQ-THINK-002.4 */ export declare function estimateThinkingTokens(blocks: ThinkingBlock[]): number; /** * Helper: Remove thinking blocks from a single IContent. * * @plan PLAN-20251202-THINKING.P08 */ export declare function removeThinkingFromContent(content: IContent): IContent; /** * Extract and remove Kimi K2 tool call special tokens from text. * Handles both complete tool call sections and stray/malformed tokens. * * @param raw - Raw text that may contain Kimi K2 tool call tokens * @returns Object with cleanedText (tokens removed) and extracted toolCalls array * * @issue #722 * @plan PLAN-20251202-THINKING.P06 */ export declare function extractKimiToolCallsFromText(raw: string): { cleanedText: string; toolCalls: ToolCallBlock[]; }; /** * Clean Kimi K2 tool call tokens from thinking content. * Simple wrapper that just returns cleaned text without extracting tool calls. * * @param thought - Thinking content that may contain Kimi K2 tool call tokens * @returns Cleaned text with all K2 tool tokens removed * * @issue #722 * @plan PLAN-20251202-THINKING.P06 */ export declare function cleanKimiTokensFromThinking(thought: string): string;