import type { ReactNode } from 'react'; interface PageLayoutProps { children: ReactNode; /** Page title */ title?: string; /** Page subtitle/description */ subtitle?: string; /** Icon component to display next to title */ icon?: ReactNode; /** Actions to display in header (buttons, etc.) */ headerActions?: ReactNode; /** Additional header content below title */ headerContent?: ReactNode; /** Maximum width of content: 'sm' | 'md' | 'lg' | 'xl' | '2xl' | '3xl' | 'full' */ maxWidth?: 'sm' | 'md' | 'lg' | 'xl' | '2xl' | '3xl' | 'full'; /** Whether to show the header section */ showHeader?: boolean; /** Additional CSS classes for the container */ className?: string; /** Additional CSS classes for the content area */ contentClassName?: string; /** * Boff UI 2.0 living-glass hero backdrop. When true, the header zone is wrapped * in a `relative overflow-hidden` container with a subtle drifting AuroraBackground * behind it (sits at -z-10, never moves content, reduced-motion safe). Reserve for * the MFE's primary landing page — ONE aurora per MFE. */ aurora?: boolean; /** * When provided, the title is split so this trailing noun is rendered with a * brand GradientText fill (one hero heading accent per page). The remaining * leading text stays in the plain title colour. */ titleAccent?: string; } /** * PageLayout - A consistent page wrapper with responsive design for Support module * * Features: * - Proper max-width constraints * - Responsive padding * - Animated entrance * - Consistent header styling */ export declare function PageLayout({ children, title, subtitle, icon, headerActions, headerContent, maxWidth, showHeader, className, contentClassName, aurora, titleAccent, }: PageLayoutProps): import("react/jsx-runtime").JSX.Element; /** * EmptyState - A consistent empty state component */ export declare function EmptyState({ icon, illustration, illustrationAlt, title, description, action, className, }: { icon?: ReactNode; /** * Boff UI 2.0 on-brand illustration name (served by the host shell at * /illustrations/.webp). When provided, the empty state renders the * richer IllustratedEmptyState instead of the plain icon variant. Reserve for * genuine zero/no-results states — keep gate/permission states on the icon. */ illustration?: string; illustrationAlt?: string; title: string; description?: string; action?: ReactNode; className?: string; }): import("react/jsx-runtime").JSX.Element; /** * LoadingState - A consistent loading state component */ export declare function LoadingState({ message, className }: { message?: string; className?: string; }): import("react/jsx-runtime").JSX.Element; export {};