import React from 'react'; import type { ActionsMenuGroup } from '../ui/actions-menu'; import { type PageActionButton } from '../ui/page-actions'; export interface PageLayoutProps { children: React.ReactNode; title?: string; subtitle?: string; image?: { src: string; alt?: string; }; backButton?: { label?: string; onClick: () => void; }; actions?: PageActionButton[]; actionsVariant?: 'icon-buttons' | 'primary-buttons' | 'menu-primary'; menuActions?: ActionsMenuGroup[]; /** Desktop-only slot (e.g. a `TabSelector`) rendered with the actions. Hidden on mobile. */ selector?: React.ReactNode; /** Header visual variant. `card` adds a card background, border, and padding on mobile. */ headerVariant?: 'plain' | 'card'; className?: string; contentClassName?: string; showHeader?: boolean; /** Title typography size, forwarded to `TitleBlock`. Default `'h2'` (frozen * baseline). Pass `'h1'` for the unified Help Center pages. */ titleSize?: 'h1' | 'h2'; /** Optional node rendered inline next to the title (e.g. a status `Tag`), forwarded to `TitleBlock`. */ titleAdornment?: React.ReactNode; /** When true, the title/subtitle render as line-box-accurate skeleton bars (forwarded to * `TitleBlock`). Header height stays identical to the loaded state — for page skeletons. */ loading?: boolean; /** Render the header ACTIONS as placeholders (their set depends on data still loading). */ loadingActions?: boolean; /** When the subtitle row occupies the layout (forwarded to `TitleBlock`): * `'when-set'` (default), `'while-loading'` (skeleton bar while loading, collapses * if the record has no subtitle), or `'always'` (never collapses). */ subtitleRow?: 'when-set' | 'while-loading' | 'always'; /** When true, a long title wraps onto multiple lines instead of the frozen single-line * ellipsis clamp (forwarded to `TitleBlock`). For content detail pages whose h1 is CMS * data of arbitrary length. Additive + default-preserving. */ titleWrap?: boolean; } /** * Page layout container with consistent spacing, header, and actions. * * Uses `--spacing-system-l` as the gap between sections. */ export declare function PageLayout({ children, title, subtitle, image, backButton, actions, actionsVariant, menuActions, selector, headerVariant, className, contentClassName, showHeader, titleSize, titleAdornment, loading, loadingActions, subtitleRow, titleWrap, }: PageLayoutProps): React.JSX.Element; export type { PageActionButton } from '../ui/page-actions'; export { TitleBlock, TITLE_BLOCK_MIN_HEIGHT } from './title-block'; export type { TitleBlockProps } from './title-block'; export default PageLayout; //# sourceMappingURL=page-layout.d.ts.map