import type { ElementSize } from "../useElementSize"; import { EMPTY_ELEMENT_SIZE } from "../useElementSize"; export type MeasuredSlotSize = ElementSize; export { EMPTY_ELEMENT_SIZE as EMPTY_SLOT_SIZE }; /** * HomePage measured-layout slot ids. * Chrome slots (`topBar`, `bottomNav`) drive content clearance; * content slots (e.g. `highlights`) drive container-relative layouts. */ export declare const HOME_MEASURE_SLOTS: { readonly topBar: "home.topBar"; readonly bottomNav: "home.bottomNav"; readonly highlights: "home.highlights"; }; export type HomeMeasureSlotId = (typeof HOME_MEASURE_SLOTS)[keyof typeof HOME_MEASURE_SLOTS]; export type MeasuredLayoutRegistry = Record; export type ContentClearanceOptions = { /** Slot id for fixed chrome above content (e.g. TopBar). */ above: string; /** Slot id for fixed chrome below content (e.g. BottomNav). */ below?: string; /** Extra px added to paddingTop (and paddingBottom when `below` is set). */ gap?: number; /** * Used until the slot has a measured height > 0 * (SSR / first paint before ResizeObserver). */ fallback?: { above?: number; below?: number; }; }; export type ContentClearance = { paddingTop: number; paddingBottom: number; aboveHeight: number; belowHeight: number; };