import { HttpClient } from '@angular/common/http';
import { Subject } from 'rxjs';
import { K8sUtilService } from '../../core/services/public-api';
import { KubernetesResource, Project, ServiceMeshGroup } from './../../core/public-api';
import { ClusterDataItem, DataItemBase, NamespaceDataItem, ProjectDataItem } from './types';
import * as i0 from "@angular/core";
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 _cachedServiceMeshes;
    private _cachedClusters;
    private _cachedProjects;
    private _cachedProjectResources;
    private _cachedServiceMeshGroupResources;
    set cachedServiceMeshes(value: DataItemBase[]);
    get cachedServiceMeshes(): DataItemBase[];
    set cachedClusters(value: ClusterDataItem[]);
    get cachedClusters(): ClusterDataItem[];
    get cachedProjects(): ProjectDataItem[];
    set cachedProjects(value: ProjectDataItem[]);
    set cachedProjectResources(projects: Project[]);
    get cachedProjectResources(): Project[];
    set cachedServiceMeshGroupResources(meshes: ServiceMeshGroup[]);
    get cachedServiceMeshGroupResources(): ServiceMeshGroup[];
    private cachedNamespaces;
    constructor(http: HttpClient, k8sUtil: K8sUtilService);
    storeNamespaces(project: string, cluster: string, namespaces: NamespaceDataItem[]): void;
    getCachedNamespaces(project: string, cluster: string): NamespaceDataItem[];
    getUser(email: string): import("rxjs").Observable<User>;
    static ɵfac: i0.ɵɵFactoryDeclaration<ResourceSelectContextService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<ResourceSelectContextService>;
}
