/** * Preset orchestration on top of the unified hover cursor. * * Two construction shapes coexist: * * - `hoverCursor` : single config — wrapped into a `{ default: cfg }` * preset map for uniform downstream handling. * - `hoverCursors` : named preset map — the lib pre-allocates the union * of every primitive used across the presets so any * preset can be activated live without re-building * the body. The initial preset is `defaultCursor` * (or the first key when omitted). * * Switching a preset is a `cursor.updateConfig(preset)` call under the * hood — colors / intensities / opacities apply in place; ring sizes * replay on the next pointer move via `cursor.refresh`. */ import { type HoverCursorHandle, type HoverCursorPorts } from './buildHoverCursor'; import type { HoverCursorConfig, HoverCursorPresets } from '../types/hoverCursor.types'; /** Optional inputs forwarded by the body factories. */ export interface MountHoverCursorOptions { /** Single cursor — equivalent to `hoverCursors: { default: hoverCursor }`. */ hoverCursor?: HoverCursorConfig; /** Named cursor presets, swappable at runtime via `useCursor(name)`. */ hoverCursors?: HoverCursorPresets; /** Initial preset name (defaults to the first key in `hoverCursors`). */ defaultCursor?: string; } /** Public surface returned by {@link mountHoverCursor}. */ export interface HoverCursorMount { /** The underlying primitive — forwarded to `body.hover.{setBoardTile, onChange, …}`. */ cursor: HoverCursorHandle; /** Switches the active preset by name. Throws on unknown names. */ useCursor: (name: string) => void; } /** * Builds the hover cursor with preset-aware orchestration. Returns the * cursor handle (for hover dispatch) and a `useCursor(name)` switcher * the body factory wires onto `body.hover`. */ export declare function mountHoverCursor(opts: MountHoverCursorOptions | undefined, ports: HoverCursorPorts): HoverCursorMount; //# sourceMappingURL=mountHoverCursor.d.ts.map