import type { ComputedRef } from 'vue'; import type { IEventEmitter, IShortcut, ShortcutFilterFn } from './types'; /** * 快捷方式管理器 * * 职责: * - 管理快捷方式列表(开发者传入 + Agent 接口返回) * - 统一管理快捷指令优先级 * - 处理快捷方式点击逻辑 * - 处理快捷方式过滤 */ export declare class ShortcutManager { /** Agent info 接口返回的快捷方式 */ private _agentShortcuts; /** 有效的快捷方式(按优先级计算) */ private _effectiveShortcuts; /** 开发者通过 props 传入的快捷方式 */ private _propsShortcuts; private eventEmitter; /** * 发射事件(内部方法) */ private emit; constructor(eventEmitter?: IEventEmitter | null, propsShortcuts?: IShortcut[]); /** * 获取有效快捷方式数量 */ get count(): number; /** * 获取有效的快捷方式列表(按优先级计算) * 优先级: * 1. 开发者通过 props 传入的 shortcuts(如果非空) * 2. Agent info 接口返回的 commands(如果存在) * 3. 空数组 */ get effectiveShortcuts(): ComputedRef; /** * 检查是否有有效快捷方式 */ get hasShortcuts(): boolean; /** * 获取快捷方式列表(兼容旧 API,等同于 effectiveShortcuts) * @deprecated 建议使用 effectiveShortcuts */ get shortcuts(): ComputedRef; /** * 添加快捷方式(添加到 props 快捷方式列表) * @param shortcut 快捷方式 */ addShortcut(shortcut: IShortcut): void; /** * 清空所有快捷方式 */ clear(): void; /** * 根据文本长度限制过滤快捷方式 * @param selectedText 选中的文本 * @param maxLength 最大文本长度 * @returns 过滤后的快捷方式列表 */ filterByTextLength(selectedText: string, maxLength: number): IShortcut[]; /** * 过滤快捷方式 * @param selectedText 选中的文本 * @param filter 过滤函数(可选) * @returns 过滤后的快捷方式列表 */ filterShortcuts(selectedText: string, filter?: ShortcutFilterFn): IShortcut[]; /** * 根据 ID 获取快捷方式(从有效快捷方式列表中查找) * @param shortcutId 快捷方式 ID */ getShortcutById(shortcutId: string): IShortcut | undefined; /** * 处理快捷方式点击 * @param shortcut 快捷方式 * @param selectedText 选中的文本(可选) * @param source 来源(popup 或 main) */ handleShortcutClick(shortcut: IShortcut, selectedText?: string, source?: 'main' | 'popup'): void; /** * 根据数量限制获取快捷方式 * @param limit 显示数量限制 * @returns 限制后的快捷方式列表 */ limitShortcuts(limit: number): IShortcut[]; /** * 移除快捷方式(从 props 快捷方式列表移除) * @param shortcutId 快捷方式 ID */ removeShortcut(shortcutId: string): void; /** * 设置 Agent info 接口返回的快捷方式 * @param shortcuts Agent 返回的快捷方式数组 */ setAgentShortcuts(shortcuts: IShortcut[]): void; /** * 设置开发者传入的快捷方式列表 * @param shortcuts 快捷方式数组 */ setShortcuts(shortcuts: IShortcut[]): void; } //# sourceMappingURL=shortcut-manager.d.ts.map