/*
 * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
 * @generated-id: 70f4d95abf4e
 */
import * as z from "zod";
import { AccessControlItem$zodSchema, } from "./accesscontrolitem.js";
import { ContextFullResponse$zodSchema, } from "./contextfullresponse.js";
import { CoordinatesResponse$zodSchema, } from "./coordinatesresponse.js";
import { DeliveryTypeAll$zodSchema, } from "./deliverytypeall.js";
export const InfoModeration$zodSchema = z.object({
    kind: z.string().optional(),
    status: z.string().optional(),
    updated_at: z.iso.datetime({ offset: true }).optional(),
});
export const RelatedAsset$zodSchema = z.object({});
export const LastUpdated$zodSchema = z.object({
    access_control_updated_at: z.iso.datetime({ offset: true }).optional(),
    context_updated_at: z.iso.datetime({ offset: true }).optional(),
    metadata_updated_at: z.iso.datetime({ offset: true }).optional(),
    public_id_updated_at: z.iso.datetime({ offset: true }).optional(),
    tags_updated_at: z.iso.datetime({ offset: true }).optional(),
    updated_at: z.iso.datetime({ offset: true }).optional(),
});
export const Derived$zodSchema = z.object({
    bytes: z.int().optional(),
    format: z.string().optional(),
    id: z.string().optional(),
    secure_url: z.string().optional(),
    transformation: z.string().optional(),
    url: z.string().optional(),
});
export const Version$zodSchema = z.object({
    format: z.string().nullable().optional(),
    restorable: z.boolean().optional(),
    size: z.int().optional(),
    time: z.iso.datetime({ offset: true }).optional(),
    version: z.string().optional(),
    version_id: z.string().optional().describe("Hexadecimal version ID; length is a positive multiple of 32 (typically 32 or 64)."),
});
export const InfoInfo$zodSchema = z.object({}).describe("Additional asset information (visual search, recognized people, etc.)");
export const Derivative$zodSchema = z.object({
    id: z.string().optional().describe("The unique identifier of the derived resource."),
    secure_url: z.string().optional().describe("The secure URL for accessing the derived resource."),
    transformation: z.string().optional().describe("The transformation string that was applied."),
    transformation_signature: z.string().optional().describe("The unique signature of the transformation."),
});
export const Info$zodSchema = z.object({
    access_control: z.array(AccessControlItem$zodSchema).nullable().optional(),
    animated: z.boolean().nullable().optional().describe("Whether the asset is animated (e.g., GIF, animated WebP). Null for non-animated assets."),
    aspect_ratio: z.number().nullable().optional(),
    asset_folder: z.string().optional(),
    asset_id: z.string().optional().describe("A 32-character hexadecimal asset ID."),
    backup: z.boolean().optional(),
    backup_bytes: z.int().optional(),
    bytes: z.int().optional(),
    colors: z.array(z.array(z.any())).optional(),
    context: ContextFullResponse$zodSchema.nullable().optional().describe("Included if 'context=true' parameter is used."),
    coordinates: CoordinatesResponse$zodSchema.nullable().optional().describe("Face and custom coordinate data. Included if 'coordinates=true' parameter is used."),
    created_at: z.iso.datetime({ offset: true }).optional(),
    derivatives: z.array(z.lazy(() => Derivative$zodSchema)).nullable().optional()
        .describe("Included if 'derived=true' parameter is used. Null when no derivatives exist."),
    derived: z.array(z.lazy(() => Derived$zodSchema)).optional(),
    display_name: z.string().optional(),
    duration: z.number().nullable().optional().describe("Duration in seconds for video/audio assets. Null for images."),
    etag: z.string().optional(),
    faces: z.array(z.array(z.int())).nullable().optional().describe("Detected face rectangles. Included if 'faces=true' parameter is used."),
    filename: z.string().optional(),
    folder: z.string().optional(),
    format: z.string().optional(),
    grayscale: z.boolean().optional(),
    height: z.int().nullable().optional(),
    illustration_score: z.number().optional(),
    info: z.lazy(() => InfoInfo$zodSchema).optional().describe("Additional asset information (visual search, recognized people, etc.)"),
    last_updated: z.lazy(() => LastUpdated$zodSchema).nullable().optional(),
    metadata: z.record(z.string(), z.any()).optional(),
    moderation: z.array(z.lazy(() => InfoModeration$zodSchema)).optional()
        .describe("Included if 'moderations=true' parameter is used."),
    moderation_kind: z.string().optional().describe("The type of moderation applied to the asset."),
    moderation_status: z.string().optional().describe("The current status of the moderation process for the asset."),
    next_cursor: z.string().optional().describe("Cursor for paginating derived assets."),
    pixels: z.int().nullable().optional(),
    predominant: z.record(z.string(), z.array(z.array(z.any()))).optional(),
    public_id: z.string().optional(),
    related_assets: z.array(z.lazy(() => RelatedAsset$zodSchema)).nullable()
        .optional().describe("Related assets linked to this resource. Null when none linked."),
    resource_subtype: z.string().nullable().optional().describe("The subtype of the resource (e.g., for video). Null when not applicable."),
    resource_type: z.string().optional(),
    secure_url: z.string().optional(),
    semi_transparent: z.boolean().optional(),
    status: z.string().optional(),
    substatus: z.string().nullable().optional().describe("The substatus of the resource. Null when not set."),
    tags: z.array(z.string()).nullable().optional().describe("Included if 'tags=true' parameter is used."),
    type: DeliveryTypeAll$zodSchema.optional().describe("All supported delivery types."),
    uploaded_at: z.iso.datetime({ offset: true }).optional(),
    url: z.string().optional(),
    version: z.int().optional(),
    versions: z.array(z.lazy(() => Version$zodSchema)).optional(),
    width: z.int().nullable().optional(),
});
//# sourceMappingURL=info.js.map