import { Rect, ResizeEdges } from './panel-geometry'; export interface PanelMotionDeps { /** The panel element, or null while it is closed. */ panel(): HTMLElement | null; /** Whether this shape allows dragging at all. */ canDrag(): boolean; /** Whether the viewport is at sheet width. */ isSheet(): boolean; /** Grabbing a resize handle drops the expanded preset. */ setExpanded(value: boolean): void; /** A drag that ends on the grab handle must not also fire its click. */ setSuppressGrabClick(value: boolean): void; /** Pulling the sheet down far enough closes the assistant. */ close(): void; } /** Which edges each handle moves. The rest stay where they are. */ export declare const RESIZE_HANDLES: { name: string; edges: ResizeEdges; }[]; export declare function createPanelMotion(deps: PanelMotionDeps): { readonly dragX: number; readonly dragY: number; readonly interacting: boolean; readonly panelRect: Rect | null; readonly panelSize: { width: number; height: number; } | null; sheetHeight: number | null; resetDrag: () => void; resetPanelGeometry: () => void; measurePanel: (el: HTMLElement | null) => Rect | null; panelDrag: (node: HTMLElement) => { destroy(): void; }; panelResize: (node: HTMLElement, edges: ResizeEdges) => { destroy(): void; }; sheetDrag: (node: HTMLElement) => { destroy(): void; }; sheetResize: (node: HTMLElement) => { destroy(): void; }; };