import { RemoteConfigMetadata, type RemoteConfigMetadataStructure } from './metadata.js';
import { ComponentsDataWrapper, type RemoteConfigData } from './components_data_wrapper.js';
import { type Cluster, type Version, type Namespace, type ComponentsDataStructure } from './types.js';
import type * as k8s from '@kubernetes/client-node';
import type { ToObject, Validate } from '../../../types/index.js';
export interface RemoteConfigDataStructure {
    metadata: RemoteConfigMetadataStructure;
    version: Version;
    clusters: Record<Cluster, Namespace>;
    components: ComponentsDataStructure;
    commandHistory: string[];
    lastExecutedCommand: string;
}
export declare class RemoteConfigDataWrapper implements Validate, ToObject<RemoteConfigDataStructure> {
    private readonly _version;
    private _metadata;
    private _clusters;
    private _components;
    private _commandHistory;
    private _lastExecutedCommand;
    constructor(data: RemoteConfigData);
    addCommandToHistory(command: string): void;
    private get version();
    get metadata(): RemoteConfigMetadata;
    set metadata(metadata: RemoteConfigMetadata);
    get clusters(): Record<Cluster, Namespace>;
    set clusters(clusters: Record<Cluster, Namespace>);
    get components(): ComponentsDataWrapper;
    set components(components: ComponentsDataWrapper);
    get lastExecutedCommand(): string;
    private set lastExecutedCommand(value);
    get commandHistory(): string[];
    private set commandHistory(value);
    static compare(x: RemoteConfigDataWrapper, y: RemoteConfigDataWrapper): boolean;
    static fromConfigmap(configMap: k8s.V1ConfigMap): RemoteConfigDataWrapper;
    validate(): void;
    toObject(): RemoteConfigDataStructure;
}
