import * as k8s from "@kubernetes/client-node";
import { KubernetesApplication, KubernetesResourceRequest, KubernetesSdm } from "./request";
/**
 * Create or patch role or cluster rolebinding.
 *
 * @param req Kubernetes application request
 * @return Kubernetes resource spec used to create/patch the resource
 */
export declare function upsertRoleBinding(req: KubernetesResourceRequest): Promise<k8s.V1RoleBinding | k8s.V1ClusterRoleBinding>;
/**
 * Create role binding spec for a Kubernetes application.  The
 * `req.rbac.roleBindingSpec`, if it is not false, is merged into the
 * spec created by this function using `lodash.merge(default,
 * req.rbac.roleBindingSpec)`.
 *
 * It is possible to override the role binding name using the
 * [[KubernetesApplication.roleBindingSpec]].  If you do this, make
 * sure you know what you are doing.
 *
 * @param req application request
 * @return role binding resource specification
 */
export declare function roleBindingTemplate(req: KubernetesApplication & KubernetesSdm): Promise<k8s.V1RoleBinding>;
/**
 * Create cluster role binding spec for a Kubernetes application.  The
 * `req.rbac.roleBindingSpec` is merged into the
 * spec created by this function using `lodash.merge(default,
 * req.rbac.roleBindingSpec)`.
 *
 * It is possible to override the cluster role binding name using the
 * [[KubernetesApplication.roleBindingSpec]].  If you do this, make
 * sure you know what you are doing.
 *
 * @param req application request
 * @return cluster role binding resource specification
 */
export declare function clusterRoleBindingTemplate(req: KubernetesApplication & KubernetesSdm): Promise<k8s.V1ClusterRoleBinding>;
//# sourceMappingURL=roleBinding.d.ts.map