import "./size_boundary.css"; import type * as React from "react"; import { type ReactNode } from "react"; import { useRender } from "@base-ui/react/use-render"; import { type SizeBuckets } from "./container_size"; import { type StyleProps } from "./style_props"; export interface SizeBoundaryProps extends StyleProps { children?: ReactNode; testID?: string; ref?: React.Ref; render?: useRender.RenderProp; } /** The box descendants size against: the `lotics-boundary` container in CSS, `useContainerSize()` in JS. * Mount one where a region's width stops tracking the window (beside a dockable panel, in a resizable * rail), never per component. Only around a box that owns its width (`constitution.md` §10): inline-size * containment collapses a content-sized parent (a `max-content` popover went from 180.6px to 18px), so * such a panel uses `ContainerSizeProvider` instead. Until measured it reports the window's bucket, since * seeding at zero would flash the phone layout. */ export declare function SizeBoundary(props: SizeBoundaryProps): React.ReactElement>; /** The nearest `SizeBoundary`'s room, or the window's with none, which is then the real container (so an * app in its own frame needs nothing mounted). Only for a component rendering a different tree per width; * a class, attribute or length is a `@container lotics-boundary` query paired with `@media` * (`constitution.md` §10). */ export declare function useContainerSize(): SizeBuckets;