import { Command } from '@oclif/core';
import { CommandBaseExec } from '../../../command-base-exec';
import { ClusterDef } from '../../../apis/codiac-api/contracts';
import { RootMap } from "../../../apis/codiac-api/contracts";
import { AtLeast } from '@codiac.io/codiac-common/contracts';
import { InteractionModes } from '../../../uilogic/config-ui-utils';
import { LogLevel } from '@codiac.io/codiac-common/IBetterLogger';
import * as types from '@codiac.io/codiac-ops-common';
type ClusterCreateRequest = ClusterDef & {
    enterprise: string;
};
export default class NocClusterCreate extends CommandBaseExec<ClusterCreateRequest> {
    static description: string;
    static aliases: string[];
    static args: {
        name: import("@oclif/core/lib/interfaces/parser").Arg<string | undefined, Record<string, unknown>>;
    };
    static flags: {
        help: import("@oclif/core/lib/interfaces").BooleanFlag<void>;
        provider: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
        providerSubscription: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
        resourceGroup: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
        location: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
        nodeQty: import("@oclif/core/lib/interfaces").OptionFlag<number, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
        k8sVersion: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
        subnet: import("@oclif/core/lib/interfaces").OptionFlag<string[] | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
        nodeSpec: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
        identityUserName: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
        identityUserId: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
        identityUserPassword: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
        nodesMin: import("@oclif/core/lib/interfaces").OptionFlag<number | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
        nodesMax: import("@oclif/core/lib/interfaces").OptionFlag<number | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
        silent: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
        echo: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
        "to-script": import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
        "take-defaults": import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
    };
    static examples: Command.Example[];
    private get uiCloudPvd();
    private _uiCloudPvd_backer;
    private get termUtils();
    private _termUtils_backer;
    private get localCommandRunner();
    private _localCommandRunner_backer;
    protected bootstrap(): void;
    stringToEnum<T extends {
        [key: string]: string;
    }>(enumObj: T, str: string | undefined): T[keyof T] | undefined;
    captureArgs(): Promise<[Partial<ClusterCreateRequest>, (InteractionModes | undefined), boolean]>;
    validatePartial(partial: ClusterCreateRequest, rootMap: RootMap): Promise<ClusterCreateRequest>;
    buildCandidate_silently(partial: AtLeast<ClusterCreateRequest, "enterprise">, rootMap: RootMap): Promise<ClusterCreateRequest | undefined>;
    buildCandidate_interactively(partial: AtLeast<ClusterCreateRequest, "enterprise">, rootMap: RootMap, takeDefaults: boolean): Promise<ClusterCreateRequest | undefined>;
    buildCommandString(candidate: ClusterCreateRequest, cmd: string[]): string[];
    executeTask(candidate: ClusterCreateRequest): Promise<void>;
    /** The identifier for the messaging handler
     * listening for local terminal command requests from the relay.  */
    private localTerminalCommandRunnerHandlerId;
    private setUpLocalCommandRunner;
    private runSomeWslCommands;
    /** Fires the given shell command into a child process
     * that inherits the parent's stdio (input, output, and error streams),
     * and resolves the promise on exit of that child process.
     * Returns the exit code from the child process.
     * @param env If this gets passed in, it replaces the current env.  That is, no env vars from the parent get carried into the child process.
     *            So if you use this param and you still want the current env vars, you'll have to add process.env to your dictionary (use a spread operator).
     * @param collectStdOut (optional, defaults to false) Prevents piping runtime data directly to stdout and instead renders it after completion. Some processes provide runtime status messages (eg: docker's percent completes, etc), which get obstructed by piping to stdout. If so, set this argument to true.
     * */
    spawnTerminalCommands(terminalCommand: string, terminalArgs: string[], cmd: string[], cwd: string, env?: types.dic, logLevel?: LogLevel, collectStdOut?: boolean): Promise<number>;
}
export {};
