import { SelectFilterOption } from '@alauda/ui';
import { HttpClient } from '@angular/common/http';
import { ChangeDetectorRef, EventEmitter, OnDestroy, OnInit, TemplateRef } from '@angular/core';
import { ReplaySubject } from 'rxjs';
import { K8sUtilService } from '../../../../core/public-api';
import { CommonLayoutContextService } from '../../../../page-scaffold';
import { ResourceListBase } from '../../base-list';
import { ResourceSelectContextService } from '../../context.service';
import { K8sApiService } from './../../../../api/public-api';
import { KubernetesResource } from './../../../../core';
import { ClusterResource, DisableFn, NamespaceDataItem, ProjectResource, SelectedNamespaceValue, ServiceMeshGroup } from './../../types';
import * as i0 from "@angular/core";
export declare class NamespaceListComponent extends ResourceListBase implements OnInit, OnDestroy {
    private readonly commonLayoutService;
    private readonly k8sService;
    private readonly http;
    actionTemplateRef: TemplateRef<any>;
    disableFn: DisableFn;
    value: SelectedNamespaceValue;
    displayServiceMesh: boolean;
    clusterChange: EventEmitter<string>;
    projectChange: EventEmitter<string>;
    projects: ProjectResource[];
    selectedProject: ProjectResource;
    selectedCluster: string;
    clusters: string[];
    projectsLoading: boolean;
    serviceMeshes: ServiceMeshGroup[];
    projectServiceMeshes: ServiceMeshGroup[];
    selectedServiceMesh: ServiceMeshGroup;
    type: string;
    displayedData: NamespaceDataItem[];
    namespaceClusterMap: Record<string, string>;
    adminMap: Record<string, string[]>;
    gridStateMap: Record<string, ReturnType<DisableFn>>;
    selectedUid: string;
    load$$: ReplaySubject<{
        project: ProjectResource;
        cluster: string;
    }>;
    serviceMeshes$: import("rxjs").Observable<ServiceMeshGroup[]>;
    clusters$: import("rxjs").Observable<ClusterResource[]>;
    getClusterDisplayName$: ((cluster: string) => import("rxjs").Observable<string>) & import("lodash").MemoizedFunction;
    checkClusterError$: ((cluster: string) => import("rxjs").Observable<boolean>) & import("lodash").MemoizedFunction;
    namespaces$: import("rxjs").Observable<KubernetesResource[]>;
    constructor(commonLayoutService: CommonLayoutContextService, k8sService: K8sApiService, http: HttpClient, contextService: ResourceSelectContextService, cdr: ChangeDetectorRef, k8sUtil: K8sUtilService);
    ngOnInit(): void;
    getSortedNamespace(rawData: NamespaceDataItem[], namespace?: string): NamespaceDataItem[];
    storeNamespaces(): void;
    projectFilterFn: (searchText: string, option: SelectFilterOption<ProjectResource>) => boolean;
    projectTrackFn: (project: ProjectResource) => string;
    serviceMeshTrackFn: (mesh: ServiceMeshGroup) => string;
    private initProject;
    selectServiceMesh(serviceMesh: ServiceMeshGroup): void;
    selectProject(project: ProjectResource, initial?: boolean): void;
    selectCluster(clusterName: string, initial?: boolean): void;
    private setSelectedNamespace;
    mapResource: (list: KubernetesResource[], { isMultiArch, clusters, }: {
        isMultiArch: boolean;
        clusters: ClusterResource[];
    }) => NamespaceDataItem[];
    private getClusterArch;
    private checkClusterError;
    static ɵfac: i0.ɵɵFactoryDeclaration<NamespaceListComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<NamespaceListComponent, "acl-namespace-list", never, { "actionTemplateRef": "actionTemplateRef"; "disableFn": "disableFn"; "value": "value"; "displayServiceMesh": "displayServiceMesh"; }, { "clusterChange": "clusterChange"; "projectChange": "projectChange"; }, never, ["*"], false>;
}
