/**
 * Soft Trim
 *
 * Performs soft trimming of message content by keeping
 * the head and tail portions while removing the middle.
 * Preserves context while reducing token count.
 */
import type { PruningConfig, PrunableMessage } from './config.js';
/**
 * Soft trim a string by keeping head and tail
 */
export declare function softTrimString(content: string, headChars?: number, tailChars?: number): {
    trimmed: string;
    removed: number;
};
/**
 * Soft trim a message content
 */
export declare function softTrimContent(content: string | null | unknown, config?: Partial<PruningConfig>): {
    content: string | null | unknown;
    removed: number;
    trimmed: boolean;
};
/**
 * Soft trim a prunable message
 */
export declare function softTrimMessage(message: PrunableMessage, config?: Partial<PruningConfig>): PrunableMessage;
/**
 * Soft trim multiple messages
 */
export declare function softTrimMessages(messages: PrunableMessage[], config?: Partial<PruningConfig>): {
    messages: PrunableMessage[];
    totalRemoved: number;
    trimmedCount: number;
};
/**
 * Check if a message should be soft trimmed based on configuration
 */
export declare function shouldSoftTrim(message: PrunableMessage, messages: PrunableMessage[], config?: Partial<PruningConfig>): boolean;
