import { ICommandResult } from "./ICommand";
import IContext from "./IContext";
export declare enum CommandScope {
    any = 1,
    project = 2,
    minecraft = 3,
    carto = 4,
    host = 5,
    debug = 10,
    debugProject = 11,
    debugMinecraft = 12,
    debugHost = 14
}
export default class CommandRegistry {
    private static _registry?;
    private _commandsByName;
    private _commandsByScope;
    static get main(): CommandRegistry;
    registerCommand(commandName: string, commandScope: CommandScope, command: (context: IContext, name: string, argumentCollection: string[]) => Promise<ICommandResult>): void;
    logHelp(): void;
    static isMinecraftBuiltInCommand(name: string): boolean;
    static isAddOnBlockedCommand(name: string): boolean;
    /**
     * Create an IToolCommandOutput from IContext for ToolCommand execution.
     */
    private createToolCommandOutput;
    /**
     * Create an IToolCommandContext from the app's IContext.
     */
    private createToolCommandContext;
    runCommand(context: IContext, commandText: string): Promise<ICommandResult | undefined>;
}
