import type { AgentMessage } from '@earendil-works/pi-agent-core';
export interface WindowConfig {
    maxMessages: number;
    keepRecentMessages: number;
    preserveSystemMessages: boolean;
}
export declare class SlidingWindow {
    private config;
    constructor(config?: Partial<WindowConfig>);
    /**
     * Trim messages to keep within window size
     */
    trim(messages: AgentMessage[]): AgentMessage[];
    /**
     * Check if messages need trimming
     */
    needsTrim(messages: AgentMessage[]): boolean;
    /**
     * Get stats about current window
     */
    getStats(messages: AgentMessage[]): {
        total: number;
        system: number;
        user: number;
        assistant: number;
        tool: number;
        needsTrim: boolean;
    };
}
