export interface ChatRequest {
    message: string;
    sessionId?: string;
    context?: Record<string, any>;
}
export interface ChatResponse {
    id: string;
    content: string;
    timestamp: Date;
    sessionId: string;
    sources?: Array<{
        title: string;
        content: string;
        url?: string;
        score: number;
    }>;
    metadata?: Record<string, any>;
}
export interface StreamingChatResponse {
    id: string;
    content: string;
    isComplete: boolean;
    timestamp: Date;
    sessionId: string;
    sources?: Array<{
        title: string;
        content: string;
        url?: string;
        score: number;
    }>;
    error?: string;
}
export declare class ChatbotAPIError extends Error {
    status?: number;
    code?: string;
    constructor(message: string, status?: number, code?: string);
}
export declare class ChatbotAPI {
    private baseUrl;
    private apiKey?;
    private sessionId;
    constructor(baseUrl?: string, apiKey?: string);
    private generateSessionId;
    private makeRequest;
    sendMessage(request: ChatRequest): Promise<ChatResponse>;
    streamMessage(request: ChatRequest): AsyncGenerator<StreamingChatResponse, void, unknown>;
    getSessionHistory(sessionId?: string): Promise<ChatResponse[]>;
    clearSession(sessionId?: string): Promise<void>;
    getSessionId(): string;
    setSessionId(sessionId: string): void;
    healthCheck(): Promise<{
        status: string;
        timestamp: Date;
    }>;
}
export declare function useChatbotAPI(baseUrl?: string, apiKey?: string): ChatbotAPI;
export declare function withRetry<T>(operation: () => Promise<T>, maxRetries?: number, delay?: number): Promise<T>;
//# sourceMappingURL=chatbot-api.d.ts.map