import * as k8s from "@kubernetes/client-node";
import { KubernetesApplication, KubernetesResourceRequest, KubernetesSdm } from "./request";
/**
 * If `req.port` and `req.path` are truthy, create or patch an ingress
 * for a Kubernetes application.  Any provided `req.ingressSpec` is
 * merged using [[ingressTemplate]] before creating/patching.
 *
 * @param req Kuberenetes resource request
 * @return Kubernetes spec used to create/patch resource
 */
export declare function upsertIngress(req: KubernetesResourceRequest): Promise<k8s.NetworkingV1beta1Ingress | undefined>;
/**
 * Create the ingress for a deployment namespace.  If the
 * request has an `ingressSpec`, it is merged into the spec created
 * by this function using `lodash.merge(default, req.ingressSpec)`.
 *
 * It is possible to override the ingress name using the
 * [[KubernetesApplication.ingressSpec]].  If you do this, make sure
 * you know what you are doing.
 *
 * @param req Kubernestes application
 * @return ingress spec with single rule
 */
export declare function ingressTemplate(req: KubernetesApplication & KubernetesSdm): Promise<k8s.NetworkingV1beta1Ingress>;
//# sourceMappingURL=ingress.d.ts.map