import type { DrawerMode } from "../../types"; /** * Animation lifecycle for Drawer mount / unmount. * * Open always mounts (or re-opens) in `mode: "closed"` so the panel starts off-screen * for its `position`. A follow-up `openVisual` after layout reflow flips to `"open"` * and the CSS transform transition plays the slide-in. `enterSettled` flips true only * after that enter transition ends — focus must wait until then, otherwise * `scrollIntoView` on an off-screen panel shoves the layout (gap + bounce on the right). */ export type DrawerAnimationState = { readonly shouldRender: boolean; readonly mode: DrawerMode; readonly enterSettled: boolean; }; export type DrawerAnimationAction = { readonly type: "open"; } | { readonly type: "openVisual"; } | { readonly type: "close"; } | { readonly type: "transitionEnd"; }; export declare const INITIAL_DRAWER_ANIMATION_STATE: DrawerAnimationState; /** Reducer managing the Drawer panel's mount / enter / exit animation lifecycle. */ export declare const drawerAnimationReducer: (state: DrawerAnimationState, action: DrawerAnimationAction) => DrawerAnimationState;