/**
 * 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;
