import { type K8Factory } from '../../../integration/kube/k8-factory.js';
import { type NamespaceName } from '../../../types/namespace/namespace-name.js';
import { type LocalConfigRuntimeState } from '../../../business/runtime-state/config/local/local-config-runtime-state.js';
import { type BaseStateSchema } from '../../../data/schema/model/remote/state/base-state-schema.js';
import { RemoteConfigValidatorApi } from './api/remote-config-validator-api.js';
import { DeploymentStateSchema } from '../../../data/schema/model/remote/deployment-state-schema.js';
/**
 * Static class is used to validate that components in the remote config
 * are present in the kubernetes cluster, and throw errors if there is mismatch.
 */
export declare class RemoteConfigValidator implements RemoteConfigValidatorApi {
    private readonly k8Factory?;
    private readonly localConfig?;
    constructor(k8Factory?: K8Factory, localConfig?: LocalConfigRuntimeState);
    private static getRelayLabels;
    private static getHaProxyLabels;
    private static getMirrorNodeLabels;
    private static getEnvoyProxyLabels;
    private static getMirrorNodeExplorerLabels;
    private static getConsensusNodeLabels;
    private static consensusNodeSkipConditionCallback;
    private static getBlockNodeLabels;
    private static componentValidationsMapping;
    validateComponents(namespace: NamespaceName, skipConsensusNodes: boolean, state: Readonly<DeploymentStateSchema>): Promise<void>;
    private validateComponentGroup;
    /**
     * Generic handler that throws errors.
     *
     * @param displayName - name to display in error message
     * @param component - component which is not found in the cluster
     * @param error - original error for the kube client
     */
    private static buildValidationError;
    static buildValidationErrorMessage(displayName: string, component: BaseStateSchema): string;
}
