import { type Ref } from 'vue';
import type { ChatMessage, ChatCallbacks, CustomRequestConfig } from '../types';
interface UseWebSocketChatOptions {
    uiHistory: Ref<ChatMessage[]>;
    controller: Ref<AbortController | null>;
    callbacks?: ChatCallbacks;
    requestConfig?: CustomRequestConfig;
    startStreaming: (messageIndex: number) => void;
    stopStreaming: () => void;
    updateMessage: (index: number, updates: Partial<ChatMessage> & Record<string, any>) => void;
    removeWaitingMessages: () => void;
    streamingScrollToBottom: () => void;
    handleRequestEnd: (content?: string) => void;
    suppressRequestEndCallback?: Ref<boolean>;
    beginWaitToStreamingTransition?: () => void;
    endWaitToStreamingTransition?: () => void;
}
export declare function useWebSocketChat(options: UseWebSocketChatOptions): {
    isWebSocketUrl: (url: string) => boolean;
    closeWebSocketConnection: () => void;
    handleWebSocketResponse: (url: string, requestData: any) => Promise<void>;
};
export {};
//# sourceMappingURL=useWebSocketChat.d.ts.map