import type { ComputedRef, Ref } from 'vue';
import type ChatBot from '../components/chat-bot.vue';
import type { SessionBusinessManager } from '../manager/business/session-business-manager';
import type { CreateSessionOptions } from '../manager/business/types';
import type { IChatHelper, ISession } from '../types';
import type { EventForwarders } from './use-ai-blueking-init';
export interface UseSessionHandlersParams {
    chatBotRef: Ref<InstanceType<typeof ChatBot> | undefined>;
    chatHelper: IChatHelper;
    currentSession: ComputedRef<ISession | null>;
    forwarders: EventForwarders;
    sessionBusinessManager: SessionBusinessManager;
    handleError: (error: Error) => void;
}
export declare function useSessionHandlers(params: UseSessionHandlersParams): {
    sessionName: Ref<string, string>;
    hasPermission: Ref<boolean, boolean>;
    hasSessionContents: Ref<boolean, boolean>;
    autoGenerateLoading: Ref<boolean, boolean>;
    handleNewChat: () => Promise<void>;
    handleNewChatCreated: (session: {
        sessionCode: string;
        sessionName?: string;
        createdAt?: string;
    }) => void;
    handleHistoryClick: (event: Event) => void;
    handleHistorySessionSwitch: (sessionCode: string) => Promise<void>;
    handleHistorySessionDelete: (sessionCode: string) => Promise<void>;
    handleHistorySessionRename: (sessionCode: string, newName: string) => Promise<void>;
    handleAutoGenerateName: () => Promise<void>;
    handleHelpClick: () => void;
    handleRename: (newName: string) => Promise<void>;
    handleSessionSwitched: (session: ISession | null) => void;
    addNewSession: (options?: CreateSessionOptions) => Promise<void>;
    switchToSession: (sessionCode: string) => Promise<void>;
    updateSessionName: (sessionCode: string, newName: string) => Promise<void>;
};
//# sourceMappingURL=use-session-handlers.d.ts.map