import * as k8s from "@kubernetes/client-node";
import { KubernetesApplication, KubernetesResourceRequest, KubernetesSdm } from "./request";
/**
 * Create or patch service account.
 *
 * @param req Kuberenetes application request
 * @return Kubernetes resource spec used to create/patch the resource
 */
export declare function upsertServiceAccount(req: KubernetesResourceRequest): Promise<k8s.V1ServiceAccount>;
/**
 * Create service account spec for a Kubernetes application.  The
 * `req.rbac.serviceAccountSpec`, if it not false, is merged into the
 * spec created by this function using `lodash.merge(default,
 * req.rbac.serviceAccountSpec)`.
 *
 * It is possible to override the service account name using the
 * [[KubernetesApplication.serviceAccountSpec]].  If you do this, make
 * sure you know what you are doing and also override it in the
 * [[KubernetesApplication.roleBindingSpec]].
 *
 * @param req application request
 * @return service account resource specification
 */
export declare function serviceAccountTemplate(req: KubernetesApplication & KubernetesSdm): Promise<k8s.V1ServiceAccount>;
//# sourceMappingURL=serviceAccount.d.ts.map