import { BaseCommand } from './base.js';
import { type ArgvStruct } from '../types/aliases.js';
import { type CommandFlags } from '../types/flag-types.js';
import { type DefaultKindClientBuilder } from '../integration/kind/impl/default-kind-client-builder.js';
export declare class BackupRestoreCommand extends BaseCommand {
    protected readonly kindBuilder: DefaultKindClientBuilder;
    private readonly kubectlInstallationDirectory;
    constructor(kindBuilder: DefaultKindClientBuilder, kubectlInstallationDirectory: string);
    close(): Promise<void>;
    static BACKUP_FLAGS_LIST: CommandFlags;
    static RESTORE_CONFIG_FLAGS_LIST: CommandFlags;
    static RESTORE_CLUSTERS_FLAGS_LIST: CommandFlags;
    static RESTORE_NETWORK_FLAGS_LIST: CommandFlags;
    /**
     * Generic export function for Kubernetes resources from multiple clusters
     * @param outputDirectory - directory to export resources to
     * @param resourceType - type of resource ('configmaps' or 'secrets')
     * @returns total number of resources exported across all clusters
     */
    private exportResources;
    private waitForConsensusPods;
    /**
     * Export all configmaps from the cluster as YAML files
     * @param outputDirectory - directory to export configmaps to
     * @returns number of configmaps exported
     */
    private exportConfigMaps;
    /**
     * Export all secrets from the cluster as YAML files
     * @param outputDirectory - directory to export secrets to
     * @returns number of secrets exported
     */
    private exportSecrets;
    /**
     * Backup all component configurations
     */
    backup(argv: ArgvStruct): Promise<boolean>;
    /**
     * Generic import function for Kubernetes resources from multiple clusters
     * @param inputDirectory - directory to import resources from
     * @param resourceType - type of resource ('configmaps' or 'secrets')
     * @returns total number of resources imported across all clusters
     */
    private importResources;
    /**
     * Import all configmaps to the cluster from YAML files
     * @param inputDirectory - directory to import configmaps from
     * @returns number of configmaps imported
     */
    private importConfigMaps;
    /**
     * Import all secrets to the cluster from YAML files
     * @param inputDirectory - directory to import secrets from
     * @returns number of secrets imported
     */
    private importSecrets;
    /**
     * Restore logs and configs to consensus nodes
     * @param inputDirectory - directory containing logs
     * @returns Promise that resolves when restoration is complete
     */
    private restoreLogsAndConfigs;
    /**
     * Restore all component configurations
     * Command: solo config ops restore-config
     */
    restoreConfig(argv: ArgvStruct): Promise<boolean>;
    /**
     * Read the remote config from a local YAML file
     */
    private readRemoteConfigFile;
    /**
     * Parse the config data and instantiate RemoteConfig object
     */
    private parseRemoteConfig;
    private buildDeploymentTasks;
    /**
     * Build block node deployment tasks
     */
    private buildBlockNodeTasks;
    /**
     * Build mirror node deployment tasks
     */
    private buildMirrorNodeTasks;
    /**
     * Build relay node deployment tasks
     */
    private buildRelayNodeTasks;
    /**
     * Build explorer deployment tasks
     */
    private buildExplorerTasks;
    /**
     * Build scan backup directory task
     */
    private buildScanBackupDirectoryTask;
    /**
     * Build shared initialization task for restore commands
     */
    private buildInitializationTask;
    private extractEncryptedBackup;
    /**
     * Build create Kind clusters tasks
     */
    private buildKindNetworkTask;
    /**
     * Build individual cluster creation tasks
     */
    private buildIndividualClusterCreationTasks;
    /**
     * Build cluster initialization tasks
     */
    private buildClusterInitializationTasks;
    /**
     * Restore Kind clusters from backup directory structure
     * Command: solo config ops restore-clusters
     */
    restoreClusters(argv: ArgvStruct): Promise<boolean>;
    /**
     * Deploy network components to existing clusters from backup
     * Command: solo config ops restore-network
     */
    restoreNetwork(argv: ArgvStruct): Promise<boolean>;
}
