export declare const MENU_PLACEMENT_RECOMPUTE_DEBOUNCE_MS = 120; /** * react-select's own `MenuPlacer` (internal to the library) decides the escaped dropdown's * up/down flip exactly once per open, inside a `useLayoutEffect` gated on `[maxMenuHeight, * menuPlacement, menuPosition, menuShouldScrollIntoView, minMenuHeight, controlHeight]` -- * none of which change on their own when the control's position shifts relative to the viewport * (e.g. scrolling the modal/drawer/page the select sits in without closing the menu). A menu that * correctly opened "up" (or "down") can end up clipped once the layout around it moves. * * `useSelect.ts` feeds the returned `tick` into `maxMenuHeight` -- the one prop in that dependency * list safe to toggle purely to force a fresh measurement, with no other side effect: the * resulting `maxHeight` react-select computes is never consumed on our end (the custom * `Menu`/`MenuList` in useCustomComponents.tsx disable react-select's per-slot styling via * `getStyles={getNoStyles}` and constrain height with Tailwind's `cvaMenuList` instead) -- only * the *change* in value, not the value itself, matters. `minMenuHeight` must stay untouched: * passing any finite number there (instead of `undefined`) would make react-select treat "the * menu barely fits, if constrained" as true almost everywhere, short-circuiting past the actual * flip check. * * Deliberately a trailing *debounce*, not a per-frame (rAF) throttle: `resize` (and, to a lesser * extent, `scroll`) fires continuously while the user is actively dragging, so a control that * happens to sit right at the fits-below/doesn't-fit-below threshold would otherwise have its * flip decision -- and therefore the whole menu -- recomputed and visibly toggle top/bottom on * practically every frame of the drag. Waiting until the gesture actually settles means the menu * still only flips (at most) once, to whatever's correct for the final size/position. */ export declare const useMenuPlacementRecompute: () => { tick: number; onMenuOpen: () => void; onMenuClose: () => void; };