import { EventEmitter } from 'events';
import { ClaudeMessage } from '../types/index.js';
export interface SessionCompletionData {
    sessionId: string;
    projectName: string;
    summary: string;
    totalCost: number;
    messageCount: number;
    duration: number;
    startTime: Date;
    endTime: Date;
    lastMessageUuid: string;
}
export interface TaskCompletionData {
    sessionId: string;
    projectName: string;
    taskCost: number;
    taskDuration: number;
    assistantMessageCount: number;
    lastMessageUuid: string;
    timestamp: Date;
    completionType: 'immediate' | 'delayed';
}
export interface TaskProgressData {
    sessionId: string;
    projectName: string;
    currentCost: number;
    currentDuration: number;
    assistantMessageCount: number;
    isActive: boolean;
    estimatedCompletion?: number;
}
export interface SessionDetectorConfig {
    inactivityTimeout?: number;
    summaryMessageTimeout?: number;
    taskCompletionTimeout?: number;
    delayedTaskCompletionTimeout?: number;
    minTaskCost?: number;
    minTaskMessages?: number;
    enableProgressNotifications?: boolean;
    progressCheckInterval?: number;
    minProgressCost?: number;
    minProgressDuration?: number;
}
export declare class SessionDetector extends EventEmitter {
    private jsonlParser;
    private costCalculator;
    private sessions;
    private config;
    constructor(config?: SessionDetectorConfig);
    processMessage(message: ClaudeMessage, filePath?: string): void;
    private startProgressMonitoring;
    private checkTaskProgress;
    private estimateCompletion;
    private completeTask;
    private completeSession;
    private generateSummary;
    completeAllSessions(): void;
    getActiveSessions(): string[];
    getSessionInfo(sessionId: string): {
        sessionId: string;
        projectName: string;
        totalCost: number;
        messageCount: number;
        hasSummary: boolean;
        lastActivity: Date;
        duration: number;
    } | null;
    isSessionIdle(sessionId: string): boolean;
    updateConfig(config: Partial<SessionDetectorConfig>): void;
}
//# sourceMappingURL=session-detector.d.ts.map