import * as k8s from "@kubernetes/client-node";
import { KubernetesApplication, KubernetesResourceRequest, KubernetesSdm } from "./request";
/**
 * Create application secrets if they do not exist.  If a secret in
 * `req.secrets` exists, the secret is patched.  The provided secrets
 * are merged through [[secretTemplate]] before creating/patching.  If
 * `req.secrets` is false or any empty array, no secrets are modified.
 *
 * @param req Kuberenetes application request
 * @return Array of secret specs created/patched, which array may be empty
 */
export declare function upsertSecrets(req: KubernetesResourceRequest): Promise<k8s.V1Secret[]>;
/**
 * Add labels to a secret so we can delete it later.
 *
 * @param secret the unlabeled secret
 * @return the provided secret with appropriate labels
 */
export declare function secretTemplate(req: KubernetesApplication & KubernetesSdm, secret: k8s.V1Secret): Promise<k8s.V1Secret>;
/**
 * Create encoded opaque secret object from key/value pairs.
 *
 * @param secrets Key/value pairs of secrets, the values will be base64 encoded in the returned secret
 * @return Kubernetes secret object
 */
export declare function encodeSecret(name: string, data: {
    [key: string]: string;
}): k8s.V1Secret;
/**
 * Return a copy of the provided secret with its data values
 * encrypted.  The provided secret should have its data values base64
 * encoded.  The provided secret is not modified.
 *
 * @param secret Kubernetes secret with base64 encoded data values
 * @return Kubernetes secret object with encrypted data values
 */
export declare function encryptSecret(secret: k8s.V1Secret, key: string): Promise<k8s.V1Secret>;
/**
 * Return a copy of the provided secret with its data valued
 * decrypted.  The provided secret is not modified.
 *
 * @param secret Kubernetes secret with encrypted data values
 * @return Kubernetes secret object with base64 encoded data values
 */
export declare function decryptSecret(secret: k8s.V1Secret, key: string): Promise<k8s.V1Secret>;
//# sourceMappingURL=secret.d.ts.map