import { z } from 'zod';
import { type GradialImage } from './image.js';
import { type GradialVideo } from './video.js';
/** Discriminated union of all compiler-resolved asset types. */
export type GradialAsset = GradialImage | GradialVideo;
export declare const GradialAssetSchema: z.ZodDiscriminatedUnion<[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>, 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>], "$type">;
export declare function isGradialImage(value: unknown): value is GradialImage;
export declare function isGradialVideo(value: unknown): value is GradialVideo;
export declare function isGradialAsset(value: unknown): value is GradialAsset;
/**
 * Renders a GradialVideo to an HTML string.
 * Uses poster.fallback.src for the poster attribute.
 * Includes <source> elements for format variants.
 */
export declare function renderVideoHTML(video: GradialVideo, attrs?: Record<string, string | number | boolean | undefined | null>): string;
/**
 * Renders any GradialAsset to an HTML string.
 * Delegates to renderImageHTML or renderVideoHTML based on $type.
 */
export declare function renderAssetHTML(asset: GradialAsset, attrs?: Record<string, string | number | boolean | undefined | null>): string;
