/** * Dashboard Configuration Zod Schema * * Validates that theme-specific dashboard.config.ts files conform to the expected structure. * This schema is used during build time and development to catch configuration errors early. */ import { z } from 'zod'; /** * Schema for theme-specific dashboard configuration * All properties are optional since themes only need to override what they want to change */ export declare const dashboardConfigSchema: z.ZodObject<{ topbar: z.ZodOptional; placeholder: z.ZodOptional; maxResults: z.ZodOptional; }, z.core.$strip>>; notifications: z.ZodOptional; }, z.core.$strip>>; themeToggle: z.ZodOptional; }, z.core.$strip>>; support: z.ZodOptional; type: z.ZodOptional>; links: z.ZodOptional; icon: z.ZodString; external: z.ZodOptional; action: z.ZodOptional; }, z.core.$strip>>>; }, z.core.$strip>>; quickCreate: z.ZodOptional; }, z.core.$strip>>; userMenu: z.ZodOptional; showAvatar: z.ZodOptional; showEmail: z.ZodOptional; showRole: z.ZodOptional; items: z.ZodOptional; label: z.ZodOptional; href: z.ZodOptional; icon: z.ZodOptional; action: z.ZodOptional; }, z.core.$strip>>>; }, z.core.$strip>>; }, z.core.$strip>>; sidebar: z.ZodOptional; rememberState: z.ZodOptional; collapsedWidth: z.ZodOptional; expandedWidth: z.ZodOptional; toggle: z.ZodOptional; showInTopbar: z.ZodOptional; hideOnMobile: z.ZodOptional; }, z.core.$strip>>; navigation: z.ZodOptional; groupEntities: z.ZodOptional; showRecents: z.ZodOptional; maxRecents: z.ZodOptional; }, z.core.$strip>>; }, z.core.$strip>>; settings: z.ZodOptional; label: z.ZodOptional; description: z.ZodOptional; icon: z.ZodOptional; order: z.ZodOptional; features: z.ZodOptional>; requiredRole: z.ZodOptional; }, z.core.$strip>>>; layout: z.ZodOptional; showIcons: z.ZodOptional; groupByCategory: z.ZodOptional; enableSearch: z.ZodOptional; }, z.core.$strip>>; }, z.core.$strip>>; entities: z.ZodOptional; allowedPageSizes: z.ZodOptional>; showSizeSelector: z.ZodOptional; }, z.core.$strip>>; sorting: z.ZodOptional; defaultSort: z.ZodOptional; }, z.core.$strip>>; rememberSort: z.ZodOptional; }, z.core.$strip>>; filtering: z.ZodOptional; quickFilters: z.ZodOptional; advancedFilters: z.ZodOptional; rememberFilters: z.ZodOptional; }, z.core.$strip>>; search: z.ZodOptional; placeholder: z.ZodOptional; searchableFields: z.ZodOptional>; instantSearch: z.ZodOptional; debounceMs: z.ZodOptional; }, z.core.$strip>>; }, z.core.$strip>>; defaultFormView: z.ZodOptional; validateOnChange: z.ZodOptional; showFieldErrors: z.ZodOptional; showFormErrors: z.ZodOptional; }, z.core.$strip>>; autosave: z.ZodOptional; intervalMs: z.ZodOptional; showIndicator: z.ZodOptional; }, z.core.$strip>>; confirmation: z.ZodOptional; showOnUpdate: z.ZodOptional; showOnDelete: z.ZodOptional; }, z.core.$strip>>; }, z.core.$strip>>; customizations: z.ZodOptional; formView: z.ZodOptional; }, z.core.$strip>>>; }, z.core.$strip>>; homepage: z.ZodOptional; showUserName: z.ZodOptional; showLastLogin: z.ZodOptional; showQuickActions: z.ZodOptional; }, z.core.$strip>>; stats: z.ZodOptional; entities: z.ZodOptional>; timeframe: z.ZodOptional>; showTrends: z.ZodOptional; }, z.core.$strip>>; recentActivity: z.ZodOptional; maxItems: z.ZodOptional; entities: z.ZodOptional>; showTimestamps: z.ZodOptional; }, z.core.$strip>>; quickActions: z.ZodOptional; actions: z.ZodOptional>>; }, z.core.$strip>>; }, z.core.$strip>>; layout: z.ZodOptional; gutter: z.ZodOptional>; responsive: z.ZodOptional; }, z.core.$strip>>; }, z.core.$strip>>; performance: z.ZodOptional; duration: z.ZodOptional; }, z.core.$strip>>; entityData: z.ZodOptional; duration: z.ZodOptional; }, z.core.$strip>>; }, z.core.$strip>>; loading: z.ZodOptional; showProgressBars: z.ZodOptional; minimumLoadingTime: z.ZodOptional; }, z.core.$strip>>; errors: z.ZodOptional; logErrors: z.ZodOptional; enableRetry: z.ZodOptional; maxRetries: z.ZodOptional; }, z.core.$strip>>; }, z.core.$strip>>; accessibility: z.ZodOptional; showShortcuts: z.ZodOptional; customShortcuts: z.ZodOptional>; }, z.core.$strip>>; screenReader: z.ZodOptional; announceActions: z.ZodOptional; announceErrors: z.ZodOptional; }, z.core.$strip>>; visual: z.ZodOptional; highContrastMode: z.ZodOptional; reducedMotion: z.ZodOptional; }, z.core.$strip>>; }, z.core.$strip>>; isSettingsPageEnabled: z.ZodOptional>; getEnabledSettingsPages: z.ZodOptional>; isTopbarFeatureEnabled: z.ZodOptional>; }, z.core.$strip>; /** * Type inference from schema */ export type DashboardConfigInput = z.input; export type DashboardConfigOutput = z.output; /** * Validate a dashboard configuration object * * @param config - The configuration object to validate * @returns Validated configuration * @throws ZodError if validation fails */ export declare function validateDashboardConfig(config: unknown): DashboardConfigOutput; /** * Safely validate a dashboard configuration object * * @param config - The configuration object to validate * @returns Success result with validated config or error result with issues */ export declare function safeValidateDashboardConfig(config: unknown): z.ZodSafeParseResult<{ topbar?: { search?: { enabled?: boolean; placeholder?: string; maxResults?: number; }; notifications?: { enabled?: boolean; }; themeToggle?: { enabled?: boolean; }; support?: { enabled?: boolean; type?: "dropdown" | "link" | "modal"; links?: { label: string; icon: string; url?: string; external?: boolean; action?: string; }[]; }; quickCreate?: { enabled?: boolean; }; userMenu?: { enabled?: boolean; showAvatar?: boolean; showEmail?: boolean; showRole?: boolean; items?: { type: "link" | "action" | "divider"; label?: string; href?: string; icon?: string; action?: string; }[]; }; }; sidebar?: { defaultCollapsed?: boolean; rememberState?: boolean; collapsedWidth?: string; expandedWidth?: string; toggle?: { enabled?: boolean; showInTopbar?: boolean; hideOnMobile?: boolean; }; navigation?: { showEntityCounts?: boolean; groupEntities?: boolean; showRecents?: boolean; maxRecents?: number; }; }; settings?: { pages?: Record; requiredRole?: string; }>; layout?: { showDescription?: boolean; showIcons?: boolean; groupByCategory?: boolean; enableSearch?: boolean; }; }; entities?: { defaultListView?: { pagination?: { defaultPageSize?: number; allowedPageSizes?: number[]; showSizeSelector?: boolean; }; sorting?: { enabled?: boolean; defaultSort?: { field: string; direction: "asc" | "desc"; }; rememberSort?: boolean; }; filtering?: { enabled?: boolean; quickFilters?: boolean; advancedFilters?: boolean; rememberFilters?: boolean; }; search?: { enabled?: boolean; placeholder?: string; searchableFields?: string[]; instantSearch?: boolean; debounceMs?: number; }; }; defaultFormView?: { validation?: { validateOnBlur?: boolean; validateOnChange?: boolean; showFieldErrors?: boolean; showFormErrors?: boolean; }; autosave?: { enabled?: boolean; intervalMs?: number; showIndicator?: boolean; }; confirmation?: { showOnCreate?: boolean; showOnUpdate?: boolean; showOnDelete?: boolean; }; }; customizations?: Record; }; homepage?: { widgets?: { welcome?: { enabled?: boolean; showUserName?: boolean; showLastLogin?: boolean; showQuickActions?: boolean; }; stats?: { enabled?: boolean; entities?: string[]; timeframe?: "today" | "7days" | "30days" | "90days"; showTrends?: boolean; }; recentActivity?: { enabled?: boolean; maxItems?: number; entities?: string[]; showTimestamps?: boolean; }; quickActions?: { enabled?: boolean; actions?: { entity: string; action: string; label: string; }[]; }; }; layout?: { columns?: number; gutter?: "small" | "medium" | "large"; responsive?: boolean; }; }; performance?: { cache?: { entityConfigs?: { enabled?: boolean; duration?: number; }; entityData?: { enabled?: boolean; duration?: number; }; }; loading?: { showSkeletons?: boolean; showProgressBars?: boolean; minimumLoadingTime?: number; }; errors?: { showErrorBoundaries?: boolean; logErrors?: boolean; enableRetry?: boolean; maxRetries?: number; }; }; accessibility?: { keyboard?: { enabled?: boolean; showShortcuts?: boolean; customShortcuts?: Record; }; screenReader?: { announceNavigation?: boolean; announceActions?: boolean; announceErrors?: boolean; }; visual?: { showFocusOutlines?: boolean; highContrastMode?: boolean; reducedMotion?: boolean; }; }; isSettingsPageEnabled?: z.core.$InferOuterFunctionType; getEnabledSettingsPages?: z.core.$InferOuterFunctionType; isTopbarFeatureEnabled?: z.core.$InferOuterFunctionType; }>; //# sourceMappingURL=dashboard-schema.d.ts.map