import { type InternalEvent, type InternalEventData } from '../manager/event-types';
import type { ComponentManager } from '../manager/component-manager';
/**
 * useEventBridge 配置选项
 */
export interface UseEventBridgeOptions {
    /**
     * ComponentManager 实例
     */
    componentManager: ComponentManager;
    /**
     * 是否启用调试模式
     */
    debug?: boolean;
    /**
     * Vue emit 函数
     * 通常是 defineEmits 返回的函数
     */
    emit: (event: string, ...args: unknown[]) => void;
}
/**
 * useEventBridge 返回值
 */
export interface UseEventBridgeReturn {
    /**
     * 清理所有事件监听
     */
    cleanup: () => void;
    /**
     * 手动触发 Vue emit
     * 用于需要直接发射 Vue emit 而不经过 Manager 的场景
     *
     * @param event Vue emit 事件名
     * @param args 事件参数
     */
    emitDirect: (event: string, ...args: unknown[]) => void;
    /**
     * 转发事件到 ComponentManager
     * 用于将子组件的 Vue emit 事件转发到统一事件系统
     *
     * @param event 内部事件名
     * @param data 事件数据
     */
    forwardToManager: <T extends InternalEvent>(event: T, data: InternalEventData[T]) => void;
}
/**
 * 创建事件转发器
 *
 * 用于简化子组件事件到 Manager 的转发
 * 返回一个预配置的转发函数集合
 *
 * @param forwardToManager useEventBridge 返回的 forwardToManager 函数
 */
export declare function createEventForwarders(forwardToManager: UseEventBridgeReturn['forwardToManager']): {
    sendMessage: (content: string) => void;
    receiveStart: () => void;
    receiveText: () => void;
    receiveEnd: () => void;
    stop: () => void;
    newChat: () => void;
    newChatCreated: (session: {
        sessionCode: string;
        sessionName?: string;
        createdAt?: string;
    }) => void;
    historyClick: (event: Event) => void;
    autoGenerateName: () => void;
    helpClick: () => void;
    rename: (newName: string) => void;
    share: () => void;
    transferMessages: (messageIds: string[]) => void;
    shareMessages: (messageIds: string[]) => void;
};
/**
 * 事件桥接 Composable
 *
 * 自动将 ComponentManager 的内部事件桥接到 Vue emit，实现：
 * 1. 统一的事件管理 - 所有事件通过 ComponentManager 统一管理
 * 2. 自动桥接 - 内部事件自动转换为 Vue emit
 * 3. 事件转换 - 支持事件名和数据的转换
 * 4. 子组件事件转发 - 提供 forwardToManager 方法
 *
 * 使用示例：
 * ```typescript
 * const emit = defineEmits<AIBluekingEmits>();
 * const { forwardToManager } = useEventBridge({
 *   componentManager,
 *   emit,
 * });
 *
 * // 子组件事件转发
 * const handleSendMessage = (message: string) => {
 *   forwardToManager('send-message', { content: message });
 * };
 * ```
 */
export declare function useEventBridge(options: UseEventBridgeOptions): UseEventBridgeReturn;
//# sourceMappingURL=use-event-bridge.d.ts.map