import { ICommandDefinition } from "../ICommandDefinition";
import { IHelpGenerator } from "../../help/doc/IHelpGenerator";
import { Config } from "../../../../config";
import { IDaemonContext } from "../../../../imperative/src/doc/IDaemonContext";
/**
 * Parameters to create an instance of the Command Processor. Contains the command definition (for the command
 * being executed) and help, profiles, etc.
 * @export
 * @interface ICommandProcessorParms
 */
export interface ICommandProcessorParms {
    /**
     * The command definition node for the command being executed. The command definition is assumed to have a handler
     * (or handlers).
     * @type {ICommandDefinition}
     * @memberof ICommandProcessorParms
     */
    definition: ICommandDefinition;
    /**
     * The help generator for the command being executed.
     * @type {IHelpGenerator}
     * @memberof ICommandProcessorParms
     */
    helpGenerator: IHelpGenerator;
    /**
     * The root command name for the CLI - used in help generation, etc.
     * @type {string}
     * @memberof ICommandProcessorParms
     */
    rootCommandName: string;
    /**
     * The command line.
     * @type {string}
     * @memberof ICommandProcessorParms
     */
    commandLine: string;
    /**
     * Environmental variable name prefix used to construct configuration environmental variables.
     * @type {string}
     * @memberof ICommandProcessorParms
     */
    envVariablePrefix: string;
    /**
     * All ancestors (parents) of the command definition for the command being executed. Used in help generation.
     * @type {ICommandDefinition}
     * @memberof ICommandProcessorParms
     */
    fullDefinition?: ICommandDefinition;
    /**
     * The phrase used to indicate the user wants to enter the value of an argument in a hidden text prompt
     * @type {string}
     * @memberof ICommandProcessorParms
     */
    promptPhrase: string;
    /**
     * Config object used to load profiles from active config layers.
     * @type {Config}
     * @memberof ICommandProcessorParms
     */
    config?: Config;
    /**
     * The context object defined when in daemon mode.
     * @type {IDaemonContext}
     * @memberof ICommandProcessorParms
     */
    daemonContext?: IDaemonContext;
}
//# sourceMappingURL=ICommandProcessorParms.d.ts.map