/**
 * Command Registry
 *
 * Central registry for all commands. Provides a unified way to register,
 * discover, and execute commands across all platforms.
 */
import type { CommandDefinition, CommandCategory, CommandContext, CommandResult } from './types.js';
export declare class CommandRegistry {
    private commands;
    private aliases;
    private static instance;
    static getInstance(): CommandRegistry;
    /**
     * Register a command
     */
    register(command: CommandDefinition): void;
    /**
     * Unregister a command
     */
    unregister(commandId: string): void;
    /**
     * Get command by ID
     */
    get(commandId: string): CommandDefinition | undefined;
    /**
     * Find command by name or alias
     */
    findByName(name: string): CommandDefinition | undefined;
    /**
     * Check if a command exists (by name or alias)
     */
    has(name: string): boolean;
    /**
     * Get all registered commands
     */
    list(): CommandDefinition[];
    /**
     * Get commands by category
     */
    listByCategory(category: CommandCategory): CommandDefinition[];
    /**
     * Get commands available in a specific scope
     */
    listByScope(scope: 'private' | 'group'): CommandDefinition[];
    /**
     * Execute a command
     */
    execute(name: string, context: CommandContext, args?: string): Promise<CommandResult>;
    /**
     * Parse command from message text
     * Returns { command: string, args: string } or null if not a command
     */
    parseCommand(text: string): {
        command: string;
        args: string;
    } | null;
    /**
     * Clear all registered commands (mainly for testing)
     */
    clear(): void;
}
export declare const commandRegistry: CommandRegistry;
