/** * @typedef {{ * owner: object, * raw: unknown, * evaluate: () => string | undefined, * watch: (registerDisposer: (dispose: () => void) => void, listener: () => void) => void, * }} CursorSource */ /** * @param {CursorView | undefined} target * @param {{ mark?: CursorOwner } | undefined} hover * @returns {CursorSource | undefined} */ export function resolveCursorSource(target: CursorView | undefined, hover: { mark?: CursorOwner; } | undefined): CursorSource | undefined; /** * Resolves and applies the active canvas cursor based on the current mark hover * and interaction target path. */ /** * @typedef {{ * getCursorSpec?: () => unknown, * getCursor: () => string | undefined, * watchCursor?: (listener: () => void, registerDisposer: (dispose: () => void) => void) => void, * }} CursorOwner */ /** * @typedef {CursorOwner & { * getLayoutAncestors: () => CursorView[], * }} CursorView */ export default class CursorManager { /** * @param {object} options * @param {HTMLCanvasElement} options.canvas */ constructor({ canvas }: { canvas: HTMLCanvasElement; }); /** * @param {object} options * @param {CursorView | undefined} options.target * @param {{ mark?: CursorOwner } | undefined} options.hover */ update({ target, hover }: { target: CursorView | undefined; hover: { mark?: CursorOwner; } | undefined; }): void; clear(): void; #private; } export type CursorSource = { owner: object; raw: unknown; evaluate: () => string | undefined; watch: (registerDisposer: (dispose: () => void) => void, listener: () => void) => void; }; export type CursorOwner = { getCursorSpec?: () => unknown; getCursor: () => string | undefined; watchCursor?: (listener: () => void, registerDisposer: (dispose: () => void) => void) => void; }; export type CursorView = CursorOwner & { getLayoutAncestors: () => CursorView[]; }; //# sourceMappingURL=cursorManager.d.ts.map