import { CommandBaseExecTenant } from '../../../command-base-exec-tenant';
import { RootMap } from '../../../apis/codiac-api/contracts';
import { ClusterEnvoyConfigureMode, CodiacInClusterSettingsOverride } from '../../../apis/codiac-relay-nats';
export type IClusterAgentConfigureRequest = {
    cluster: string;
    mode: ClusterEnvoyConfigureMode;
    settings?: CodiacInClusterSettingsOverride;
};
export default class ClusterAgentConfigure extends CommandBaseExecTenant<IClusterAgentConfigureRequest> {
    static description: string;
    static aliases: string[];
    static examples: {
        description: string;
        command: string;
    }[];
    static flags: {
        mode: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
        settings: import("@oclif/core/lib/interfaces").OptionFlag<string | 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: {
        cluster: import("@oclif/core/lib/interfaces/parser").Arg<string | undefined, Record<string, unknown>>;
    };
    protected adminOnly: boolean;
    captureArgs(): Promise<[Partial<IClusterAgentConfigureRequest>, boolean]>;
    buildCandidate_silently(partial: Partial<IClusterAgentConfigureRequest>, rootMap: RootMap): Promise<IClusterAgentConfigureRequest | undefined>;
    buildCandidate_interactively(partial: Partial<IClusterAgentConfigureRequest>, takeDefaults: boolean, rootMap: RootMap): Promise<IClusterAgentConfigureRequest | undefined>;
    buildCommandString(candidate: IClusterAgentConfigureRequest, cmd: string[]): string[];
    executeTask(candidate: IClusterAgentConfigureRequest): Promise<void>;
    /** Prompts the user to select a single setting from the known schema and enter its value.
     *  Reads the current agent config from the cluster to show existing values alongside each option.
     *  Fails gracefully if the config read is unavailable — prompting continues without current values. */
    private promptForSettings;
    private setMode;
    /** Reads the current agent config for the given cluster and returns it as a flattened dot-path dictionary.
     *  Fails gracefully — returns an empty object if the read is unavailable. */
    private fetchAgentConfig;
    /** Parses a JSON or YAML string into a settings override object.  Tries JSON first; falls back to YAML.  Throws if neither parses successfully. */
    private parseSettingsString;
    /** Recursively flattens a nested object into a dot-path keyed dictionary.
     *  Arrays are omitted — only scalar leaf values are included. */
    private flattenObject;
}
