import { StorageAdapter } from '@aichatkit/storage-adapter';
import { Conversation, Message } from '@aichatkit/types';

interface LocalStorageAdapterOptions {
    conversationPrefix?: string;
    conversationIdsKey?: string;
    activeConversationKey?: string;
    agentMappingKey?: string;
}
declare class LocalStorageAdapter extends StorageAdapter {
    private conversationPrefix;
    private conversationIdsKey;
    private activeConversationKey;
    private agentMappingKey;
    constructor(options?: LocalStorageAdapterOptions);
    initialize(): Promise<void>;
    getActiveConversationId(): string;
    setActiveConversationId(id: string): void;
    saveConversation(conversation: Conversation): Promise<void>;
    getConversation(id: string): Promise<Conversation | null>;
    getAllConversations(): Promise<Conversation[]>;
    deleteConversation(id: string): Promise<boolean>;
    addMessage(conversationId: string, message: Message): Promise<Conversation | null>;
    getConversationHistory(conversationId: string): Promise<Message[]>;
    /**
     * Sync all conversations with backend on app reload/initialization
     */
    syncAllConversationsWithBackend(): Promise<void>;
    clearConversationHistory(conversationId: string): Promise<void>;
    setConversationAgent(conversationId: string, agentId: string): Promise<void>;
    getConversationAgent(conversationId: string): Promise<string | null>;
    clearAllConversations(): Promise<boolean>;
    private getConversationIds;
    private removeConversationAgent;
}

export { LocalStorageAdapter, type LocalStorageAdapterOptions };
