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<IShortcut[]>;
    /**
     * 检查是否有有效快捷方式
     */
    get hasShortcuts(): boolean;
    /**
     * 获取快捷方式列表（兼容旧 API，等同于 effectiveShortcuts）
     * @deprecated 建议使用 effectiveShortcuts
     */
    get shortcuts(): ComputedRef<IShortcut[]>;
    /**
     * 添加快捷方式（添加到 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