import { DecorationSet } from 'prosemirror-view'; import { EditorState, Plugin, PluginKey } from 'prosemirror-state'; import { type DecorationAttrs } from 'prosemirror-view'; import { type ColorMapper, type User } from '@kerebron/editor/user'; import type { SelectionState } from './ExtensionRemoteSelection.js'; export declare const remoteSelectionPluginKey: PluginKey; interface RemoteSelectionState { remoteStates: SelectionState[]; me: User; colorMapper: ColorMapper; } /** * Default generator for a cursor element */ export declare const defaultCursorBuilder: (user: User, me: User, colorMapper: ColorMapper) => HTMLElement; /** * Default generator for the selection attributes */ export declare const defaultSelectionBuilder: (user: User, me: User, colorMapper: ColorMapper) => DecorationAttrs; export declare const createDecorations: (state: EditorState, pluginState: RemoteSelectionState, createCursor: (user: User, me: User, colorMapper: ColorMapper) => Element, createSelection: (user: User, me: User, colorMapper: ColorMapper) => DecorationAttrs) => DecorationSet; export declare const remoteSelectionPlugin: ({ cursorBuilder, selectionBuilder, }?: { cursorBuilder?: (user: User, me: User, colorMapper: ColorMapper) => HTMLElement; selectionBuilder?: (user: User, me: User, colorMapper: ColorMapper) => DecorationAttrs; }) => Plugin; export {}; //# sourceMappingURL=remoteSelectionPlugin.d.ts.map