/**
 * useChat Hook
 * Main state management for chat functionality
 */
import { ConversationMessage, WidgetConfig } from '../types';
export interface UseChatOptions {
    widgetId: string;
    apiUrl: string;
    onMessage?: (message: ConversationMessage) => void;
    onError?: (error: Error) => void;
    skipInitialization?: boolean;
}
export interface ConversationSummary {
    id: string;
    preview: string;
    lastMessageAt: string;
    messageCount: number;
    startedAt: string;
}
export interface UseChatReturn {
    messages: ConversationMessage[];
    isLoading: boolean;
    isTyping: boolean;
    error: string | null;
    config: WidgetConfig | null;
    conversationId: string;
    sendMessage: (content: string) => Promise<void>;
    clearMessages: () => void;
    submitFeedback: (messageId: string, feedback: 'positive' | 'negative') => Promise<void>;
    conversations: ConversationSummary[];
    loadConversations: () => void;
    switchConversation: (conversationId: string) => Promise<void>;
    startNewConversation: () => void;
    deleteConversation: (conversationId: string) => void;
}
export declare function useChat(options: UseChatOptions): UseChatReturn;
//# sourceMappingURL=useChat.d.ts.map