import { AtLeast } from '@codiac.io/codiac-common/contracts';
import { RootMap } from '../../../apis/codiac-api/contracts';
import { CommandBaseExec } from '../../../command-base-exec';
import { InteractionModes } from '../../../uilogic/config-ui-utils';
interface NodeGroupAutoscaler {
    enterprise: string;
    clusterName: string;
    nodeGroup: string;
    nodeType: string;
    min?: number;
    max?: number;
    desired?: number;
}
export default class ClusterScalingUpdate extends CommandBaseExec<NodeGroupAutoscaler> {
    static hidden: boolean;
    static description: string;
    static flags: {
        help: import("@oclif/core/lib/interfaces").BooleanFlag<void>;
        enterprise: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
        cluster: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
        "node-group": import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
        min: import("@oclif/core/lib/interfaces").OptionFlag<number | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
        max: import("@oclif/core/lib/interfaces").OptionFlag<number | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
        desired: 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 args: {
        file: import("@oclif/core/lib/interfaces/parser").Arg<string | undefined, Record<string, unknown>>;
    };
    captureArgs(): Promise<[Partial<NodeGroupAutoscaler>, InteractionModes | undefined, boolean]>;
    buildCandidate_silently(partial: AtLeast<NodeGroupAutoscaler, "enterprise">, rootMap: RootMap): Promise<NodeGroupAutoscaler | undefined>;
    buildCandidate_interactively(partial: AtLeast<NodeGroupAutoscaler, "enterprise">, rootMap: RootMap, takeDefaults: boolean): Promise<NodeGroupAutoscaler | undefined>;
    buildCommandString(candidate: NodeGroupAutoscaler, cmd: string[]): string[];
    executeTask(candidate: NodeGroupAutoscaler): Promise<void>;
    private unblockAndSleep;
    /** Converts the node pool definition that's part of the now legacy ClusterDef contract into a NodePoolDef object. */
    private extractOriginalNodeGroup;
}
export {};
