import { ChangeDetectorRef, EventEmitter, OnDestroy, OnInit, TemplateRef } from '@angular/core';
import { Observable, ReplaySubject } from 'rxjs';
import { ResourceListBase } from '../../base-list';
import { ResourceSelectContextService } from '../../context.service';
import { K8sApiService } from './../../../../api/public-api';
import { CommonLayoutContextService } from './../../../../common-layout/public-api';
import { KubernetesResource } from './../../../../types/public-api';
import { K8sUtilService } from './../../../../utils/public-api';
import { ConfigurableField, DisableFn, NamespaceDataItem, ProjectResource, SelectedNamespaceValue } from './../../types';
export declare class NamespaceListComponent extends ResourceListBase implements OnInit, OnDestroy {
    private readonly commonLayoutService;
    private readonly k8sService;
    actionTemplateRef: TemplateRef<any>;
    disableFn: DisableFn;
    gridDisableFn: DisableFn;
    value: SelectedNamespaceValue;
    clusterChange: EventEmitter<string>;
    projectChange: EventEmitter<string>;
    projects: ProjectResource[];
    selectedProject: ProjectResource;
    selectedCluster: string;
    clusters: string[];
    projectsLoading: boolean;
    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;
    }>;
    namespaces$: Observable<KubernetesResource[]>;
    loadAdminMap$: Observable<ConfigurableField[]>;
    constructor(commonLayoutService: CommonLayoutContextService, k8sService: K8sApiService, contextService: ResourceSelectContextService, cdr: ChangeDetectorRef, k8sUtil: K8sUtilService);
    adminMap$: Observable<Record<string, string[]>>;
    ngOnInit(): void;
    getSortedNamespace(rawData: NamespaceDataItem[], namespace?: string): NamespaceDataItem[];
    storeNamespaces(): void;
    projectTrackFn: (project: ProjectResource) => string;
    private initProject;
    selectProject(project: ProjectResource, initial?: boolean): void;
    selectCluster(clusterName: string, initial?: boolean): void;
    private setSelectedNamespace;
    mapResource: (list: KubernetesResource[]) => NamespaceDataItem[];
}
