import React from 'react';
import type { Command, LazyCommand, Message } from './types/index.js';
declare class CommandRegistry {
    private commands;
    private lazyEntries;
    private lazyProxies;
    register(command: Command | Command[]): void;
    /**
     * Register one or more lazy command entries. The command module is not
     * loaded until the command is actually executed.
     */
    registerLazy(entry: LazyCommand | LazyCommand[]): void;
    private proxyForLazy;
    get(name: string): Command | undefined;
    getAll(): Command[];
    getCompletions(prefix: string): string[];
    execute(input: string, messages: Message[], metadata: {
        provider: string;
        model: string;
        tokens: number;
        getMessageTokens: (message: Message) => number;
        client?: import('./types/core.js').LLMClient | null;
        tune?: import('./types/config.js').TuneConfig;
        developmentMode?: import('./types/core.js').DevelopmentMode;
    }): Promise<void | string | React.ReactNode>;
}
export declare const commandRegistry: CommandRegistry;
export { CommandRegistry };
//# sourceMappingURL=commands.d.ts.map