import { type ShortcutConfig, type ShortcutProvider } from './ShortcutProvider';
export declare class ShortcutRegistry {
    private providers;
    private activationOrder;
    register(provider: ShortcutProvider): void;
    unregister(providerId: string): void;
    getShortcuts(interfaceId: string): ShortcutConfig[];
    private sortShortcuts;
    handleShortcutClick(interfaceId: string, shortcutId: string): void;
    /**
     * Reports a chip click to stats, using the `action` each provider already
     * declares rather than guessing from `active`:
     *
     * - `toggle` — `active` IS the filter, so only the click that turns it on is
     *   a view of it; turning it off is not.
     * - `custom` — opens a panel or a list on every click, while `active` says
     *   whether a filter happens to be set. Reading `active` here would drop
     *   every re-open made after the first selection.
     *
     * Tagged `shortcut` so these stay separable from the main button row, whose
     * `sbtnview` carries no subtype.
     */
    private reportClick;
    private isShortcutActive;
    handleShortcutReset(interfaceId: string, shortcutId: string): void;
    private updateActivationOrder;
    updateActivationOrderFromState(interfaceId: string, shortcutId: string, wasActive: boolean, isActive: boolean): void;
    shouldShowShortcuts(interfaceId: string): boolean;
    getRegisteredProviders(): string[];
    isProviderRegistered(providerId: string): boolean;
    clear(): void;
}
//# sourceMappingURL=ShortcutRegistry.d.ts.map