import * as k8s from "@kubernetes/client-node";
import { KubernetesApplication, KubernetesResourceRequest, KubernetesSdm } from "./request";
/**
 * Create or update a deployment for a Kubernetes application.  Any
 * provided `req.deploymentSpec` is merged using
 * [[deploymentTemplate]] before creating/patching.
 *
 * @param req Kuberenetes application request
 * @return Kubernetes spec used to create/update resource
 */
export declare function upsertDeployment(req: KubernetesResourceRequest): Promise<k8s.V1Deployment>;
/**
 * Create deployment spec for a Kubernetes application.  If the
 * request has a `deploymentSpec`, it is merged into the default spec
 * created by this function using `lodash.merge(default, req.deploymentSpec)`.
 *
 * It is possible to override the deployment name using the
 * [[KubernetesApplication.deploymentSpec]].  If you do this, make
 * sure you know what you are doing.
 *
 * @param req Kubernetes application request
 * @return deployment resource specification
 */
export declare function deploymentTemplate(req: KubernetesApplication & KubernetesSdm): Promise<k8s.V1Deployment>;
//# sourceMappingURL=deployment.d.ts.map