import type { FC, PropsWithChildren, ReactNode } from 'react'; import type { Severity } from '../../constants/severity.types'; type Orientation = 'vertical' | 'horizontal'; export type PageLayoutMaxWidth = boolean | 'sm' | 'md'; export interface PageLayoutProps extends PropsWithChildren { /** * If true, PageLayout becomes a self-contained app shell (100vh) and * scroll is contained inside the intended regions (sidebar/content). * If false, the document scrolls normally (body scroll). */ containScrolling?: boolean; orientation?: Orientation; /** Pass a deployment environment string (e.g. process.env.DEPLOYMENT_ENV). * Renders a banner for 'production', 'staging', or 'test'. 'prod' is accepted as an alias for * 'production'. Ignored for unknown values or undefined. */ environment?: string; /** Custom banner label — requires customEnvSeverity. */ customEnv?: string; /** Severity for the custom banner. */ customEnvSeverity?: Severity; } export interface PageLayoutHeaderProps { maxWidth?: PageLayoutMaxWidth; children: ReactNode; } export interface PageLayoutContentProps { maxWidth?: PageLayoutMaxWidth; children: ReactNode; } export interface PageLayoutFooterProps { maxWidth?: PageLayoutMaxWidth; children: ReactNode; } export interface PageLayoutBannerProps { children: ReactNode; } export interface PageLayoutSidebarProps { children: ReactNode; } export declare const PageLayout: FC & { Banner: FC; Sidebar: FC; Header: FC; Content: FC; Footer: FC; }; export {};