import * as z from "zod/v3";
import { ApiKeyStatus } from "./apikeystatus.js";
import { PermissionMode } from "./permissionmode.js";
import { ProjectScope, ProjectScope$Outbound } from "./projectscope.js";
export type UpdateApiKeyRequest = {
    /**
     * New name. Omit to keep current.
     */
    name?: string | undefined;
    status?: ApiKeyStatus | undefined;
    permissionMode?: PermissionMode | undefined;
    /**
     * Replacement access map. Required when changing to
     *
     * @remarks
     *  `PERMISSION_MODE_RESTRICTED`; ignored otherwise. Provide an empty
     *  map to clear. See `ApiKey.access` for the full catalog of valid
     *  keys (Domain.id) and AccessLevel string values, or fetch the
     *  live catalog via the capability catalog endpoint.
     */
    access?: {
        [k: string]: number;
    } | undefined;
    /**
     * New project scope. Omit to keep current.
     */
    projectScope?: ProjectScope | undefined;
    /**
     * New expiration. Omit to keep current. Set `clear_expires_at = true`
     *
     * @remarks
     *  to remove an existing expiration (a zero Timestamp here would still
     *  mean "no change" because of optional semantics).
     */
    expiresAt?: Date | undefined;
    /**
     * Force-clear the expiration. Mutually exclusive with `expires_at`.
     */
    clearExpiresAt?: boolean | undefined;
};
/** @internal */
export type UpdateApiKeyRequest$Outbound = {
    name?: string | undefined;
    status?: string | undefined;
    permission_mode?: string | undefined;
    access?: {
        [k: string]: number;
    } | undefined;
    project_scope?: ProjectScope$Outbound | undefined;
    expires_at?: string | undefined;
    clear_expires_at?: boolean | undefined;
};
/** @internal */
export declare const UpdateApiKeyRequest$outboundSchema: z.ZodType<UpdateApiKeyRequest$Outbound, z.ZodTypeDef, UpdateApiKeyRequest>;
export declare function updateApiKeyRequestToJSON(updateApiKeyRequest: UpdateApiKeyRequest): string;
//# sourceMappingURL=updateapikeyrequest.d.ts.map