import { DockviewCompositeDisposable as CompositeDisposable, PositionResolver, IDndCompassHost, IDndCompassService } from 'dockview'; /** * DnD compass: a VS Code-style aim-at-a-cell drop overlay for group * docking. While a panel/group is dragged over a group, a cross of cells is * painted over it and the dragged item snaps to whichever cell the cursor is * over (instead of the cursor-quadrant of the target). Drop resolution + commit * stay in core: the service installs a {@link CompassResolver} at the drop-target * seam and paints the widget. Opt-in via `dndCompass` (default off → unchanged). * * Inner cells split/merge the hovered group; the outer ring (`edge` cells) docks * against the whole layout (core routes `edge`-flagged drops to the layout edge). * Cells the drop would reject are hidden (per-cell gating). */ export declare class DndCompassService extends CompositeDisposable implements IDndCompassService { private readonly host; private readonly _resolver; private _mounted; private _endListeners; private _edgePreview; constructor(host: IDndCompassHost); /** Installed by the host only while the compass is enabled. */ get resolver(): PositionResolver | undefined; private get _enabled(); /** Cells the option restricts the compass to, or `undefined` for all. */ private _configuredZones; /** Whether the outer whole-layout-edge cells are shown (default true). */ private _edgesEnabled; private _onWillShowOverlay; /** * Drive the compass off raw pointer movement, which reports where the cursor * actually is — `onWillShowOverlay` only fires while it is over a cell of a * group that accepts the drop, so on its own the widget would sit there for * the rest of the drag. * * The compass is the aiming UI for one group's content drop target, and that * target only receives events while the cursor is over its element. So the * widget lives exactly as long as the cursor is over that element: move onto * the tab strip, a sash, another group, or out of the window and it goes. */ private _onMove; /** * Clear the feedback when the cursor is over no cell (a dead zone between * cells, or off the group). `onWillShowOverlay` only fires on a cell, so * without this the highlight + edge preview would linger. It only ever * clears (setting stays with `onWillShowOverlay`), so the two never conflict. */ private _clearFeedbackIfOffCells; /** * Preview the whole-layout-edge region an outer cell docks into (the half * the panel will occupy), styled with the same theme variables as a real * drop overlay so it reads identically. Drawn over the layout root (a * positioned element), beneath the compass. */ private _showEdgePreview; private _clearEdgePreview; private _mount; private _unmount; } export declare const DndCompassModule: import("dockview").DockviewModule;