/**
 * Core Command Registry
 *
 * Stores command definitions (name, help text, handler signature).
 * UI-agnostic - no TUI library imports.
 */
import type { OpEvent } from './opEvent.js';
/**
 * Command execution context (lightweight, no UI objects)
 */
export interface CommandContext {
}
/**
 * UI actions that the UI layer interprets
 */
export declare enum UiAction {
    EXIT = "EXIT",
    CLEAR_FEED = "CLEAR_FEED",
    HOME = "HOME"
}
/**
 * Command execution result
 */
export interface CommandResult {
    events: OpEvent[];
    action?: UiAction;
    uiStateUpdate?: (prev: any) => any;
}
/**
 * Command handler type
 * Can be async for API calls
 */
export type CommandHandler = (ctx: CommandContext, args: string[]) => CommandResult | Promise<CommandResult>;
/**
 * Command definition
 */
export interface CommandDefinition {
    name: string;
    help: string;
    handler: CommandHandler;
}
/**
 * Command registry
 *
 * Stores all registered commands.
 * Commands are registered at module load time.
 */
declare class CommandRegistry {
    private commands;
    /**
     * Register a command
     */
    register(def: CommandDefinition): void;
    /**
     * Get a command by name
     */
    get(name: string): CommandDefinition | undefined;
    /**
     * Get all registered commands
     */
    getAll(): CommandDefinition[];
    /**
     * Check if a command exists
     */
    has(name: string): boolean;
}
/**
 * Global command registry instance
 */
export declare const commandRegistry: CommandRegistry;
export {};
//# sourceMappingURL=commandRegistry.d.ts.map