import { z } from 'zod'; import type { AssetSpec } from './types'; /** Validate brand token properties including colors, font, logo URL, business name, and voice */ export declare const BrandTokensSchema: z.ZodObject<{ primaryColor: z.ZodString; accentColor: z.ZodString; textColor: z.ZodString; fontFamily: z.ZodString; logoUrl: z.ZodOptional; businessName: z.ZodString; voice: z.ZodString; }, z.core.$strip>; /** Validate and parse email content objects with subject, optional preheader, and sections */ export declare const EmailContentSchema: z.ZodObject<{ subject: z.ZodString; preheader: z.ZodOptional; sections: z.ZodArray; headline: z.ZodString; subheadline: z.ZodOptional; imageUrl: z.ZodOptional; ctaLabel: z.ZodOptional; ctaUrl: z.ZodOptional; }, z.core.$strip>, z.ZodObject<{ type: z.ZodLiteral<"body">; text: z.ZodString; }, z.core.$strip>, z.ZodObject<{ type: z.ZodLiteral<"feature">; headline: z.ZodString; description: z.ZodString; imageUrl: z.ZodOptional; }, z.core.$strip>, z.ZodObject<{ type: z.ZodLiteral<"testimonial">; quote: z.ZodString; author: z.ZodString; role: z.ZodOptional; avatarUrl: z.ZodOptional; }, z.core.$strip>, z.ZodObject<{ type: z.ZodLiteral<"cta">; label: z.ZodString; url: z.ZodString; subtext: z.ZodOptional; }, z.core.$strip>, z.ZodObject<{ type: z.ZodLiteral<"divider">; }, z.core.$strip>], "type">>; }, z.core.$strip>; /** Validate image content with an array of one or more slides containing background details */ export declare const ImageContentSchema: z.ZodObject<{ slides: z.ZodArray; value: z.ZodString; }, z.core.$strip>, z.ZodObject<{ type: z.ZodLiteral<"gradient">; from: z.ZodString; to: z.ZodString; direction: z.ZodOptional; }, z.core.$strip>, z.ZodObject<{ type: z.ZodLiteral<"image">; url: z.ZodString; overlay: z.ZodOptional; overlayOpacity: z.ZodOptional; }, z.core.$strip>], "type">; layers: z.ZodArray; text: z.ZodString; fontSize: z.ZodOptional; fontWeight: z.ZodOptional>; color: z.ZodOptional; x: z.ZodNumber; y: z.ZodNumber; width: z.ZodOptional; align: z.ZodOptional>; }, z.core.$strip>, z.ZodObject<{ type: z.ZodLiteral<"image">; url: z.ZodString; x: z.ZodNumber; y: z.ZodNumber; width: z.ZodNumber; height: z.ZodNumber; opacity: z.ZodOptional; }, z.core.$strip>, z.ZodObject<{ type: z.ZodLiteral<"shape">; shape: z.ZodEnum<{ rect: "rect"; circle: "circle"; "rounded-rect": "rounded-rect"; }>; x: z.ZodNumber; y: z.ZodNumber; width: z.ZodNumber; height: z.ZodNumber; fill: z.ZodOptional; opacity: z.ZodOptional; }, z.core.$strip>, z.ZodObject<{ type: z.ZodLiteral<"logo">; x: z.ZodNumber; y: z.ZodNumber; width: z.ZodOptional; }, z.core.$strip>], "type">>; }, z.core.$strip>>; }, z.core.$strip>; /** Define the schema for validating video content including duration, scenes, audio, captions, and rendered URL */ export declare const VideoContentSchema: z.ZodObject<{ durationSeconds: z.ZodNumber; scenes: z.ZodArray; durationSeconds: z.ZodNumber; headline: z.ZodString; subtext: z.ZodOptional; animation: z.ZodOptional>; background: z.ZodOptional; value: z.ZodString; }, z.core.$strip>, z.ZodObject<{ type: z.ZodLiteral<"gradient">; from: z.ZodString; to: z.ZodString; direction: z.ZodOptional; }, z.core.$strip>, z.ZodObject<{ type: z.ZodLiteral<"image">; url: z.ZodString; overlay: z.ZodOptional; overlayOpacity: z.ZodOptional; }, z.core.$strip>], "type">>; }, z.core.$strip>, z.ZodObject<{ type: z.ZodLiteral<"image-reveal">; durationSeconds: z.ZodNumber; imageUrl: z.ZodString; caption: z.ZodOptional; }, z.core.$strip>, z.ZodObject<{ type: z.ZodLiteral<"slide">; durationSeconds: z.ZodNumber; slide: z.ZodObject<{ background: z.ZodDiscriminatedUnion<[z.ZodObject<{ type: z.ZodLiteral<"color">; value: z.ZodString; }, z.core.$strip>, z.ZodObject<{ type: z.ZodLiteral<"gradient">; from: z.ZodString; to: z.ZodString; direction: z.ZodOptional; }, z.core.$strip>, z.ZodObject<{ type: z.ZodLiteral<"image">; url: z.ZodString; overlay: z.ZodOptional; overlayOpacity: z.ZodOptional; }, z.core.$strip>], "type">; layers: z.ZodArray; text: z.ZodString; fontSize: z.ZodOptional; fontWeight: z.ZodOptional>; color: z.ZodOptional; x: z.ZodNumber; y: z.ZodNumber; width: z.ZodOptional; align: z.ZodOptional>; }, z.core.$strip>, z.ZodObject<{ type: z.ZodLiteral<"image">; url: z.ZodString; x: z.ZodNumber; y: z.ZodNumber; width: z.ZodNumber; height: z.ZodNumber; opacity: z.ZodOptional; }, z.core.$strip>, z.ZodObject<{ type: z.ZodLiteral<"shape">; shape: z.ZodEnum<{ rect: "rect"; circle: "circle"; "rounded-rect": "rounded-rect"; }>; x: z.ZodNumber; y: z.ZodNumber; width: z.ZodNumber; height: z.ZodNumber; fill: z.ZodOptional; opacity: z.ZodOptional; }, z.core.$strip>, z.ZodObject<{ type: z.ZodLiteral<"logo">; x: z.ZodNumber; y: z.ZodNumber; width: z.ZodOptional; }, z.core.$strip>], "type">>; }, z.core.$strip>; }, z.core.$strip>, z.ZodObject<{ type: z.ZodLiteral<"countdown">; durationSeconds: z.ZodNumber; from: z.ZodNumber; label: z.ZodOptional; }, z.core.$strip>], "type">>; audioUrl: z.ZodOptional; captions: z.ZodOptional>>; renderedUrl: z.ZodOptional; }, z.core.$strip>; /** Validate and parse copy content with headline, body, optional hashtags, platform, and character count */ export declare const CopyContentSchema: z.ZodObject<{ headline: z.ZodString; body: z.ZodString; hashtags: z.ZodOptional>; platform: z.ZodEnum<{ x: "x"; linkedin: "linkedin"; tiktok: "tiktok"; instagram: "instagram"; sms: "sms"; "email-subject": "email-subject"; }>; characterCount: z.ZodOptional; }, z.core.$strip>; /** Validate approval event data including asset, action, user, timestamp, and optional fields */ export declare const ApprovalEventSchema: z.ZodObject<{ assetId: z.ZodString; variantId: z.ZodOptional; action: z.ZodEnum<{ scheduled: "scheduled"; approved: "approved"; rejected: "rejected"; edited: "edited"; }>; editedFields: z.ZodOptional>; userId: z.ZodString; timestamp: z.ZodString; }, z.core.$strip>; /** Validate conversion metrics with nonnegative impressions, clicks, conversions, CTR, and CVR fields */ export declare const ConversionMetricsSchema: z.ZodObject<{ impressions: z.ZodNumber; clicks: z.ZodNumber; conversions: z.ZodNumber; ctr: z.ZodNumber; cvr: z.ZodNumber; }, z.core.$strip>; /** * Validates an unknown value as an AssetSpec, including format-specific * content validation. Throws ZodError on invalid input. */ export declare function parseAssetSpec(raw: unknown): AssetSpec; /** * Safe parse — returns null instead of throwing. */ export declare function safeParseAssetSpec(raw: unknown): AssetSpec | null;