export interface ClaudeMessage {
    type: 'user' | 'assistant' | 'summary' | 'file-history-snapshot';
    uuid: string;
    parentUuid: string | null;
    timestamp: string;
    sessionId: string;
    cwd: string;
    gitBranch?: string;
    version?: string;
    message?: {
        role: 'user' | 'assistant';
        content: string | ContentBlock[];
        model?: string;
        id?: string;
        usage?: TokenUsage;
    };
    summary?: string;
    leafUuid?: string;
    toolUseResult?: string;
    todos?: TodoItem[];
}
export interface ContentBlock {
    type: 'text' | 'tool_use' | 'tool_result' | 'thinking';
    text?: string;
    thinking?: string;
    name?: string;
    input?: Record<string, unknown>;
    content?: string;
    is_error?: boolean;
    tool_use_id?: string;
}
export interface TokenUsage {
    input_tokens: number;
    output_tokens: number;
    cache_creation_input_tokens?: number;
    cache_read_input_tokens?: number;
}
export interface TodoItem {
    content: string;
    status: 'pending' | 'in_progress' | 'completed';
}
export interface ParsedSession {
    id: string;
    projectPath: string;
    projectName: string;
    startedAt: Date;
    endedAt: Date | null;
    durationSeconds: number;
    gitBranch: string | null;
    inputTokens: number;
    outputTokens: number;
    totalTokens: number;
    estimatedCostUsd: number;
    summaries: string[];
    messageCount: number;
    userMessageCount: number;
    assistantMessageCount: number;
    toolCalls: ToolCall[];
    toolCallCount: number;
    filesRead: string[];
    filesWritten: string[];
    filesEdited: string[];
    errors: SessionError[];
    model: string;
}
export interface ToolCall {
    name: string;
    timestamp: string;
    input: Record<string, unknown>;
    result?: string;
    isError: boolean;
    durationMs?: number;
}
export interface SessionError {
    timestamp: string;
    message: string;
    toolName?: string;
    context?: string;
}
export interface SessionListItem {
    id: string;
    projectName: string;
    projectPath: string;
    startedAt: Date;
    duration: string;
    summary: string;
    totalTokens: number;
    cost: string;
    model: string;
    messageCount: number;
    toolCallCount: number;
}
export interface SessionStats {
    totalSessions: number;
    totalTokens: number;
    totalCost: number;
    totalDuration: number;
    averageSessionDuration: number;
    sessionsToday: number;
    tokensToday: number;
    projectBreakdown: {
        project: string;
        sessions: number;
        tokens: number;
    }[];
    modelBreakdown: {
        model: string;
        sessions: number;
        tokens: number;
    }[];
    dailyActivity: {
        date: string;
        sessions: number;
        tokens: number;
        messages: number;
    }[];
}
export interface ResumeContext {
    session: ParsedSession;
    lastSummary: string;
    recentFiles: string[];
    openTodos: TodoItem[];
    lastUserMessage: string;
    resumePrompt: string;
}
export interface DailyActivity {
    date: string;
    messageCount: number;
    sessionCount: number;
    toolCallCount: number;
    tokenCount?: number;
    costUsd?: number;
}
export interface StatsCache {
    version: number;
    lastComputedDate: string;
    dailyActivity: DailyActivity[];
}
export interface HourlyActivityMap {
    [dayOfWeek: number]: {
        [hour: number]: number;
    };
}
export interface HeatmapData {
    cells: HeatmapCell[];
    maxValue: number;
    totalDays: number;
    weekStart: Date;
    weekEnd: Date;
}
export interface HeatmapCell {
    date: string;
    dayOfWeek: number;
    week: number;
    value: number;
    sessions?: number;
    messages?: number;
    tools?: number;
    tokens?: number;
}
export interface CommandHistoryEntry {
    display: string;
    timestamp: number;
    project: string;
    pastedContents?: Record<string, unknown>;
}
export interface PlanFile {
    name: string;
    path: string;
    content: string;
    createdAt: Date;
    modifiedAt: Date;
    size: number;
}
export interface LeaderboardEntry {
    rank: number;
    name: string;
    value: number;
    secondaryValue?: number;
    trend?: 'up' | 'down' | 'same';
    metadata?: Record<string, unknown>;
}
export interface Leaderboard {
    type: 'projects' | 'models' | 'tools' | 'days' | 'sessions';
    title: string;
    entries: LeaderboardEntry[];
    metric: string;
    secondaryMetric?: string;
}
export interface TimelineEvent {
    id: string;
    type: 'session_start' | 'session_end' | 'message' | 'tool_call' | 'error';
    timestamp: Date;
    sessionId: string;
    projectName: string;
    details?: {
        tool?: string;
        message?: string;
        tokens?: number;
        isError?: boolean;
    };
}
export interface TimelineData {
    events: TimelineEvent[];
    sessions: {
        id: string;
        projectName: string;
        startedAt: Date;
        endedAt: Date | null;
        durationSeconds: number;
        model: string;
        tokens: number;
    }[];
    dateRange: {
        start: Date;
        end: Date;
    };
}
export interface EnrichedSession {
    sessionId: string;
    enrichedAt: Date;
    summary: string;
    decisions: string[];
    problems: {
        issue: string;
        solution: string;
    }[];
    knowledge: string[];
    tags: string[];
    sentiment: 'productive' | 'challenging' | 'exploratory' | 'maintenance';
}
export interface KnowledgeSearchResult {
    sessionId: string;
    projectName: string;
    date: Date;
    matchType: 'summary' | 'file' | 'error' | 'tool' | 'enriched';
    snippet: string;
    relevanceScore: number;
}
export interface TrackedIssue {
    id: string;
    pattern: string;
    errorMessage: string;
    occurrences: {
        sessionId: string;
        timestamp: Date;
        context?: string;
    }[];
    firstSeen: Date;
    lastSeen: Date;
    status: 'open' | 'resolved' | 'recurring';
    resolution?: {
        sessionId: string;
        timestamp: Date;
        description?: string;
    };
}
//# sourceMappingURL=index.d.ts.map