import { Message, TruncationStrategy, ContextConfig } from '../types'; export interface ITruncationStrategy { truncate(messages: Message[], maxTokens: number, tokenCounter: (msg: Message) => Promise): Promise; } /** * Recent-first strategy: Keep the most recent messages that fit within the token limit */ export declare class RecentFirstStrategy implements ITruncationStrategy { truncate(messages: Message[], maxTokens: number, tokenCounter: (msg: Message) => Promise): Promise; } /** * Sliding window strategy: Preserve context boundaries by keeping first N and last M messages */ export declare class SlidingWindowStrategy implements ITruncationStrategy { private keepFirstN; private keepLastM; constructor(keepFirstN?: number, keepLastM?: number); truncate(messages: Message[], maxTokens: number, tokenCounter: (msg: Message) => Promise): Promise; } /** * Importance-based strategy: Preserve system messages and important flagged messages */ export declare class ImportanceBasedStrategy implements ITruncationStrategy { private preserveSystemMessages; constructor(preserveSystemMessages?: boolean); truncate(messages: Message[], maxTokens: number, tokenCounter: (msg: Message) => Promise): Promise; } /** * Factory to create truncation strategies */ export declare class TruncationStrategyFactory { static create(strategy: TruncationStrategy, config?: ContextConfig): ITruncationStrategy; } //# sourceMappingURL=strategies.d.ts.map