/**
 * Hard Clear
 *
 * Performs hard clearing of messages by replacing content
 * with a placeholder after TTL expires. Used for tool call
 * results that are no longer needed.
 */
import type { PruningConfig, PrunableMessage, ToolCallTimestamp } from './config.js';
/**
 * Create a placeholder for cleared tool result
 */
export declare function createToolResultPlaceholder(toolName: string, toolCallId: string, originalLength: number): string;
/**
 * Create a placeholder for cleared assistant message
 */
export declare function createAssistantPlaceholder(messageIndex: number, originalLength: number, summary?: string): string;
/**
 * Create a placeholder for cleared tool call
 */
export declare function createToolCallPlaceholder(toolName: string, toolCallId: string): string;
/**
 * Hard clear a message, replacing content with a placeholder
 */
export declare function hardClearMessage(message: PrunableMessage, placeholder: string): PrunableMessage;
/**
 * Hard clear messages with expired tool calls
 */
export declare function hardClearExpiredToolCalls(messages: PrunableMessage[], expiredToolCalls: ToolCallTimestamp[], _config?: Partial<PruningConfig>): {
    messages: PrunableMessage[];
    clearedCount: number;
    toolCallsCleared: string[];
};
/**
 * Hard clear old messages based on age
 */
export declare function hardClearOldMessages(messages: PrunableMessage[], config?: Partial<PruningConfig>): {
    messages: PrunableMessage[];
    clearedCount: number;
};
/**
 * Check if a message should be hard cleared
 */
export declare function shouldHardClear(message: PrunableMessage, expiredToolCallIds: Set<string>, messages: PrunableMessage[], config?: Partial<PruningConfig>): boolean;
/**
 * Combine hard clear operations
 */
export declare function applyHardClear(messages: PrunableMessage[], expiredToolCalls: ToolCallTimestamp[], config?: Partial<PruningConfig>): {
    messages: PrunableMessage[];
    clearedCount: number;
    toolCallsCleared: string[];
};
