/** Panel entrance class; its CSS declaration also carries the transition. */ export declare const SETTINGS_PANEL_CLASS = "dsu-settings-panel"; /** Page cross-fade marker; the replay itself is the imperative animation. */ export declare const SETTINGS_PAGE_CLASS = "dsu-settings-page"; /** Mask entrance marker; the fade itself is the imperative animation. */ export declare const SETTINGS_MASK_CLASS = "dsu-settings-mask"; /** Applied to the live panel while it shrinks out, before the close lands. */ export declare const SETTINGS_CLOSING_CLASS = "dsu-settings-closing"; /** Applied to the live mask while the panel shrinks out. */ export declare const SETTINGS_MASK_CLOSING_CLASS = "dsu-settings-mask-closing"; /** Upper bound for the exit transition (opacity 160ms + scale 280ms, plus margin). */ export declare const EXIT_TIMEOUT_MS = 380; /** Engine wiring: the settings-motion toggle. */ export interface SettingsMotionOptions { /** Read the current settings-motion toggle (default on until resolved). */ enabled: () => boolean; /** Subscribe to toggle changes; returns the disposer. */ subscribe: (listener: () => void) => () => void; /** * Whether the width-slider preview is open (the panel hidden behind the * floating slider). Escape belongs to the preview then - neither swallowing it * nor letting it through, or one keypress would leave the preview *and* close * the panel. Injected by the wiring (client/index.ts) so motion/ never reads * core/ state on its own. * * Not to be confused with `innerLayerOpen()`: that one is a Menu or a nested * modal *inside* the panel. */ isPreviewOpen: () => boolean; } /** Installed settings-motion handle. */ export interface SettingsMotionHandle { /** Stop observing and drop every applied class. */ dispose: () => void; } /** * Install the settings-panel motion observer. * @param options - the settings-motion toggle access. * @returns the handle that removes the observer and the applied classes. */ export declare function installSettingsMotion(options: SettingsMotionOptions): SettingsMotionHandle;