import { Injector } from '@angular/core';
import { Observable } from 'rxjs';
import { K8sResourceDefinition, ResourceWriteParams } from '../api/types';
import { ANNOTATIONS, KubernetesResource, StringMap } from '../core/public-api';
import { K8sUtilService, LABELS } from '../core/services/k8s-util.service';
import * as i0 from "@angular/core";
export declare class K8sSharedUtilService<R extends string = string> extends K8sUtilService<R> {
    constructor(injector: Injector);
    /**
     * 更新 Annotation 或 Label
     */
    updatePart<T extends KubernetesResource>(params: ResourceWriteParams<R, T> & {
        readonlyKeys?: Array<string | RegExp>;
        part: typeof ANNOTATIONS | typeof LABELS;
        getResourceSpec?: (stringMap: StringMap) => Record<string, unknown>;
        dialogClass?: string;
    }): Observable<T>;
    updateDisplayName<T extends KubernetesResource>({ type, cluster, resource, definition, }: {
        definition?: K8sResourceDefinition;
        /**
         * @deprecated use `definition` instead
         */
        type?: R;
        cluster?: string;
        resource: T;
    }, validateMaxLength?: boolean): Observable<T>;
    updateDescription<T extends KubernetesResource>({ type, cluster, resource, definition, }: {
        /**
         * @deprecated use `definition` instead
         */
        type?: R;
        definition?: K8sResourceDefinition;
        cluster?: string;
        resource: T;
    }): Observable<T>;
    /**
     * 单项目绑定切换至多项目绑定时，兼容之前的 project name 形式
     * 老格式 cpaas.io/project: "ALL_ALL" 或者  project.cpaas.io/name: "ALL_ALL"
     * 新格式 project.cpaas.io/ALL_ALL: "true"
     * @param {(KubernetesResource | string[])} resource
     * @returns
     * @memberof K8sUtilService
     */
    getProjectNames(resource: KubernetesResource | string[]): string[];
    getProjectLabels(projects: string[], value?: string): StringMap;
    static ɵfac: i0.ɵɵFactoryDeclaration<K8sSharedUtilService<any>, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<K8sSharedUtilService<any>>;
}
