import { ResponseInput, ResponseInputItem } from '../types/types.js';
export interface MessageHistoryOptions {
    maxMessages?: number;
    maxTokens?: number;
    preserveSystemMessages?: boolean;
    compactToolCalls?: boolean;
    compactionThreshold?: number;
}
export type PinnableMessage = ResponseInputItem & {
    pinned?: boolean;
};
export interface ExtractedInfo {
    entities: Set<string>;
    decisions: string[];
    todos: string[];
    tools: Array<{
        name: string;
        purpose: string;
    }>;
}
export interface MicroLogEntry {
    timestamp?: number;
    role: string;
    summary: string;
}
export declare class MessageHistory {
    private messages;
    private options;
    private estimatedTokens;
    private microLog;
    private extractedInfo;
    constructor(initialMessages?: ResponseInput, options?: MessageHistoryOptions);
    add(message: ResponseInputItem | PinnableMessage): Promise<void>;
    getMessages(model?: string): Promise<ResponseInput>;
    pinMessage(index: number): void;
    getMicroLog(): MicroLogEntry[];
    getExtractedInfo(): ExtractedInfo;
    private addToMicroLog;
    private createMicroLogSummary;
    private extractInformation;
    private extractEntities;
    private extractDecisions;
    private extractTodos;
    private inferToolPurpose;
    private getMessageContent;
    count(): number;
    clear(): void;
    private trim;
    private compactToolCalls;
    getSummary(): string;
    findLast(predicate: (msg: any) => boolean): any | undefined;
    lastAssistantHadToolCalls(): boolean;
    private estimateMessageTokens;
    private updateTokenEstimate;
    private checkAndCompact;
    private performCompaction;
    private compactHistoryHybrid;
    private createHybridSummary;
    private createMicroLogSection;
    private createStructuredInfoSection;
    private createDetailedSummary;
    private estimateTextTokens;
    ensureToolResultSequence(): void;
}
//# sourceMappingURL=message_history.d.ts.map