/** * Theme Validation * * Zod schemas for validating theme definitions. * * @since v1.57.0 */ import { z } from 'zod'; /** * Hex color schema */ export declare const HexColorSchema: z.ZodString; /** * Any color schema (hex or rgba) */ export declare const ColorSchema: z.ZodEffects; /** * Background colors schema */ export declare const BackgroundColorsSchema: z.ZodObject<{ primary: z.ZodString; secondary: z.ZodString; tertiary: z.ZodString; elevated: z.ZodString; overlay: z.ZodEffects; }, "strip", z.ZodTypeAny, { primary: string; secondary: string; tertiary: string; elevated: string; overlay: string; }, { primary: string; secondary: string; tertiary: string; elevated: string; overlay: string; }>; /** * Foreground colors schema */ export declare const ForegroundColorsSchema: z.ZodObject<{ primary: z.ZodString; secondary: z.ZodString; tertiary: z.ZodString; inverse: z.ZodString; }, "strip", z.ZodTypeAny, { primary: string; secondary: string; tertiary: string; inverse: string; }, { primary: string; secondary: string; tertiary: string; inverse: string; }>; /** * Accent colors schema */ export declare const AccentColorsSchema: z.ZodObject<{ primary: z.ZodString; secondary: z.ZodString; muted: z.ZodString; }, "strip", z.ZodTypeAny, { primary: string; secondary: string; muted: string; }, { primary: string; secondary: string; muted: string; }>; /** * Status colors schema */ export declare const StatusColorsSchema: z.ZodObject<{ success: z.ZodString; warning: z.ZodString; error: z.ZodString; info: z.ZodString; }, "strip", z.ZodTypeAny, { success: string; error: string; info: string; warning: string; }, { success: string; error: string; info: string; warning: string; }>; /** * Interactive colors schema */ export declare const InteractiveColorsSchema: z.ZodObject<{ default: z.ZodString; hover: z.ZodString; active: z.ZodString; disabled: z.ZodString; }, "strip", z.ZodTypeAny, { default: string; active: string; disabled: string; hover: string; }, { default: string; active: string; disabled: string; hover: string; }>; /** * Border colors schema */ export declare const BorderColorsSchema: z.ZodObject<{ default: z.ZodString; subtle: z.ZodString; strong: z.ZodString; }, "strip", z.ZodTypeAny, { default: string; subtle: string; strong: string; }, { default: string; subtle: string; strong: string; }>; /** * Semantic colors schema */ export declare const SemanticColorsSchema: z.ZodObject<{ bg: z.ZodObject<{ primary: z.ZodString; secondary: z.ZodString; tertiary: z.ZodString; elevated: z.ZodString; overlay: z.ZodEffects; }, "strip", z.ZodTypeAny, { primary: string; secondary: string; tertiary: string; elevated: string; overlay: string; }, { primary: string; secondary: string; tertiary: string; elevated: string; overlay: string; }>; fg: z.ZodObject<{ primary: z.ZodString; secondary: z.ZodString; tertiary: z.ZodString; inverse: z.ZodString; }, "strip", z.ZodTypeAny, { primary: string; secondary: string; tertiary: string; inverse: string; }, { primary: string; secondary: string; tertiary: string; inverse: string; }>; accent: z.ZodObject<{ primary: z.ZodString; secondary: z.ZodString; muted: z.ZodString; }, "strip", z.ZodTypeAny, { primary: string; secondary: string; muted: string; }, { primary: string; secondary: string; muted: string; }>; status: z.ZodObject<{ success: z.ZodString; warning: z.ZodString; error: z.ZodString; info: z.ZodString; }, "strip", z.ZodTypeAny, { success: string; error: string; info: string; warning: string; }, { success: string; error: string; info: string; warning: string; }>; interactive: z.ZodObject<{ default: z.ZodString; hover: z.ZodString; active: z.ZodString; disabled: z.ZodString; }, "strip", z.ZodTypeAny, { default: string; active: string; disabled: string; hover: string; }, { default: string; active: string; disabled: string; hover: string; }>; border: z.ZodObject<{ default: z.ZodString; subtle: z.ZodString; strong: z.ZodString; }, "strip", z.ZodTypeAny, { default: string; subtle: string; strong: string; }, { default: string; subtle: string; strong: string; }>; }, "strip", z.ZodTypeAny, { status: { success: string; error: string; info: string; warning: string; }; border: { default: string; subtle: string; strong: string; }; accent: { primary: string; secondary: string; muted: string; }; bg: { primary: string; secondary: string; tertiary: string; elevated: string; overlay: string; }; fg: { primary: string; secondary: string; tertiary: string; inverse: string; }; interactive: { default: string; active: string; disabled: string; hover: string; }; }, { status: { success: string; error: string; info: string; warning: string; }; border: { default: string; subtle: string; strong: string; }; accent: { primary: string; secondary: string; muted: string; }; bg: { primary: string; secondary: string; tertiary: string; elevated: string; overlay: string; }; fg: { primary: string; secondary: string; tertiary: string; inverse: string; }; interactive: { default: string; active: string; disabled: string; hover: string; }; }>; /** * Gradient definition schema */ export declare const GradientDefinitionSchema: z.ZodObject<{ type: z.ZodEnum<["linear", "radial"]>; stops: z.ZodArray; angle: z.ZodOptional; }, "strip", z.ZodTypeAny, { type: "linear" | "radial"; stops: string[]; angle?: number | undefined; }, { type: "linear" | "radial"; stops: string[]; angle?: number | undefined; }>; /** * Gradient set schema */ export declare const GradientSetSchema: z.ZodObject<{ primary: z.ZodOptional; stops: z.ZodArray; angle: z.ZodOptional; }, "strip", z.ZodTypeAny, { type: "linear" | "radial"; stops: string[]; angle?: number | undefined; }, { type: "linear" | "radial"; stops: string[]; angle?: number | undefined; }>>; secondary: z.ZodOptional; stops: z.ZodArray; angle: z.ZodOptional; }, "strip", z.ZodTypeAny, { type: "linear" | "radial"; stops: string[]; angle?: number | undefined; }, { type: "linear" | "radial"; stops: string[]; angle?: number | undefined; }>>; background: z.ZodOptional; stops: z.ZodArray; angle: z.ZodOptional; }, "strip", z.ZodTypeAny, { type: "linear" | "radial"; stops: string[]; angle?: number | undefined; }, { type: "linear" | "radial"; stops: string[]; angle?: number | undefined; }>>; }, "strip", z.ZodTypeAny, { primary?: { type: "linear" | "radial"; stops: string[]; angle?: number | undefined; } | undefined; secondary?: { type: "linear" | "radial"; stops: string[]; angle?: number | undefined; } | undefined; background?: { type: "linear" | "radial"; stops: string[]; angle?: number | undefined; } | undefined; }, { primary?: { type: "linear" | "radial"; stops: string[]; angle?: number | undefined; } | undefined; secondary?: { type: "linear" | "radial"; stops: string[]; angle?: number | undefined; } | undefined; background?: { type: "linear" | "radial"; stops: string[]; angle?: number | undefined; } | undefined; }>; /** * Animation set schema */ export declare const AnimationSetSchema: z.ZodObject<{ shimmer: z.ZodOptional; colorCycle: z.ZodOptional; speed: z.ZodOptional; }, "strip", z.ZodTypeAny, { shimmer?: boolean | undefined; speed?: number | undefined; colorCycle?: boolean | undefined; }, { shimmer?: boolean | undefined; speed?: number | undefined; colorCycle?: boolean | undefined; }>; /** * Tier schema */ export declare const TierSchema: z.ZodEnum<["free", "plus", "pro", "max"]>; /** * Theme type schema */ export declare const ThemeTypeSchema: z.ZodEnum<["dark", "light"]>; /** * Theme category schema */ export declare const ThemeCategorySchema: z.ZodEnum<["default", "designer", "accessibility", "seasonal", "community"]>; /** * Extended theme schema */ export declare const ExtendedThemeSchema: z.ZodObject<{ id: z.ZodString; name: z.ZodString; author: z.ZodString; minTier: z.ZodEnum<["free", "plus", "pro", "max"]>; type: z.ZodEnum<["dark", "light"]>; category: z.ZodEnum<["default", "designer", "accessibility", "seasonal", "community"]>; description: z.ZodOptional; colors: z.ZodObject<{ bg: z.ZodObject<{ primary: z.ZodString; secondary: z.ZodString; tertiary: z.ZodString; elevated: z.ZodString; overlay: z.ZodEffects; }, "strip", z.ZodTypeAny, { primary: string; secondary: string; tertiary: string; elevated: string; overlay: string; }, { primary: string; secondary: string; tertiary: string; elevated: string; overlay: string; }>; fg: z.ZodObject<{ primary: z.ZodString; secondary: z.ZodString; tertiary: z.ZodString; inverse: z.ZodString; }, "strip", z.ZodTypeAny, { primary: string; secondary: string; tertiary: string; inverse: string; }, { primary: string; secondary: string; tertiary: string; inverse: string; }>; accent: z.ZodObject<{ primary: z.ZodString; secondary: z.ZodString; muted: z.ZodString; }, "strip", z.ZodTypeAny, { primary: string; secondary: string; muted: string; }, { primary: string; secondary: string; muted: string; }>; status: z.ZodObject<{ success: z.ZodString; warning: z.ZodString; error: z.ZodString; info: z.ZodString; }, "strip", z.ZodTypeAny, { success: string; error: string; info: string; warning: string; }, { success: string; error: string; info: string; warning: string; }>; interactive: z.ZodObject<{ default: z.ZodString; hover: z.ZodString; active: z.ZodString; disabled: z.ZodString; }, "strip", z.ZodTypeAny, { default: string; active: string; disabled: string; hover: string; }, { default: string; active: string; disabled: string; hover: string; }>; border: z.ZodObject<{ default: z.ZodString; subtle: z.ZodString; strong: z.ZodString; }, "strip", z.ZodTypeAny, { default: string; subtle: string; strong: string; }, { default: string; subtle: string; strong: string; }>; }, "strip", z.ZodTypeAny, { status: { success: string; error: string; info: string; warning: string; }; border: { default: string; subtle: string; strong: string; }; accent: { primary: string; secondary: string; muted: string; }; bg: { primary: string; secondary: string; tertiary: string; elevated: string; overlay: string; }; fg: { primary: string; secondary: string; tertiary: string; inverse: string; }; interactive: { default: string; active: string; disabled: string; hover: string; }; }, { status: { success: string; error: string; info: string; warning: string; }; border: { default: string; subtle: string; strong: string; }; accent: { primary: string; secondary: string; muted: string; }; bg: { primary: string; secondary: string; tertiary: string; elevated: string; overlay: string; }; fg: { primary: string; secondary: string; tertiary: string; inverse: string; }; interactive: { default: string; active: string; disabled: string; hover: string; }; }>; gradients: z.ZodOptional; stops: z.ZodArray; angle: z.ZodOptional; }, "strip", z.ZodTypeAny, { type: "linear" | "radial"; stops: string[]; angle?: number | undefined; }, { type: "linear" | "radial"; stops: string[]; angle?: number | undefined; }>>; secondary: z.ZodOptional; stops: z.ZodArray; angle: z.ZodOptional; }, "strip", z.ZodTypeAny, { type: "linear" | "radial"; stops: string[]; angle?: number | undefined; }, { type: "linear" | "radial"; stops: string[]; angle?: number | undefined; }>>; background: z.ZodOptional; stops: z.ZodArray; angle: z.ZodOptional; }, "strip", z.ZodTypeAny, { type: "linear" | "radial"; stops: string[]; angle?: number | undefined; }, { type: "linear" | "radial"; stops: string[]; angle?: number | undefined; }>>; }, "strip", z.ZodTypeAny, { primary?: { type: "linear" | "radial"; stops: string[]; angle?: number | undefined; } | undefined; secondary?: { type: "linear" | "radial"; stops: string[]; angle?: number | undefined; } | undefined; background?: { type: "linear" | "radial"; stops: string[]; angle?: number | undefined; } | undefined; }, { primary?: { type: "linear" | "radial"; stops: string[]; angle?: number | undefined; } | undefined; secondary?: { type: "linear" | "radial"; stops: string[]; angle?: number | undefined; } | undefined; background?: { type: "linear" | "radial"; stops: string[]; angle?: number | undefined; } | undefined; }>>; animations: z.ZodOptional; colorCycle: z.ZodOptional; speed: z.ZodOptional; }, "strip", z.ZodTypeAny, { shimmer?: boolean | undefined; speed?: number | undefined; colorCycle?: boolean | undefined; }, { shimmer?: boolean | undefined; speed?: number | undefined; colorCycle?: boolean | undefined; }>>; version: z.ZodOptional; }, "strip", z.ZodTypeAny, { type: "dark" | "light"; id: string; name: string; author: string; category: "default" | "accessibility" | "community" | "designer" | "seasonal"; colors: { status: { success: string; error: string; info: string; warning: string; }; border: { default: string; subtle: string; strong: string; }; accent: { primary: string; secondary: string; muted: string; }; bg: { primary: string; secondary: string; tertiary: string; elevated: string; overlay: string; }; fg: { primary: string; secondary: string; tertiary: string; inverse: string; }; interactive: { default: string; active: string; disabled: string; hover: string; }; }; minTier: "free" | "plus" | "pro" | "max"; version?: string | undefined; description?: string | undefined; gradients?: { primary?: { type: "linear" | "radial"; stops: string[]; angle?: number | undefined; } | undefined; secondary?: { type: "linear" | "radial"; stops: string[]; angle?: number | undefined; } | undefined; background?: { type: "linear" | "radial"; stops: string[]; angle?: number | undefined; } | undefined; } | undefined; animations?: { shimmer?: boolean | undefined; speed?: number | undefined; colorCycle?: boolean | undefined; } | undefined; }, { type: "dark" | "light"; id: string; name: string; author: string; category: "default" | "accessibility" | "community" | "designer" | "seasonal"; colors: { status: { success: string; error: string; info: string; warning: string; }; border: { default: string; subtle: string; strong: string; }; accent: { primary: string; secondary: string; muted: string; }; bg: { primary: string; secondary: string; tertiary: string; elevated: string; overlay: string; }; fg: { primary: string; secondary: string; tertiary: string; inverse: string; }; interactive: { default: string; active: string; disabled: string; hover: string; }; }; minTier: "free" | "plus" | "pro" | "max"; version?: string | undefined; description?: string | undefined; gradients?: { primary?: { type: "linear" | "radial"; stops: string[]; angle?: number | undefined; } | undefined; secondary?: { type: "linear" | "radial"; stops: string[]; angle?: number | undefined; } | undefined; background?: { type: "linear" | "radial"; stops: string[]; angle?: number | undefined; } | undefined; } | undefined; animations?: { shimmer?: boolean | undefined; speed?: number | undefined; colorCycle?: boolean | undefined; } | undefined; }>; /** * Theme metadata schema (for gallery display) */ export declare const ThemeMetadataSchema: z.ZodObject<{ id: z.ZodString; name: z.ZodString; author: z.ZodString; minTier: z.ZodEnum<["free", "plus", "pro", "max"]>; type: z.ZodEnum<["dark", "light"]>; category: z.ZodEnum<["default", "designer", "accessibility", "seasonal", "community"]>; description: z.ZodOptional; previewColors: z.ZodOptional>; }, "strip", z.ZodTypeAny, { type: "dark" | "light"; id: string; name: string; author: string; category: "default" | "accessibility" | "community" | "designer" | "seasonal"; minTier: "free" | "plus" | "pro" | "max"; description?: string | undefined; previewColors?: { accent: string; bg: string; fg: string; } | undefined; }, { type: "dark" | "light"; id: string; name: string; author: string; category: "default" | "accessibility" | "community" | "designer" | "seasonal"; minTier: "free" | "plus" | "pro" | "max"; description?: string | undefined; previewColors?: { accent: string; bg: string; fg: string; } | undefined; }>; /** * User theme preferences schema */ export declare const ThemePreferencesSchema: z.ZodObject<{ activeTheme: z.ZodString; recentThemes: z.ZodArray; customThemes: z.ZodArray; autoDarkMode: z.ZodOptional>; }, "strip", z.ZodTypeAny, { activeTheme: string; recentThemes: string[]; customThemes: string[]; autoDarkMode?: { enabled: boolean; lightTheme: string; darkTheme: string; lightHour: number; darkHour: number; } | undefined; }, { activeTheme: string; recentThemes: string[]; customThemes: string[]; autoDarkMode?: { enabled: boolean; lightTheme: string; darkTheme: string; lightHour: number; darkHour: number; } | undefined; }>; /** * Validate a theme definition */ export declare function validateTheme(theme: unknown): { success: boolean; data?: z.infer; errors?: z.ZodError; }; /** * Get human-readable validation errors */ export declare function getValidationErrors(errors: z.ZodError): string[]; /** * Validate a hex color */ export declare function isValidHexColor(color: string): boolean; /** * Validate a theme ID */ export declare function isValidThemeId(id: string): boolean; //# sourceMappingURL=theme-validator.d.ts.map