import type { ComputedRef, Ref } from 'vue';
import { MessageStatus, MessageToolsStatus } from '@blueking/chat-x';
import type { ChatBusinessManager } from '../../manager/business/chat-business-manager';
import type { SessionBusinessManager } from '../../manager/business/session-business-manager';
import type { ShortcutManager } from '../../manager/business/shortcut-manager';
import type { IChatHelper } from '../../types';
import type { ChatBotProps } from '../types';
import type { ISupportUpload } from '@blueking/chat-helper';
import type { IAiSlashMenuItem, Message, Shortcut } from '@blueking/chat-x';
export interface UseChatbotStateParams {
    chatBusinessManager: Ref<ChatBusinessManager | null>;
    chatHelper: Ref<IChatHelper | null>;
    isInitialized: Ref<boolean>;
    isStandaloneMode: Ref<boolean>;
    props: ChatBotProps;
    selectedShortcut: Ref<null | (Shortcut & {
        supportUpload?: ISupportUpload;
    })>;
    sessionBusinessManager: Ref<null | SessionBusinessManager>;
    shortcutManager: Ref<null | ShortcutManager>;
}
export interface UseChatbotStateReturn {
    chatbotStyle: ComputedRef<Record<string, string | undefined>>;
    currentSession: ComputedRef<any>;
    effectivePrompts: ComputedRef<string[]>;
    effectiveResources: ComputedRef<IAiSlashMenuItem[]>;
    effectiveSupportUpload: ComputedRef<boolean>;
    filteredShortcuts: ComputedRef<Shortcut[]>;
    isGenerating: ComputedRef<boolean>;
    isMessagesLoading: ComputedRef<boolean>;
    isWelcomeState: ComputedRef<boolean>;
    messages: ComputedRef<Message[]>;
    messageStatus: ComputedRef<MessageStatus>;
    messageToolsStatus: ComputedRef<MessageToolsStatus | undefined>;
    openingRemark: ComputedRef<string>;
}
export declare function useChatbotState(params: UseChatbotStateParams): UseChatbotStateReturn;
//# sourceMappingURL=use-chatbot-state.d.ts.map