import { HttpClient } from '@angular/common/http';
import { Observable, Subject } from 'rxjs';
import { KubernetesResource, LabelSelectorRequirement } from './../../types/k8s';
import { K8sUtilService } from './../../utils/k8s-util.service';
import { ClusterDataItem, NamespaceDataItem, ProjectDataItem, ProjectResource } from './types';
export interface User extends KubernetesResource {
    spec: {
        account: string;
        connector_name: string;
        connector_type: string;
        email: string;
        groups: string[];
        is_admin: boolean;
        last_login_time: string;
        username: string;
        valid: boolean;
    };
}
export declare class ResourceSelectContextService {
    private readonly http;
    private readonly k8sUtil;
    userEmail: string;
    reload$$: Subject<void>;
    private _cachedClusters;
    private _cachedProjects;
    private _cachedProjectResources;
    set cachedClusters(value: ClusterDataItem[]);
    get cachedClusters(): ClusterDataItem[];
    get cachedProjects(): ProjectDataItem[];
    set cachedProjects(value: ProjectDataItem[]);
    set cachedProjectResources(projects: ProjectResource[]);
    get cachedProjectResources(): ProjectResource[];
    private cachedNamespaces;
    constructor(http: HttpClient, k8sUtil: K8sUtilService);
    storeNamespaces(project: string, cluster: string, namespaces: NamespaceDataItem[]): void;
    getCachedNamespaces(project: string, cluster: string): NamespaceDataItem[];
    getAdmins(type: 'namespace' | 'project', name: string, extraExpression?: LabelSelectorRequirement[]): Observable<string[]>;
    getUser(email: string): Observable<User>;
}
