/**
 * useAIConversation Hook - Advanced AI conversation management
 * Features: Message persistence, provider switching, context management
 */
import type { Message, Conversation } from '../components/ai-native/AIConversationCanvas';
export interface UseAIConversationOptions {
    conversationId?: string;
    initialConversation?: Partial<Conversation>;
    provider?: string;
    model?: string;
    onConversationUpdated?: (conversation: Conversation) => void;
    onMessageSent?: (message: Message) => void;
    onError?: (error: Error) => void;
    autoSave?: boolean;
    maxMessages?: number;
    persistenceAdapter?: ConversationPersistenceAdapter;
}
export interface ConversationPersistenceAdapter {
    save(conversation: Conversation): Promise<void>;
    load(conversationId: string): Promise<Conversation | null>;
    delete(conversationId: string): Promise<void>;
    list(): Promise<Conversation[]>;
}
export interface UseAIConversationReturn {
    conversation: Conversation | null;
    messages: Message[];
    isLoading: boolean;
    error: string | null;
    sendMessage: (message: Partial<Message>) => Promise<Message>;
    editMessage: (messageId: string, content: string) => Promise<void>;
    deleteMessage: (messageId: string) => Promise<void>;
    clearConversation: () => Promise<void>;
    regenerateMessage: (messageId: string) => Promise<Message>;
    forkConversation: (fromMessageId?: string) => Promise<Conversation>;
    exportConversation: (format: 'json' | 'markdown' | 'pdf') => Promise<string | Blob>;
    importConversation: (data: string | File) => Promise<Conversation>;
    switchProvider: (provider: string, model?: string) => void;
    getConversationStats: () => ConversationStats;
}
export interface ConversationStats {
    messageCount: number;
    totalTokens: number;
    totalCost: number;
    avgResponseTime: number;
    providerUsage: Record<string, number>;
    topicDistribution: Array<{
        topic: string;
        weight: number;
    }>;
}
export declare const useAIConversation: ({ conversationId, initialConversation, provider, model, onConversationUpdated, onMessageSent, onError, autoSave, maxMessages, persistenceAdapter }?: UseAIConversationOptions) => UseAIConversationReturn;
export default useAIConversation;
//# sourceMappingURL=useAIConversation.d.ts.map