import { HttpClient } from '@angular/common/http';
import { Observable } from 'rxjs';
import { K8sApiService } from '../../../api/k8s-api.service';
import { KubernetesResource, ValueOf } from '../../../core';
import { TranslateKey } from '../../../translate/types';
import { ProjectResource } from './../../../business/resource-select/types';
import * as i0 from "@angular/core";
export interface Production extends KubernetesResource {
    kind: 'Production';
    spec: {
        group: 'production' | 'others';
        index: number;
        logoURL?: string;
        title: TranslateKey;
        version?: string;
        description?: string;
        openInBlank?: boolean;
        homepage: string;
    };
}
export interface NamespaceIdentity {
    cluster: string;
    name: string;
}
export interface LocaleDisplay {
    zh: string;
    en: string;
}
export interface ProductEntrySpec {
    logo?: string;
    displayName?: LocaleDisplay;
    description?: LocaleDisplay;
    catalog?: LocaleDisplay;
    entrypoint?: string;
    ssoEnabled?: boolean;
    packType?: 'Integrated' | 'BuildIn' | 'AdminPage';
    version?: string;
}
export interface ProductEntry extends KubernetesResource {
    spec: ProductEntrySpec;
    status?: {
        hiddenOnPortal?: boolean;
        hiddenOnMenu?: boolean;
        orderOnPortal?: number;
        orderOnMenu?: number;
    };
}
export declare const ProductEntryName: {
    readonly ACP: "acp";
    readonly DevOps: "devops";
    readonly ASM: "asm";
    readonly AML: "aml";
    readonly AAM: "e-aam";
    readonly SECURITY: "security";
    readonly PLATFORM: "platform";
    readonly PROJECT: "project";
    readonly DATA_SERVICES: "dataservices";
    readonly CEC: "cec";
};
export declare type ProductEntryName = ValueOf<typeof ProductEntryName>;
export declare class CommonLayoutContextService {
    private readonly k8sApi;
    private readonly httpClient;
    private readonly globalNamespace;
    constructor(k8sApi: K8sApiService, httpClient: HttpClient, globalNamespace: string);
    getProjects(): Observable<ProjectResource[]>;
    getProducts(): Observable<ProductEntry[]>;
    getProduct(name: string): Observable<ProductEntry>;
    getProjectClusters(_projectName: string): Observable<KubernetesResource[]>;
    getClusterNamespaces(_projectName: string, _clusterName: string): Observable<KubernetesResource[]>;
    static ɵfac: i0.ɵɵFactoryDeclaration<CommonLayoutContextService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<CommonLayoutContextService>;
}
