/**
 * Command Registry
 *
 * Manages available commands for the command palette
 */
import type { Tier } from '../../core/types/auth.js';
/**
 * Command definition
 */
export interface UICommand {
    id: string;
    shortcut?: string;
    name: string;
    description: string;
    category: 'server' | 'plugin' | 'workflow' | 'navigation' | 'general' | 'account' | 'dev' | 'debug';
    keywords?: string[];
    execute: () => void | Promise<void>;
    /** Minimum tier required to use this command (defaults to 'free') */
    requiredTier?: Tier;
}
/**
 * Command registry for managing available commands
 */
export declare class CommandRegistry {
    private commands;
    /**
     * Register a command
     */
    register(command: UICommand): void;
    /**
     * Register multiple commands
     */
    registerAll(commands: UICommand[]): void;
    /**
     * Get a command by ID
     */
    get(id: string): UICommand | undefined;
    /**
     * Get all registered commands
     */
    getAll(): UICommand[];
    /**
     * Search commands by query string
     * Matches against shortcut, name, description, and keywords
     */
    search(query: string): UICommand[];
    /**
     * Find a command by exact shortcut match
     */
    findByShortcut(shortcut: string): UICommand | undefined;
    /**
     * Get commands by category
     */
    getByCategory(category: UICommand['category']): UICommand[];
    /**
     * Clear all commands
     */
    clear(): void;
}
/**
 * Global command registry instance
 */
export declare const commandRegistry: CommandRegistry;
//# sourceMappingURL=registry.d.ts.map