import type { Cluster, ClusterValidationId, Host, HostValidationId } from '@openshift-assisted/types/assisted-installer-service';
import { ClusterWizardStepStatusDeterminationObject, ValidationGroup as ClusterValidationGroup, ValidationsInfo as ClusterValidationsInfo } from '../../../common/types/clusters';
import { ClusterWizardStepHostStatusDeterminationObject, Validation, ValidationGroup as HostValidationGroup, ValidationsInfo as HostValidationsInfo } from '../../../common/types/hosts';
export type WizardStepValidationMap = {
    cluster: {
        groups: ClusterValidationGroup[];
        validationIds: ClusterValidationId[];
    };
    host: {
        allowedStatuses: Host['status'][];
        groups: HostValidationGroup[];
        validationIds: HostValidationId[];
    };
    softValidationIds: (HostValidationId | ClusterValidationId)[];
    getPageURL?: (host: Host, validationId: string) => {
        url: string;
        name: string;
    } | undefined;
};
export type WizardStepsValidationMap<T extends string> = {
    [key in T]: WizardStepValidationMap;
};
export declare const findValidationFixStep: <ClusterWizardStepsType extends string>({ validationId, hostGroup, clusterGroup, }: {
    validationId: ClusterValidationId | HostValidationId;
    hostGroup?: HostValidationGroup;
    clusterGroup?: ClusterValidationGroup;
}, wizardStepsValidationsMap: WizardStepsValidationMap<ClusterWizardStepsType>) => ClusterWizardStepsType | undefined;
export declare const checkClusterValidations: (clusterValidationsInfo: ClusterValidationsInfo, requiredIds: ClusterValidationId[]) => boolean;
export declare const checkClusterValidationGroups: (clusterValidationsInfo: ClusterValidationsInfo, groups: ClusterValidationGroup[], softValidationIds: WizardStepValidationMap["softValidationIds"]) => boolean;
export declare const checkHostValidations: (hostValidationsInfo: HostValidationsInfo, requiredIds: HostValidationId[]) => boolean;
export declare const checkHostValidationGroups: (hostValidationsInfo: HostValidationsInfo, groups: HostValidationGroup[], softValidationIds: WizardStepValidationMap["softValidationIds"]) => boolean;
export declare const getWizardStepHostValidationsInfo: <ClusterWizardStepsType extends string>(validationsInfo: HostValidationsInfo, wizardStepId: ClusterWizardStepsType, wizardStepsValidationsMap: WizardStepsValidationMap<ClusterWizardStepsType>) => HostValidationsInfo;
export declare const getWizardStepHostStatus: <ClusterWizardStepsType extends string>(wizardStepId: ClusterWizardStepsType, wizardStepsValidationsMap: WizardStepsValidationMap<ClusterWizardStepsType>, host: ClusterWizardStepHostStatusDeterminationObject) => Host["status"];
export declare const getWizardStepClusterValidationsInfo: <ClusterWizardStepsType extends string>(validationsInfo: ClusterValidationsInfo, wizardStepId: ClusterWizardStepsType, wizardStepsValidationsMap: WizardStepsValidationMap<ClusterWizardStepsType>) => ClusterValidationsInfo;
export declare const getWizardStepClusterStatus: <ClusterWizardStepsType extends string>(wizardStepId: ClusterWizardStepsType, wizardStepsValidationsMap: WizardStepsValidationMap<ClusterWizardStepsType>, cluster: ClusterWizardStepStatusDeterminationObject, clusterHosts?: ClusterWizardStepHostStatusDeterminationObject[]) => Cluster["status"];
export declare const getAllClusterWizardSoftValidationIds: <ClusterWizardStepsType extends string>(wizardStepsValidationsMap: WizardStepsValidationMap<ClusterWizardStepsType>) => WizardStepValidationMap["softValidationIds"];
export declare const getFailingClusterWizardStepHostValidations: <ClusterWizardStepsType extends string>(wizardHostStepValidationsInfo: HostValidationsInfo) => Validation[];
export declare const areOnlySoftValidationsOfWizardStepFailing: <ClusterWizardStepsType extends string>(validationsInfo: HostValidationsInfo, wizardStepId: ClusterWizardStepsType, wizardStepsValidationsMap: WizardStepsValidationMap<ClusterWizardStepsType>) => boolean;
export declare const findValidationStep: <ClusterWizardStepsType extends string>(validationId: ClusterValidationId | HostValidationId, wizardStepsValidationsMap: WizardStepsValidationMap<ClusterWizardStepsType>, minimumStep: ClusterWizardStepsType) => ClusterWizardStepsType | undefined;
//# sourceMappingURL=validationsInfoUtils.d.ts.map