import { TopicThread, CompactionLevel } from '../types/index.js';
import type { Agent } from '@just-every/ensemble';
export interface SummarizerInterface {
    summarize(thread: TopicThread, messagesToSummarize: number, level: CompactionLevel): Promise<string>;
}
export declare class ThreadSummarizer {
    summarizeThread(thread: TopicThread): Promise<{
        threadId: string;
        title: string;
        summary: string;
        keyPoints: string[];
        tokenCount: number;
    }>;
}
export declare class LLMSummarizer implements SummarizerInterface {
    private agent;
    constructor(agent: Agent);
    summarize(thread: TopicThread, messagesToSummarize: number, level: CompactionLevel): Promise<string>;
    /**
     * Format messages for the summarization prompt
     */
    private formatMessages;
    /**
     * Clean and truncate the summary to fit token limits
     */
    private cleanSummary;
}
//# sourceMappingURL=index.d.ts.map