import type { JSX, FC, ReactNode } from "react"; export type NavLayoutRowBreakpoint = "lg" | "xl"; export interface Props extends React.ComponentPropsWithoutRef<"div"> { menu: ReactNode; /** * This property is used everywhere BUT in PatientPages.js, because the layout there works very differently than * in the other pages. With JavaScript calculations for heights, etc to make sure everything fits. */ pageHeader?: JSX.Element; /** * Rendered as the main page content. */ children: ReactNode; /** * Optional secondary (vertical) navigation to be rendered beside the main navigation. */ secondaryNavigation?: ReactNode; /** * If passed will show the patients sidebar. */ patientSidebar?: JSX.Element | null; /** * Don't show any navigation, for instance when constrained to a single patient. */ isNavDisabled?: boolean; /** * The patient overview page has some challenges we want to overcome in regards to the multiple scrollable * content (the charts and the action bar with alerts, etc). * * In order to have the setup working on the patient overview page and the rest of the application, we have to * programmatically disable/enable if that location will have a normal scrolling mechanism with specific margin/padding, * or we will need to let the components take care of that. */ disableScrolling?: boolean; /** * Whether the layout is rendering in the viewer. Usually the result of the `useInViewer` hook. */ isInViewer?: boolean; /** * The breakpoint at which the layout switches from a column (stacked) layout to a row layout. * - lg: 1024px * - xl: 1280px * @default "lg". */ rowBreakpoint?: NavLayoutRowBreakpoint; } export declare const NavLayout: FC;