import type { AnyAction, Dispatch, PayloadAction, ThunkDispatch } from '@reduxjs/toolkit';
import type { Cluster, Host } from '@openshift-assisted/types/assisted-installer-service';
import type { AssistedInstallerPermissionTypesListType } from '../../../../common/features/featureGate';
import { ResourceUIState } from '../../../../common/types/resource-ui-state';
export type FetchErrorType = {
    code: string | number;
    message: string;
};
type CurrentClusterStateSlice = {
    data?: Cluster;
    uiState: ResourceUIState;
    isReloadScheduled: number;
    permissions: AssistedInstallerPermissionTypesListType;
    errorDetail?: FetchErrorType;
};
export type ClusterDispatch = ThunkDispatch<CurrentClusterStateSlice, undefined, AnyAction> & Dispatch;
export declare const fetchClusterAsync: import("@reduxjs/toolkit").AsyncThunk<void | Cluster, string, {
    rejectValue: FetchErrorType;
    state?: unknown;
    dispatch?: Dispatch | undefined;
    extra?: unknown;
    serializedErrorType?: unknown;
    pendingMeta?: unknown;
    fulfilledMeta?: unknown;
    rejectedMeta?: unknown;
}>;
export declare const currentClusterSlice: import("@reduxjs/toolkit").Slice<CurrentClusterStateSlice, {
    updateClusterBase: (state: import("immer/dist/internal").WritableDraft<CurrentClusterStateSlice>, action: PayloadAction<Cluster>) => {
        data: {
            hosts: import("immer/dist/internal").WritableDraft<Host>[];
            kind: "Cluster" | "AddHostsCluster" | "DisconnectedCluster";
            highAvailabilityMode?: "Full" | "None";
            id: string;
            href: string;
            name?: string;
            userName?: string;
            orgId?: string;
            emailDomain?: string;
            openshiftVersion?: string;
            ocpReleaseImage?: string;
            openshiftClusterId?: string;
            imageInfo: import("@openshift-assisted/types/assisted-installer-service").ImageInfo;
            platform?: import("@openshift-assisted/types/assisted-installer-service").Platform;
            baseDnsDomain?: string;
            clusterNetworkCidr?: string;
            clusterNetworkHostPrefix?: number;
            serviceNetworkCidr?: string;
            apiVips?: import("@openshift-assisted/types/assisted-installer-service").ApiVip[];
            apiVipDnsName?: string;
            machineNetworkCidr?: string;
            ingressVips?: import("@openshift-assisted/types/assisted-installer-service").IngressVip[];
            sshPublicKey?: string;
            httpProxy?: string;
            httpsProxy?: string;
            noProxy?: string;
            status: "insufficient" | "ready" | "error" | "preparing-for-installation" | "pending-for-input" | "installing" | "finalizing" | "installed" | "adding-hosts" | "cancelled" | "installing-pending-user-action" | "unmonitored";
            statusInfo: string;
            statusUpdatedAt?: string;
            progress?: import("@openshift-assisted/types/assisted-installer-service").ClusterProgressInfo;
            diskEncryption?: import("@openshift-assisted/types/assisted-installer-service").DiskEncryption;
            readyHostCount?: number;
            enabledHostCount?: number;
            totalHostCount?: number;
            schedulableMasters?: boolean;
            schedulableMastersForcedTrue?: boolean;
            updatedAt?: string;
            createdAt?: string;
            installStartedAt?: string;
            installCompletedAt?: string;
            hostNetworks?: import("@openshift-assisted/types/assisted-installer-service").HostNetwork[];
            pullSecretSet?: boolean;
            vipDhcpAllocation?: boolean;
            validationsInfo?: string;
            logsInfo?: import("@openshift-assisted/types/assisted-installer-service").LogsState;
            installConfigOverrides?: string;
            controllerLogsCollectedAt?: string;
            controllerLogsStartedAt?: string;
            connectivityMajorityGroups?: string;
            ipCollisions?: string;
            ignoredHostValidations?: string;
            ignoredClusterValidations?: string;
            deletedAt?: unknown;
            userManagedNetworking?: boolean;
            additionalNtpSource?: string;
            monitoredOperators?: import("@openshift-assisted/types/assisted-installer-service").MonitoredOperator[];
            amsSubscriptionId?: string;
            hyperthreading?: "none" | "masters" | "arbiters" | "workers" | "masters,arbiters" | "masters,workers" | "arbiters,workers" | "masters,arbiters,workers" | "all";
            featureUsage?: string;
            networkType?: "OpenShiftSDN" | "OVNKubernetes" | "CiscoACI" | "Cilium" | "Calico" | "None";
            clusterNetworks?: import("@openshift-assisted/types/assisted-installer-service").ClusterNetwork[];
            serviceNetworks?: import("@openshift-assisted/types/assisted-installer-service").ServiceNetwork[];
            machineNetworks?: import("@openshift-assisted/types/assisted-installer-service").MachineNetwork[];
            cpuArchitecture?: "x86_64" | "aarch64" | "arm64" | "ppc64le" | "s390x" | "multi";
            ignitionEndpoint?: import("@openshift-assisted/types/assisted-installer-service").IgnitionEndpoint;
            imported?: boolean;
            tags?: string;
            'last-installation-preparation'?: import("@openshift-assisted/types/assisted-installer-service").LastInstallationPreparation;
            orgSoftTimeoutsEnabled?: boolean;
            controlPlaneCount?: number;
            loadBalancer?: import("@openshift-assisted/types/assisted-installer-service").LoadBalancer;
        };
        uiState: ResourceUIState;
        isReloadScheduled: number;
        permissions: import("immer/dist/internal").WritableDraft<AssistedInstallerPermissionTypesListType>;
        errorDetail?: import("immer/dist/internal").WritableDraft<FetchErrorType> | undefined;
    };
    updateCluster: (state: import("immer/dist/internal").WritableDraft<CurrentClusterStateSlice>, action: PayloadAction<Cluster>) => {
        data: Cluster;
        uiState: ResourceUIState;
        isReloadScheduled: number;
        permissions: import("immer/dist/internal").WritableDraft<AssistedInstallerPermissionTypesListType>;
        errorDetail?: import("immer/dist/internal").WritableDraft<FetchErrorType> | undefined;
    };
    updateHost: (state: import("immer/dist/internal").WritableDraft<CurrentClusterStateSlice>, action: PayloadAction<Host>) => import("immer/dist/internal").WritableDraft<CurrentClusterStateSlice>;
    setServerUpdateError: (state: import("immer/dist/internal").WritableDraft<CurrentClusterStateSlice>) => {
        uiState: ResourceUIState.UPDATE_ERROR;
        data?: import("immer/dist/internal").WritableDraft<Cluster> | undefined;
        isReloadScheduled: number;
        permissions: import("immer/dist/internal").WritableDraft<AssistedInstallerPermissionTypesListType>;
        errorDetail?: import("immer/dist/internal").WritableDraft<FetchErrorType> | undefined;
    };
    cleanCluster: () => CurrentClusterStateSlice;
    forceReload: (state: import("immer/dist/internal").WritableDraft<CurrentClusterStateSlice>) => {
        isReloadScheduled: number;
        data?: import("immer/dist/internal").WritableDraft<Cluster> | undefined;
        uiState: ResourceUIState;
        permissions: import("immer/dist/internal").WritableDraft<AssistedInstallerPermissionTypesListType>;
        errorDetail?: import("immer/dist/internal").WritableDraft<FetchErrorType> | undefined;
    };
    cancelForceReload: (state: import("immer/dist/internal").WritableDraft<CurrentClusterStateSlice>) => {
        isReloadScheduled: number;
        data?: import("immer/dist/internal").WritableDraft<Cluster> | undefined;
        uiState: ResourceUIState;
        permissions: import("immer/dist/internal").WritableDraft<AssistedInstallerPermissionTypesListType>;
        errorDetail?: import("immer/dist/internal").WritableDraft<FetchErrorType> | undefined;
    };
    updateClusterPermissions: (state: import("immer/dist/internal").WritableDraft<CurrentClusterStateSlice>, action: PayloadAction<AssistedInstallerPermissionTypesListType>) => {
        permissions: AssistedInstallerPermissionTypesListType;
        data?: import("immer/dist/internal").WritableDraft<Cluster> | undefined;
        uiState: ResourceUIState;
        isReloadScheduled: number;
        errorDetail?: import("immer/dist/internal").WritableDraft<FetchErrorType> | undefined;
    };
}, "currentCluster">;
export declare const updateCluster: import("@reduxjs/toolkit").ActionCreatorWithPayload<Cluster, "currentCluster/updateCluster">, updateClusterBase: import("@reduxjs/toolkit").ActionCreatorWithPayload<Cluster, "currentCluster/updateClusterBase">, updateHost: import("@reduxjs/toolkit").ActionCreatorWithPayload<Host, "currentCluster/updateHost">, setServerUpdateError: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"currentCluster/setServerUpdateError">, cleanCluster: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"currentCluster/cleanCluster">, forceReload: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"currentCluster/forceReload">, cancelForceReload: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"currentCluster/cancelForceReload">, updateClusterPermissions: import("@reduxjs/toolkit").ActionCreatorWithPayload<AssistedInstallerPermissionTypesListType, "currentCluster/updateClusterPermissions">;
export declare const currentClusterReducer: import("redux").Reducer<CurrentClusterStateSlice>;
export {};
//# sourceMappingURL=slice.d.ts.map