import type { Message } from '../types/index.js';
interface ConversationData {
    id: string;
    title?: string;
    created: string;
    updated: string;
    messages: Message[];
    context: Record<string, any>;
    tokens: number;
}
interface ToolUsage {
    tool: string;
    timestamp: string;
    input: any;
    output: any;
    duration: number;
}
interface FileAccess {
    path: string;
    operation: 'read' | 'write' | 'edit';
    timestamp: string;
    content?: string;
}
export declare class SessionStorage {
    private logger;
    private sessionDir;
    private currentSession;
    private sessionFile;
    private autoSaveInterval;
    private isDirty;
    constructor(sessionId?: string);
    initialize(): Promise<void>;
    private generateSessionId;
    private createNewSession;
    private loadSession;
    saveSession(): Promise<void>;
    private startAutoSave;
    addMessage(conversationId: string, message: Message): Promise<void>;
    addToolUsage(tool: string, input: any, output: any, duration: number): Promise<void>;
    addFileAccess(filePath: string, operation: 'read' | 'write' | 'edit', content?: string): Promise<void>;
    getConversationHistory(conversationId: string, limit?: number): Promise<Message[]>;
    getAllConversations(): Promise<ConversationData[]>;
    getRecentTools(limit?: number): Promise<ToolUsage[]>;
    getRecentFiles(limit?: number): Promise<FileAccess[]>;
    searchMessages(query: string, limit?: number): Promise<Message[]>;
    getSessionMetadata(): Promise<Record<string, any>>;
    listSessions(): Promise<string[]>;
    switchSession(sessionId: string): Promise<void>;
    deleteSession(sessionId?: string): Promise<void>;
    exportSession(): Promise<string>;
    importSession(data: string): Promise<void>;
    cleanup(): Promise<void>;
    getCurrentSessionId(): string | null;
    hasUnsavedChanges(): boolean;
}
export {};
//# sourceMappingURL=session-storage.d.ts.map