import * as constants from '../core/constants.js';
import { BaseCommand, type Opts } from './base.js';
import { type CommandBuilder } from '../types/aliases.js';
import { type Optional, type SoloListrTask } from '../types/index.js';
import { type NamespaceName } from '../core/kube/resources/namespace/namespace_name.js';
import { type CommandFlag } from '../types/flag_types.js';
interface MirrorNodeDeployConfigClass {
    chartDirectory: string;
    clusterContext: string;
    namespace: NamespaceName;
    profileFile: string;
    profileName: string;
    valuesFile: string;
    chartPath: string;
    valuesArg: string;
    quiet: boolean;
    mirrorNodeVersion: string;
    getUnusedConfigs: () => string[];
    pinger: boolean;
    operatorId: string;
    operatorKey: string;
    useExternalDatabase: boolean;
    storageType: constants.StorageType;
    storageAccessKey: string;
    storageSecrets: string;
    storageEndpoint: string;
    storageBucket: string;
    storageBucketPrefix: string;
    externalDatabaseHost: Optional<string>;
    externalDatabaseOwnerUsername: Optional<string>;
    externalDatabaseOwnerPassword: Optional<string>;
    externalDatabaseReadonlyUsername: Optional<string>;
    externalDatabaseReadonlyPassword: Optional<string>;
}
export declare class MirrorNodeCommand extends BaseCommand {
    private readonly accountManager;
    private readonly profileManager;
    constructor(opts: Opts);
    static get DEPLOY_CONFIGS_NAME(): string;
    static get DEPLOY_FLAGS_LIST(): CommandFlag[];
    prepareValuesArg(config: MirrorNodeDeployConfigClass): Promise<string>;
    deploy(argv: any): Promise<boolean>;
    destroy(argv: any): Promise<boolean>;
    /** Return Yargs command definition for 'mirror-mirror-node' command */
    getCommandDefinition(): {
        command: string;
        desc: string;
        builder: CommandBuilder;
    };
    /** Removes the mirror node components from remote config. */
    removeMirrorNodeComponents(): SoloListrTask<any>;
    /** Adds the mirror node components to remote config. */
    addMirrorNodeComponents(): SoloListrTask<any>;
    close(): Promise<void>;
}
export {};
