import * as z from "zod/v3";
import { ClosedEnum } from "../types/enums.js";
import { Result as SafeParseResult } from "../types/fp.js";
import { SDKValidationError } from "./sdkvalidationerror.js";
export declare const CreateKmsIssuerPolicyKind: {
    readonly ProjectGrant: "project-grant";
};
export type CreateKmsIssuerPolicyKind = ClosedEnum<typeof CreateKmsIssuerPolicyKind>;
export type CreateKmsIssuerPolicyRequestBody = {
    kind: CreateKmsIssuerPolicyKind;
    /**
     * The project ID for the project grant policy.
     */
    projectId: string;
    /**
     * The environments for the project grant policy. Each entry is a system environment (production, preview, development) or a custom environment ID (env_...).
     */
    environments: Array<string>;
    /**
     * The claims that KMS should include in signed JWTs for this policy.
     */
    tokenClaims?: {
        [k: string]: any;
    } | undefined;
};
export type CreateKmsIssuerPolicyRequest = {
    /**
     * The ID of the issuer.
     */
    issuerId: string;
    /**
     * The Team identifier to perform the request on behalf of.
     */
    teamId?: string | undefined;
    /**
     * The Team slug to perform the request on behalf of.
     */
    slug?: string | undefined;
    requestBody?: CreateKmsIssuerPolicyRequestBody | undefined;
};
export type CreateKmsIssuerPolicyResponseBody2 = {
    kind: "connex-grant";
    clientId: string;
    tokenClaims?: {
        [k: string]: any;
    } | undefined;
    createdAt: string;
    updatedAt: string;
};
export type CreateKmsIssuerPolicyResponseBody1 = {
    kind: "project-grant";
    teamId: string;
    projectId: string;
    /**
     * Environments whose OIDC tokens this grant authorizes. Each entry is either a system environment slug (`production`, `preview`, `development`) or a custom environment ID (prefixed `env_`). Custom environments are matched against the token's `custom_environment_id` claim (the stable ID); system environments against its `environment` claim.
     */
    environments: Array<string>;
    tokenClaims?: {
        [k: string]: any;
    } | undefined;
    createdAt: string;
    updatedAt: string;
};
export type CreateKmsIssuerPolicyResponseBody = CreateKmsIssuerPolicyResponseBody1 | CreateKmsIssuerPolicyResponseBody2;
/** @internal */
export declare const CreateKmsIssuerPolicyKind$outboundSchema: z.ZodNativeEnum<typeof CreateKmsIssuerPolicyKind>;
/** @internal */
export type CreateKmsIssuerPolicyRequestBody$Outbound = {
    kind: string;
    projectId: string;
    environments: Array<string>;
    tokenClaims?: {
        [k: string]: any;
    } | undefined;
};
/** @internal */
export declare const CreateKmsIssuerPolicyRequestBody$outboundSchema: z.ZodType<CreateKmsIssuerPolicyRequestBody$Outbound, z.ZodTypeDef, CreateKmsIssuerPolicyRequestBody>;
export declare function createKmsIssuerPolicyRequestBodyToJSON(createKmsIssuerPolicyRequestBody: CreateKmsIssuerPolicyRequestBody): string;
/** @internal */
export type CreateKmsIssuerPolicyRequest$Outbound = {
    issuerId: string;
    teamId?: string | undefined;
    slug?: string | undefined;
    RequestBody?: CreateKmsIssuerPolicyRequestBody$Outbound | undefined;
};
/** @internal */
export declare const CreateKmsIssuerPolicyRequest$outboundSchema: z.ZodType<CreateKmsIssuerPolicyRequest$Outbound, z.ZodTypeDef, CreateKmsIssuerPolicyRequest>;
export declare function createKmsIssuerPolicyRequestToJSON(createKmsIssuerPolicyRequest: CreateKmsIssuerPolicyRequest): string;
/** @internal */
export declare const CreateKmsIssuerPolicyResponseBody2$inboundSchema: z.ZodType<CreateKmsIssuerPolicyResponseBody2, z.ZodTypeDef, unknown>;
export declare function createKmsIssuerPolicyResponseBody2FromJSON(jsonString: string): SafeParseResult<CreateKmsIssuerPolicyResponseBody2, SDKValidationError>;
/** @internal */
export declare const CreateKmsIssuerPolicyResponseBody1$inboundSchema: z.ZodType<CreateKmsIssuerPolicyResponseBody1, z.ZodTypeDef, unknown>;
export declare function createKmsIssuerPolicyResponseBody1FromJSON(jsonString: string): SafeParseResult<CreateKmsIssuerPolicyResponseBody1, SDKValidationError>;
/** @internal */
export declare const CreateKmsIssuerPolicyResponseBody$inboundSchema: z.ZodType<CreateKmsIssuerPolicyResponseBody, z.ZodTypeDef, unknown>;
export declare function createKmsIssuerPolicyResponseBodyFromJSON(jsonString: string): SafeParseResult<CreateKmsIssuerPolicyResponseBody, SDKValidationError>;
//# sourceMappingURL=createkmsissuerpolicyop.d.ts.map