import { type Dispatch, type RefObject, type SetStateAction } from 'react'; interface UseBreakpointCollapseArgs { /** Controlled / uncontrolled props for the collapsed state. */ collapsed: { value: boolean | undefined; defaultValue: boolean; onChange: ((value: boolean) => void) | undefined; }; /** Container width below which the panel auto-collapses. */ breakpoint: number; /** Container element observed for size changes. */ containerRef: RefObject; } interface UseBreakpointCollapseResult { /** Most recent measured container width (`0` until first measurement). */ containerWidth: number; /** Current collapsed state (controlled value if provided). */ collapsed: boolean; /** Setter for the collapsed state. */ setCollapsed: Dispatch>; /** True once measured and the container is narrower than `breakpoint`. */ isBelowBreakpoint: boolean; } /** * Tracks the container width and collapses the panel when the container * crosses the configured breakpoint. Shared between the details-layout and * sidebar-layout `useLayoutState` hooks; both wrap this and add their own * mode-resolution logic on top. * * Only emits `onCollapsedChange` when the container *crosses* the threshold * (not on every resize while it stays on the same side), and skips the * first-measurement emit when the value already matches the measured side. * * @internal */ export declare function useBreakpointCollapse({ collapsed: collapsedProps, breakpoint, containerRef, }: UseBreakpointCollapseArgs): UseBreakpointCollapseResult; export {};