import { HttpClient } from '@angular/common/http';
import { Observable } from 'rxjs';
import { TranslateKey } from '../translate/types';
import { KubernetesResource } from '../types/k8s';
import { ValueOf } from '../types/public-api';
import { ProjectResource } from './../business/resource-select/types';
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;
}
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";
};
export declare type ProductEntryName = ValueOf<typeof ProductEntryName>;
export declare class CommonLayoutContextService {
    private readonly httpClient;
    private readonly globalNamespace;
    constructor(httpClient: HttpClient, globalNamespace: string);
    getProjects(): Observable<ProjectResource[]>;
    getProducts(): Observable<ProductEntry[]>;
    getProjectClusters(_projectName: string): Observable<KubernetesResource[]>;
    getClusterNamespaces(_projectName: string, _clusterName: string): Observable<KubernetesResource[]>;
}
export {};
