import { z } from 'zod';
import { type GradialImage } from './image.js';
export interface VideoSource {
    src: string;
    type: string;
}
export interface GradialVideo {
    /** Discriminator — always 'gradial.video'. */
    $type: 'gradial.video';
    /** DAM asset identifier. */
    assetId: string;
    /** DAM version identifier. */
    versionId: string;
    /** Accessible description of the video content. */
    alt: string;
    /** Primary video URL (compiler-resolved). */
    src: string;
    /** Primary video MIME type (e.g. 'video/mp4'). */
    type: string;
    /** Intrinsic width in pixels. */
    width: number;
    /** Intrinsic height in pixels. */
    height: number;
    /**
     * Poster frame — a full GradialImage with responsive srcset.
     * The compiler extracts or generates this from the video asset.
     */
    poster?: GradialImage;
    /** Format variants (e.g. mp4 + webm). Maps to <video><source> elements. */
    sources?: VideoSource[];
    /** Duration in seconds (if known). */
    duration?: number;
}
export declare const VideoSourceSchema: z.ZodObject<{
    src: z.ZodString;
    type: z.ZodString;
}, z.core.$strip>;
export declare const GradialVideoSchema: z.ZodObject<{
    $type: z.ZodLiteral<"gradial.video">;
    assetId: z.ZodString;
    versionId: z.ZodString;
    alt: z.ZodString;
    src: z.ZodString;
    type: z.ZodString;
    width: z.ZodNumber;
    height: z.ZodNumber;
    poster: z.ZodOptional<z.ZodObject<{
        $type: z.ZodLiteral<"gradial.image">;
        assetId: z.ZodString;
        versionId: z.ZodString;
        alt: z.ZodString;
        fallback: z.ZodObject<{
            src: z.ZodString;
            width: z.ZodNumber;
            height: z.ZodNumber;
            type: z.ZodString;
        }, z.core.$strip>;
        sources: z.ZodDefault<z.ZodNullable<z.ZodArray<z.ZodObject<{
            media: z.ZodOptional<z.ZodString>;
            type: z.ZodString;
            srcset: z.ZodString;
            sizes: z.ZodOptional<z.ZodString>;
        }, z.core.$strip>>>>;
    }, z.core.$strip>>;
    sources: z.ZodOptional<z.ZodArray<z.ZodObject<{
        src: z.ZodString;
        type: z.ZodString;
    }, z.core.$strip>>>;
    duration: z.ZodOptional<z.ZodNumber>;
}, z.core.$strip>;
