import { ClientSDK, RequestOptions } from "../lib/sdks.js";
import { ActivateKmsSigningKeyRequest, ActivateKmsSigningKeyResponseBody } from "../models/activatekmssigningkeyop.js";
import { CreateKmsIssuerRequest, CreateKmsIssuerResponseBody } from "../models/createkmsissuerop.js";
import { CreateKmsIssuerPolicyRequest, CreateKmsIssuerPolicyResponseBody } from "../models/createkmsissuerpolicyop.js";
import { CreateKmsSigningKeyRequest, CreateKmsSigningKeyResponseBody } from "../models/createkmssigningkeyop.js";
import { DeleteKmsIssuerRequest } from "../models/deletekmsissuerop.js";
import { DeleteKmsIssuerPolicyRequest } from "../models/deletekmsissuerpolicyop.js";
import { GetKmsIssuerRequest, GetKmsIssuerResponseBody } from "../models/getkmsissuerop.js";
import { ListKmsIssuersRequest, ListKmsIssuersResponseBody } from "../models/listkmsissuersop.js";
import { RevokeKmsSigningKeyRequest, RevokeKmsSigningKeyResponseBody } from "../models/revokekmssigningkeyop.js";
import { SignKmsMessageRequest, SignKmsMessageResponseBody } from "../models/signkmsmessageop.js";
import { SignKmsTokenRequest, SignKmsTokenResponseBody } from "../models/signkmstokenop.js";
import { UpdateKmsIssuerRequest, UpdateKmsIssuerResponseBody } from "../models/updatekmsissuerop.js";
import { UpdateKmsIssuerPolicyRequest, UpdateKmsIssuerPolicyResponseBody } from "../models/updatekmsissuerpolicyop.js";
export declare class Kms extends ClientSDK {
    /**
     * List issuers
     *
     * @remarks
     * Retrieve the list of KMS issuers that belong to the authenticated team. The results are paginated.
     */
    listKmsIssuers(request: ListKmsIssuersRequest, options?: RequestOptions): Promise<ListKmsIssuersResponseBody>;
    /**
     * Create an issuer
     *
     * @remarks
     * Create a new KMS issuer for the authenticated team. An issuer owns the asymmetric signing keys that are used to sign tokens and messages.
     */
    createKmsIssuer(request: CreateKmsIssuerRequest, options?: RequestOptions): Promise<CreateKmsIssuerResponseBody>;
    /**
     * Sign a message
     *
     * @remarks
     * Sign a raw message with a KMS issuer's active signing key. Authenticate the request with a Vercel OIDC token in the `Authorization: Bearer` header; the issuer's policies decide which workloads are allowed to sign.
     */
    signKmsMessage(request: SignKmsMessageRequest, options?: RequestOptions): Promise<SignKmsMessageResponseBody>;
    /**
     * Sign a token
     *
     * @remarks
     * Sign a JWT with a KMS issuer's active signing key. Authenticate the request with a Vercel OIDC token in the `Authorization: Bearer` header; the issuer's policies decide which workloads are allowed to sign.
     */
    signKmsToken(request: SignKmsTokenRequest, options?: RequestOptions): Promise<SignKmsTokenResponseBody>;
    /**
     * Create a signing key
     *
     * @remarks
     * Create a new signing key for a KMS issuer. Depending on the activation mode, the key is activated automatically once its public key has propagated, or manually via the activate endpoint.
     */
    createKmsSigningKey(request: CreateKmsSigningKeyRequest, options?: RequestOptions): Promise<CreateKmsSigningKeyResponseBody>;
    /**
     * Activate a signing key
     *
     * @remarks
     * Activate a pending signing key so the issuer starts signing with it.
     */
    activateKmsSigningKey(request: ActivateKmsSigningKeyRequest, options?: RequestOptions): Promise<ActivateKmsSigningKeyResponseBody>;
    /**
     * Revoke a signing key
     *
     * @remarks
     * Immediately revoke a signing key that is already scheduled for revocation.
     */
    revokeKmsSigningKey(request: RevokeKmsSigningKeyRequest, options?: RequestOptions): Promise<RevokeKmsSigningKeyResponseBody>;
    /**
     * Get an issuer
     *
     * @remarks
     * Retrieve a single KMS issuer by its ID. Accepts either a team bearer token (existing path) or an OIDC token authorized by one of the issuer's policies (e.g. a connex-grant token). The OIDC path returns the issuer without policies, since a policy token only proves signing access, not management access.
     */
    getKmsIssuer(request: GetKmsIssuerRequest, options?: RequestOptions): Promise<GetKmsIssuerResponseBody>;
    /**
     * Update an issuer
     *
     * @remarks
     * Update a KMS issuer's name or claims schema.
     */
    updateKmsIssuer(request: UpdateKmsIssuerRequest, options?: RequestOptions): Promise<UpdateKmsIssuerResponseBody>;
    /**
     * Delete an issuer
     *
     * @remarks
     * Delete a KMS issuer and its signing keys.
     */
    deleteKmsIssuer(request: DeleteKmsIssuerRequest, options?: RequestOptions): Promise<void>;
    /**
     * Create an issuer policy
     *
     * @remarks
     * Attach a policy to a KMS issuer that grants a project's deployments permission to sign with it.
     */
    createKmsIssuerPolicy(request: CreateKmsIssuerPolicyRequest, options?: RequestOptions): Promise<CreateKmsIssuerPolicyResponseBody>;
    /**
     * Update an issuer policy
     *
     * @remarks
     * Update an existing KMS issuer policy's environments or token claims.
     */
    updateKmsIssuerPolicy(request: UpdateKmsIssuerPolicyRequest, options?: RequestOptions): Promise<UpdateKmsIssuerPolicyResponseBody>;
    /**
     * Delete an issuer policy
     *
     * @remarks
     * Remove a policy from a KMS issuer.
     */
    deleteKmsIssuerPolicy(request: DeleteKmsIssuerPolicyRequest, options?: RequestOptions): Promise<void>;
}
//# sourceMappingURL=kms.d.ts.map