/**
 * @packageDocumentation
 * @module api
 */
import { HttpClient } from '@angular/common/http';
import { Observable } from 'rxjs';
import { KubernetesResource, KubernetesResourceList, Status } from '../types/k8s';
import { K8sApiResourceService } from './k8s-api-resource.service';
import { PageVisibilityService } from './page-visibility.service';
import { ErebusResourceDeleteParams, ErebusResourceListParams, ErebusResourceParams, ErebusResourcePatchParams, ErebusResourceWriteParams, GlobalResourceDeleteParams, GlobalResourceListParams, GlobalResourceParams, GlobalResourcePatchParams, GlobalResourceWriteParams, WatchAPIResponse, WatchErebusResourceListParams, WatchErebusResourceParams, WatchGlobalResourceListParams, WatchGlobalResourceParams } from './types';
export declare const TIMEOUT_SECONDS = 59;
export declare class K8sApiService<R extends string = string> {
    private readonly http;
    private readonly k8sApiResource;
    private readonly pageVisibility;
    private readonly globalNamespace;
    constructor(http: HttpClient, k8sApiResource: K8sApiResourceService, pageVisibility: PageVisibilityService, globalNamespace: string);
    /**
     * 获取 Global 集群单个资源对象
     */
    getGlobalResource<T extends KubernetesResource>(params: GlobalResourceParams<R>): Observable<T>;
    /**
     * 监听 Global 集群单个资源对象
     */
    watchGlobalResource<T extends KubernetesResource>(params: WatchGlobalResourceParams<R>): Observable<T>;
    /**
     * 监听 Global 集群资源列表变化
     */
    watchGlobalResourceChange<T extends KubernetesResource>(seedVersion: string, params: WatchGlobalResourceListParams<R>): Observable<WatchAPIResponse<T>>;
    /**
     * 获取 Global 集群资源对象列表，包含分页信息
     */
    getGlobalResourceList<T extends KubernetesResource>(params: GlobalResourceListParams<R>): Observable<KubernetesResourceList<T>>;
    /**
     * 创建 Global 集群资源
     */
    postGlobalResource<T extends KubernetesResource>(params: GlobalResourceWriteParams<T, R>): Observable<T>;
    /**
     * 完整覆盖更新 Global 集群单个资源对象
     */
    putGlobalResource<T extends KubernetesResource>(params: GlobalResourceWriteParams<T, R>): Observable<T>;
    /**
     * 增量更新 Global 集群单个资源对象的部分属性
     */
    patchGlobalResource<T extends KubernetesResource>(params: GlobalResourcePatchParams<T, R>): Observable<T>;
    /**
     * 删除 Global 集群单个资源
     */
    deleteGlobalResource<S extends KubernetesResource = Status, T extends KubernetesResource = S extends Status ? KubernetesResource : S>(params: GlobalResourceDeleteParams<T, R>): Observable<S>;
    /**
     * 获取业务集群单个资源对象
     */
    getResource<T extends KubernetesResource>(params: ErebusResourceParams<R>): Observable<T>;
    /**
     * 监听业务集群单个资源对象
     */
    watchResource<T extends KubernetesResource>(params: WatchErebusResourceParams<R>): Observable<T>;
    /**
     * 监听资源列表变化
     */
    watchResourceChange<T extends KubernetesResource>(seedVersion: string, params: WatchErebusResourceListParams<R>): Observable<WatchAPIResponse<T>>;
    /**
     * 获取业务集群资源对象列表，包含分页信息
     */
    getResourceList<T extends KubernetesResource>(params: ErebusResourceListParams<R>): Observable<KubernetesResourceList<T>>;
    /**
     * 创建业务集群资源
     */
    postResource<T extends KubernetesResource>(params: ErebusResourceWriteParams<T, R>): Observable<T>;
    /**
     * 完整覆盖更新业务集群单个资源对象
     */
    putResource<T extends KubernetesResource>(params: ErebusResourceWriteParams<T, R>): Observable<T>;
    /**
     * 增量更新业务集群单个资源对象的部分属性
     */
    patchResource<T extends KubernetesResource>(params: ErebusResourcePatchParams<T, R>): Observable<T>;
    /**
     * 删除业务集群单个资源
     */
    deleteResource<S extends KubernetesResource = Status, T extends KubernetesResource = S extends Status ? KubernetesResource : S>(params: ErebusResourceDeleteParams<T, R>): Observable<S>;
    private _getDowngradePolling;
}
