import { BaseEditor, Editor, Point } from '../../slate/index.ts'; import { RelativePosition, XmlText, YEvent } from 'yjs'; export type YjsEditor = BaseEditor & { sharedRoot: XmlText; localOrigin: unknown; positionStorageOrigin: unknown; applyRemoteEvents: (events: YEvent[], origin: unknown) => void; isLocalOrigin: (origin: unknown) => boolean; connect: () => void; disconnect: () => void; }; export declare const YjsEditor: { isYjsEditor(value: unknown): value is YjsEditor; applyRemoteEvents(editor: YjsEditor, events: YEvent[], origin: unknown): void; connected(editor: YjsEditor): boolean; connect(editor: YjsEditor): void; disconnect(editor: YjsEditor): void; isLocal(editor: YjsEditor): boolean; origin(editor: YjsEditor): unknown; withOrigin(editor: YjsEditor, origin: unknown, fn: () => void): void; storePosition(editor: YjsEditor, key: string, point: Point): void; removeStoredPosition(editor: YjsEditor, key: string): void; position(editor: YjsEditor, key: string): Point | null | undefined; storedPositionsRelative(editor: YjsEditor): Record; }; export type WithYjsOptions = { autoConnect?: boolean; localOrigin?: unknown; positionStorageOrigin?: unknown; }; export declare function withYjs(editor: T, sharedRoot: XmlText, { localOrigin, positionStorageOrigin, autoConnect, }?: WithYjsOptions): T & YjsEditor;