/** Bubbling/composed events — `ds-shell-app` and `ds-bar-nav` coordinate during width motion. */ export declare const CHROME_TRANSITION_START = "dsChromeTransitionStart"; export declare const CHROME_TRANSITION_END = "dsChromeTransitionEnd"; export type ChromeTransitionSource = 'panel-nav' | 'panel-tools'; export interface ChromeTransitionDetail { source: ChromeTransitionSource; /** Panel-tools drawer motion direction; omitted for panel-nav. */ phase?: 'opening' | 'closing'; } /** Reference-counted gate — used while panel-nav width is transitioning. */ export declare class ChromeTransitionDepth { private depth; enter(): void; exit(): void; get isActive(): boolean; } /** Idempotent gate for one physical chrome surface. * Duplicate start notifications still require only one matching end. */ export declare class ChromeTransitionGate { private active; enter(): void; exit(): void; get isActive(): boolean; } export interface RafCoalescer { schedule(): void; cancel(): void; } /** Coalesce bursty layout work (ResizeObserver, prop churn) to one callback per frame. */ export declare function createRafCoalescer(onFrame: () => void): RafCoalescer; export declare function readChromeTransitionSource(event: Event): ChromeTransitionSource | undefined; export declare function readChromeTransitionPhase(event: Event): ChromeTransitionDetail['phase']; //# sourceMappingURL=chrome-transition.d.ts.map