import { Config } from './Config';
import { DeploymentParam } from './DeploymentParam';
import * as k8s from '@kubernetes/client-node';
import { OpResult } from 'mslib';
import { PVCParam } from './PVCParam';
import { ServiceParam } from './ServiceParam';
/**
 * K8S操作API
 */
export declare class ApiClient {
    private config;
    private appApi;
    private coreApi;
    readonly id: string;
    readonly name: string;
    constructor(config: Config);
    private makeApiClient;
    /**
    * 获取Deplyment
    * @param namespace 命名空间
    * @param name deplyment名称
    */
    getDeplyment(namespaceName: string, name: string): Promise<OpResult<k8s.V1Deployment>>;
    /**
     * 创建一个新的部署
     * @param namespace
     * @param params
     */
    createDeployment(namespace: string, params: DeploymentParam): Promise<OpResult<k8s.V1Deployment>>;
    /**
     * 删除部署
     * @param namespace
     * @param name 部署名称
     */
    deleteDeployment(namespace: string, name: string): Promise<OpResult<any>>;
    /**
     * 获取指定 POD
     * @param namespace
     */
    getPod(namespace: string, name: string): Promise<OpResult<k8s.V1Pod>>;
    /**
     * 获取POD 列表
     * @param namespace
     */
    getPodList(namespace: string): Promise<OpResult<k8s.V1PodList>>;
    /**
   * 创建一个新的POD
   * @param namespace
   * @param params
   */
    createPod(namespace: string, params: DeploymentParam): Promise<OpResult<k8s.V1Pod>>;
    /**
  * 创建一个新的POD
  * @param namespace
  * @param params
  */
    createPodAndPvc(namespace: string, params: DeploymentParam, pvc: PVCParam): Promise<OpResult<k8s.V1Pod>>;
    /**
     * 删除POD
     * @param namespace
     * @param name POD名称
     */
    deletePod(namespace: string, name: string): Promise<OpResult<k8s.V1Pod>>;
    /**
     * 获取指定 PVC
     * @param namespace
     */
    getPVC(namespace: string, name: string): Promise<OpResult<k8s.V1PersistentVolumeClaim>>;
    /**
       * 创建一个新的 PVC
       * @param namespace
       * @param params
       */
    createPVC(namespace: string, params: PVCParam): Promise<OpResult<k8s.V1PersistentVolumeClaim>>;
    /**
     * 删除PVC
     * @param namespace
     * @param name PVC名称
     */
    deletePVC(namespace: string, name: string): Promise<OpResult<k8s.V1PersistentVolumeClaim>>;
    /**
     * 创建服务
     * @param namespace
     * @param param
     */
    createService(namespace: string, param: ServiceParam): Promise<OpResult<k8s.V1Service>>;
    /**
     * 删除服务
     * @param namespace
     * @param name 服务名称
     */
    deleteService(namespace: string, name: string): Promise<OpResult<k8s.V1Service>>;
    /**
     * 获取服务信息
     * @param namespace
     * @param name 服务名称
     */
    getService(namespace: string, name: string): Promise<OpResult<k8s.V1Service>>;
    /**
   * 获取服务信息列表
   * @param namespace
   * @param name 服务名称
   */
    getServiceList(namespace: string, name: string): Promise<OpResult<k8s.V1ServiceList>>;
    /**
     * 阿里云SLB注解
     * @param param
     */
    private createAliyunSLBMetadataAnnotations;
    private createMetadata;
    private createV1PodSpec;
    private errorToOpResult;
    private sleep;
}
