/**
 * Context Pruning Module
 *
 * Provides TTL-based pruning of context messages to manage
 * context window size. Includes soft trimming and hard clearing.
 */
export type { PruningConfig, ToolCallTimestamp, PrunableMessage, PruningResult, PruningEvents, } from './config.js';
export { DEFAULT_PRUNING_CONFIG } from './config.js';
export { TTLManager, getTTLManager, resetTTLManager } from './ttl-manager.js';
export { softTrimString, softTrimContent, softTrimMessage, softTrimMessages, shouldSoftTrim, } from './soft-trim.js';
export { createToolResultPlaceholder, createAssistantPlaceholder, createToolCallPlaceholder, hardClearMessage, hardClearExpiredToolCalls, hardClearOldMessages, shouldHardClear, applyHardClear, } from './hard-clear.js';
import type { PruningConfig, PrunableMessage, PruningResult } from './config.js';
import { TTLManager } from './ttl-manager.js';
/**
 * Convert a ChatMessage-like object to PrunableMessage
 */
export declare function toPrunableMessage(message: {
    role: string;
    content: string | null | unknown;
    tool_calls?: Array<{
        id: string;
    }>;
}, index: number, timestamp?: number): PrunableMessage;
/**
 * Convert PrunableMessage back to ChatMessage-like object
 */
export declare function fromPrunableMessage(message: PrunableMessage): {
    role: string;
    content: string | null | unknown;
};
/**
 * Apply full pruning pipeline to messages
 *
 * Pipeline:
 * 1. Get expired tool calls from TTL manager
 * 2. Hard clear messages with expired tool calls
 * 3. Soft trim remaining large messages
 */
export declare function pruneMessages(messages: PrunableMessage[], config?: Partial<PruningConfig>): PruningResult;
/**
 * Register tool calls for TTL tracking
 */
export declare function registerToolCalls(toolCalls: Array<{
    id: string;
    function: {
        name: string;
    };
}>, messageIndex: number, config?: Partial<PruningConfig>): void;
/**
 * Check if pruning is needed based on message count and age
 */
export declare function shouldPrune(messages: PrunableMessage[], config?: Partial<PruningConfig>): boolean;
/**
 * Get pruning statistics
 */
export declare function getPruningStats(messages: PrunableMessage[], config?: Partial<PruningConfig>): {
    totalMessages: number;
    softTrimmed: number;
    hardCleared: number;
    prunableCount: number;
    ttlStats: ReturnType<TTLManager['getStats']>;
};
