import type { useMaChatbot } from './useMaChatbot';
import type { MaChatbotMessage, MaChatbotSuggestedPrompt } from '../types';
type ChatbotApi = ReturnType<typeof useMaChatbot>;
export interface UseMessagesOptions {
    maOrgId: () => string | undefined;
    mockStreamFn: () => ((prompt: string, onToken: (token: string) => void, onDone: () => void) => void) | undefined;
    api: ChatbotApi;
    onResponseStart?: () => void;
    onResponseFinish?: () => void;
}
export declare function useMessages({ maOrgId, mockStreamFn, api, onResponseStart, onResponseFinish }: UseMessagesOptions): {
    messages: import("vue").Ref<{
        id: string;
        role: import("../types").MaChatbotMessageRole;
        content: string;
        timestamp?: Date;
        status?: import("../types").MaChatbotMessageStatus;
        recordId?: number;
        feedback?: boolean;
        feedbackTopic?: import("../types").MaChatbotFeedbackTopic;
        feedbackText?: string;
    }[], MaChatbotMessage[] | {
        id: string;
        role: import("../types").MaChatbotMessageRole;
        content: string;
        timestamp?: Date;
        status?: import("../types").MaChatbotMessageStatus;
        recordId?: number;
        feedback?: boolean;
        feedbackTopic?: import("../types").MaChatbotFeedbackTopic;
        feedbackText?: string;
    }[]>;
    userInput: import("vue").Ref<string, string>;
    messagesContainerRef: import("vue").Ref<HTMLElement, HTMLElement>;
    isBusy: import("vue").ComputedRef<boolean>;
    hasMessages: import("vue").ComputedRef<boolean>;
    error: Readonly<import("vue").Ref<string, string>>;
    renderMarkdown: (text: string, isStreaming?: boolean) => string;
    isStreamingMessage: (msg: MaChatbotMessage) => boolean;
    isErrorMessage: (msg: MaChatbotMessage) => boolean;
    sendMessage: () => Promise<void>;
    stopStream: () => void;
    handlePromptSelect: (prompt: MaChatbotSuggestedPrompt) => void;
};
export {};
