export * from './lib/plugins/yCursorPlugin.js'
export { ySyncPlugin } from './lib/plugins/ySyncPlugin.js'
export { isVisible } from './lib/utils/binding/isVisible.js'
export { getRelativeSelection } from './lib/utils/positions/getRelativeSelection.js'
export { ProsemirrorBinding } from './lib/utils/binding/ProsemirrorBinding.js'
export { updateYFragment } from './lib/utils/reconciliation/updateYFragment.js'
export * from './lib/plugins/yUndoPlugin.js'
export * from './lib/plugins/keys.js'
export { absolutePositionToRelativePosition } from './lib/utils/positions/absolutePositionToRelativePosition.js'
export { relativePositionToAbsolutePosition } from './lib/utils/positions/relativePositionToAbsolutePosition.js'
export { setMeta } from './lib/plugins/setMeta.js'
export { findAbsolutePositionAfterStructuralChange } from './lib/utils/positions/findAbsolutePositionAfterStructuralChange.js'
export { isMisresolvedTextPosition } from './lib/utils/positions/isMisresolvedTextPosition.js'
export { isMisresolvedAfterStructuralChange } from './lib/utils/positions/isMisresolvedAfterStructuralChange.js'
export { isStructuralTransaction } from './lib/utils/positions/isStructuralTransaction.js'
export { prosemirrorJSONToYDoc } from './lib/utils/conversion/prosemirrorJSONToYDoc.js'
export { yDocToProsemirrorJSON } from './lib/utils/conversion/yDocToProsemirrorJSON.js'
export { yDocToProsemirror } from './lib/utils/conversion/yDocToProsemirror.js'
export { prosemirrorToYDoc } from './lib/utils/conversion/prosemirrorToYDoc.js'
export { prosemirrorJSONToYXmlFragment } from './lib/utils/conversion/prosemirrorJSONToYXmlFragment.js'
export { yXmlFragmentToProsemirrorJSON } from './lib/utils/conversion/yXmlFragmentToProsemirrorJSON.js'
export { yXmlFragmentToProsemirror } from './lib/utils/conversion/yXmlFragmentToProsemirror.js'
export { prosemirrorToYXmlFragment } from './lib/utils/conversion/prosemirrorToYXmlFragment.js'
export { yXmlFragmentToProseMirrorRootNode } from './lib/utils/conversion/yXmlFragmentToProseMirrorRootNode.js'
export { yXmlFragmentToProseMirrorFragment } from './lib/utils/conversion/yXmlFragmentToProseMirrorFragment.js'
export { initProseMirrorDoc } from './lib/utils/conversion/initProseMirrorDoc.js'

export type { BindingMetadata } from './types/BindingMetadata.js'
export type { InitialProseMirrorDoc } from './types/InitialProseMirrorDoc.js'
export type { ColorDef } from './types/ColorDef.js'
export type { CursorUser } from './types/CursorUser.js'
export type { CursorPluginOptions } from './types/CursorPluginOptions.js'
export type { SyncPluginOptions } from './types/SyncPluginOptions.js'
export type { SyncPluginState } from './types/SyncPluginState.js'
export type { UndoPluginOptions } from './types/UndoPluginOptions.js'
export type { UndoPluginState } from './types/UndoPluginState.js'
export type { RelativeSelection } from './types/RelativeSelection.js'
export type { RelativePosition } from './types/RelativePosition.js'
export type { ProsemirrorMapping } from './types/ProsemirrorMapping.js'
export type { ProsemirrorJSONNode } from './types/ProsemirrorJSONNode.js'
export type { ProsemirrorJSONMark } from './types/ProsemirrorJSONNode.js'
