import React from "react";
import type { ChatMode, Error402MessageData } from "../../types";
import { type AdvancedTab } from "../../utils";
import { Message, type OAuthRequiredData, type OAuthResolvedData } from "./use-chat-v2";
import { ChatStatus } from "../../features/chat/slice";
type Props = {
    mode?: ChatMode;
    tenantKey: string;
    mentorId: string;
    username: string;
    token: string;
    wsUrl: string;
    redirectToAuthSpa: (redirectTo?: string, platformKey?: string, logout?: boolean) => void;
    stopGenerationWsUrl: string;
    sendMessageToParentWebsite?: (payload: unknown) => void;
    errorHandler?: (message: string, error?: any) => void;
    isPreviewMode?: boolean;
    mentorShareableToken?: string | null;
    on402Error?: (message: Error402MessageData) => void;
    cachedSessionId?: Record<string, string>;
    onStartNewChat?: (sessionId: string) => void;
    onOAuthRequired?: (data: OAuthRequiredData) => void;
    onOAuthResolved?: (data: OAuthResolvedData) => void;
    isOffline?: boolean;
    onOfflineWithoutLocalLLM?: () => void;
    isPublicRoute?: boolean;
    initialPrompt?: string;
};
export declare function useAdvancedChat({ tenantKey, mentorId, username, token, wsUrl, stopGenerationWsUrl, redirectToAuthSpa, errorHandler, sendMessageToParentWebsite, isPreviewMode, mentorShareableToken, on402Error, cachedSessionId, onStartNewChat, onOAuthRequired, onOAuthResolved, isOffline, onOfflineWithoutLocalLLM, isPublicRoute, initialPrompt, }: Props): {
    messages: Message[];
    isStreaming: boolean;
    status: ChatStatus;
    isPending: boolean;
    isStopped: boolean;
    isError: boolean;
    currentStreamingMessage: import("../../features").StreamingMessage;
    activeTab: "chat" | "summarize" | "translate" | "expand";
    uniqueMentorId: string;
    mentorName: string;
    profileImage: string;
    enabledGuidedPrompts: boolean;
    sendMessage: (tab: AdvancedTab, text: string, options?: import("./use-chat-v2").SendMessageOptions) => Promise<void>;
    stopGenerating: () => void;
    setMessage: (message: Message) => void;
    changeTab: (tab: AdvancedTab) => Promise<void>;
    sessionId: string;
    startNewChat: () => Promise<void>;
    isLoadingSessionIds: boolean;
    ws: React.MutableRefObject<WebSocket | null>;
    isConnected: React.MutableRefObject<boolean>;
    messageQueue: React.MutableRefObject<any[]>;
    sessionIds: import("../../features").SessionIds;
    enableSafetyDisclaimer: any;
    resetConnection: () => void;
    isLoadingChats: boolean;
    refetchChats: () => Promise<void>;
    loadOlderMessages: () => Promise<void>;
    hasMore: boolean;
    isLoadingOlderMessages: boolean;
};
export {};
