import { DialogService } from '@alauda/ui';
import { Observable } from 'rxjs';
import { KubernetesResource } from '../core/public-api';
import { TranslateService } from '../translate/public-api';
import { K8sApiService } from './k8s-api.service';
import { ApiDefinitionBaseParams, ApiTypeBaseParams } from './types';
import * as i0 from "@angular/core";
export declare class ResourceUpdateService<R extends string = string> {
    private readonly k8sApi;
    private readonly dialog;
    private readonly translate;
    constructor(k8sApi: K8sApiService, dialog: DialogService, translate: TranslateService);
    /**
     * ! 只应在完整更新资源时使用，部分更新时应该使用 patch
     */
    retryPutResource<T extends KubernetesResource>(params: {
        cluster: string;
        resource: T;
    } & (ApiDefinitionBaseParams | ApiTypeBaseParams<R>)): Observable<T>;
    /**
     * ! 只应在完整更新资源时使用，部分更新时应该使用 patch
     */
    retryPutGlobalResource<T extends KubernetesResource>(params: {
        resource: T;
        namespaced?: boolean;
    } & (ApiDefinitionBaseParams | ApiTypeBaseParams<R>)): Observable<T>;
    private retryUpdate;
    static ɵfac: i0.ɵɵFactoryDeclaration<ResourceUpdateService<any>, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<ResourceUpdateService<any>>;
}
