import { KubernetesResource } from './../../types/public-api';
export declare type DataType = 'project' | 'namespace' | 'cluster';
export interface ProjectResource extends KubernetesResource {
    spec: {
        clusters: Array<{
            name: string;
            type: string;
        }>;
    };
    status: {
        phase: string;
    };
}
export interface ClusterResource extends KubernetesResource {
    status: {
        phase: string;
    };
    spec: {
        displayName: string;
        type: 'Baremetal' | 'Imported';
    };
}
export interface ClusterFederationResource extends KubernetesResource {
    spec: {
        check?: boolean;
        unjoinpolicy?: string;
        clusters: Array<{
            name: string;
            type: 'Host' | 'Member';
        }>;
    };
}
export declare type DisplayMode = 'row' | 'card';
export interface DisabledState {
    disabled: boolean;
    tooltip?: string;
}
export interface DataItemBase {
    name: string;
    displayName: string;
    timestamp: string;
    state?: DisabledState;
    __origin: KubernetesResource;
    cluster?: string;
    serviceMeshName?: string;
}
export interface NamespaceDataItem extends DataItemBase {
    admin: string;
    serviceMeshClusters?: string[];
    serviceMeshIstioVersion?: string;
}
export interface ProjectDataItem extends DataItemBase {
    status: 'normal' | 'abnormal';
    admin: string;
}
export interface ClusterDataItem extends DataItemBase {
    isHA: boolean;
    isFederal: boolean;
    fedTooltip?: string;
    nodeNumber: number;
    status: 'normal' | 'abnormal';
}
export declare enum ConfigurableField {
    Cluster = "cluster",
    Admin = "admin",
    Status = "status",
    ServiceMesh = "servicemesh",
    ServiceMeshClusters = "servicemeshClusters",
    Nodes = "nodes",
    Time = "time",
    Action = "action"
}
export declare type DisableFn = (resource: KubernetesResource) => {
    disabled: boolean;
    tooltip?: string;
};
export interface SelectedNamespaceValue {
    project: string;
    cluster: string;
    name: string;
    servicemesh?: string;
    istioVersion?: string;
}
export interface ResourceDataNumbers {
    project?: number;
    cluster?: number;
    namespace?: number;
}
export interface ServiceMeshGroup extends KubernetesResource {
    spec: {
        k8sVersion: string;
        istioVersion: string;
        primary: string;
        selector: {
            [key: string]: string;
        };
        clusters: string[];
    };
    status: {
        status: string;
        Message: string;
        clusterCount: number;
        latestUpdateTime: string;
        NonReadyClusterCount: number;
    };
}
