import { ModelRegistry } from './model-registry.js';
import { PluginConfig, GatewayConfig, TranscriptEntry, HourlySummary } from './types.js';
import { TranscriptManager } from './transcript.js';
import './session-integrity.js';

declare class HourlySummarizer {
    private summariesDir;
    private config;
    private localLlm;
    private fallbackLlm;
    private modelRegistry;
    private transcript?;
    constructor(config: PluginConfig, gatewayConfig?: GatewayConfig, modelRegistry?: ModelRegistry, transcript?: TranscriptManager);
    private get useGatewayModelSource();
    private get shouldUseLocalLlm();
    private withGatewayAgent;
    initialize(): Promise<void>;
    generateSummary(sessionKey: string, hourStart: Date, entries: TranscriptEntry[]): Promise<HourlySummary | null>;
    private generateExtended;
    /**
     * Generate summary using local LLM with JSON mode.
     * Uses dynamic context sizing based on model capabilities.
     */
    private generateWithLocalLlm;
    saveSummary(summary: HourlySummary): Promise<void>;
    private formatHourSection;
    readRecent(sessionKey: string, hours: number): Promise<HourlySummary[]>;
    private parseSummaryFile;
    formatForRecall(summaries: HourlySummary[], maxCount: number): string;
    runHourly(): Promise<void>;
    private getActiveSessions;
    private getTranscriptEntries;
}

export { HourlySummarizer };
