import { PayrexxBaseModel, PayrexxTimestamps, MultiLanguageString } from '@/types'; export interface DesignRequest extends PayrexxBaseModel { default?: boolean; name?: string; fontFamily?: string; fontSize?: string; textColor?: string; textColorVPOS?: string; linkColor?: string; linkHoverColor?: string; buttonColor?: string; buttonHoverColor?: string; backgroundColor?: string; headerBackgroundColor?: string; emailHeaderBackgroundColor?: string; logoBackgroundColor?: string; logoBorderColor?: string; VPOSGradientColor1?: string; VPOSGradientColor2?: string; background?: string; headerBackground?: string; VPOSBackground?: string; headerImage?: string | File | Blob; backgroundImage?: string | File | Blob; headerBackgroundImage?: string | File | Blob; emailHeaderImage?: string | File | Blob; VPOSBackgroundImage?: string | File | Blob; headerImageShape?: DesignHeaderImageShape; headerImageCustomLink?: string | MultiLanguageString; useIndividualEmailLogo?: boolean; enableRoundedCorners?: boolean; offset?: number; limit?: number; } export interface DesignResponse extends PayrexxBaseModel, PayrexxTimestamps { default: boolean; name: string; fontFamily?: string; fontSize?: string; textColor?: string; textColorVPOS?: string; linkColor?: string; linkHoverColor?: string; buttonColor?: string; buttonHoverColor?: string; backgroundColor?: string; headerBackgroundColor?: string; emailHeaderBackgroundColor?: string; logoBackgroundColor?: string; logoBorderColor?: string; VPOSGradientColor1?: string; VPOSGradientColor2?: string; background?: string; headerBackground?: string; VPOSBackground?: string; headerImage?: string; backgroundImage?: string; headerBackgroundImage?: string; emailHeaderImage?: string; VPOSBackgroundImage?: string; headerImageShape?: DesignHeaderImageShape; headerImageCustomLink?: MultiLanguageString; useIndividualEmailLogo?: boolean; enableRoundedCorners?: boolean; usageCount?: number; lastUsed?: string; } export type DesignHeaderImageShape = 'rectangle' | 'rounded' | 'circle' | 'square'; export type DesignColorScheme = 'light' | 'dark' | 'auto' | 'custom'; export type DesignFontFamily = 'Arial' | 'Helvetica' | 'Georgia' | 'Times' | 'Verdana' | 'Trebuchet MS' | 'Comic Sans MS' | 'Impact' | 'Lucida Console' | 'Tahoma' | 'Palatino' | 'Garamond' | string; export type DesignFontSize = 'xx-small' | 'x-small' | 'small' | 'medium' | 'large' | 'x-large' | 'xx-large' | string; export interface DesignColorPalette { primary: string; secondary: string; accent: string; background: string; surface: string; text: string; textSecondary: string; border: string; success: string; warning: string; error: string; } export interface DesignTheme { name: string; displayName: MultiLanguageString; colorPalette: DesignColorPalette; fontFamily: DesignFontFamily; fontSize: DesignFontSize; enableRoundedCorners: boolean; headerImageShape: DesignHeaderImageShape; } export interface DesignValidationRules { allowedColorFormats: ('hex' | 'rgb' | 'rgba' | 'hsl' | 'hsla' | 'named')[]; allowedImageFormats: string[]; maxImageSize: number; maxImageDimensions: { width: number; height: number; }; allowedFontFamilies?: DesignFontFamily[]; allowedFontSizes?: DesignFontSize[]; requiredFields: (keyof DesignRequest)[]; } export interface DesignExportData { design: DesignResponse; images?: { [key: string]: string; }; metadata: { exportedAt: string; exportedBy: string; version: string; }; } export interface DesignAnalytics { designId: number; name: string; totalUsage: number; uniqueUsers: number; conversionRate: number; avgLoadTime: number; mobileCompatibility: number; accessibilityScore: number; mostUsedColors: string[]; mostUsedFonts: DesignFontFamily[]; performanceBenchmark: 'above_average' | 'average' | 'below_average'; periodStart: string; periodEnd: string; } //# sourceMappingURL=design.d.ts.map