import type { ReplCodeCommand, ReplCommand } from './repl-main';
import { scripts } from '../../common/scripts-info';
export declare const helpCommand: ReplCommand;
/**
 * All commands that should be available in the REPL.
 */
declare const _commands: {
    readonly help: ReplCommand;
    readonly quit: ReplCommand;
    readonly version: ReplCommand;
    readonly execute: ReplCommand;
    readonly parse: ReplCodeCommand;
    readonly normalize: ReplCodeCommand;
    readonly 'normalize*': ReplCodeCommand;
    readonly 'normalize#': ReplCodeCommand;
    readonly dataflow: ReplCodeCommand;
    readonly 'dataflow*': ReplCodeCommand;
    readonly dataflowsimple: ReplCodeCommand;
    readonly 'dataflowsimple*': ReplCodeCommand;
    readonly dataflowascii: ReplCodeCommand;
    readonly dataflowsilent: ReplCodeCommand;
    readonly controlflow: ReplCodeCommand;
    readonly 'controlflow*': ReplCodeCommand;
    readonly controlflowbb: ReplCodeCommand;
    readonly 'controlflowbb*': ReplCodeCommand;
    readonly query: ReplCodeCommand;
    readonly 'query*': ReplCodeCommand;
};
export type ReplCommandNames = keyof typeof _commands | keyof typeof scripts;
/**
 * Retrieve all REPL commands (including those generated from master scripts)
 */
export declare function getReplCommands(): Record<string, ReplCommand | ReplCodeCommand>;
/**
 * The names of all commands including their aliases (but without the leading `:`)
 */
export declare function getCommandNames(): string[];
/**
 * Get the command for a given command name or alias.
 * @param command - The name of the command (without the leading `:`)
 */
export declare function getCommand(command: string): ReplCodeCommand | ReplCommand | undefined;
/**
 * Formats the given argument name as a command line option (with single or double dashes).
 */
export declare function asOptionName(argument: string): string;
/**
 * Retrieve the length of the longest command name (including star and brackets if applicable)
 */
export declare function longestCommandName(): number;
/**
 * Pad the given command string to the length of the longest command name plus two spaces.
 * @see {@link longestCommandName}
 */
export declare function padCmd<T>(string: T): string;
export {};
