import { Attrs, Fragment, Mark, Node as PMNode, Schema } from 'prosemirror-model'; import { CHANGE_OPERATION, TrackedAttrs } from '../types/change'; export type NewEmptyAttrs = Omit; export type NewInsertAttrs = Omit & { operation: CHANGE_OPERATION.insert | CHANGE_OPERATION.wrap_with_node | CHANGE_OPERATION.structure; }; export type NewDeleteAttrs = Omit & { operation: CHANGE_OPERATION.delete; }; export type NewUpdateAttrs = Omit & { operation: CHANGE_OPERATION.set_node_attributes; oldAttrs: Record; }; export type NewSplitNodeAttrs = Omit & { operation: CHANGE_OPERATION.node_split; }; export type NewMoveAttrs = Omit & { operation: CHANGE_OPERATION.move; indentationType?: 'indent' | 'unindent'; }; export type NewReferenceAttrs = Omit & { operation: CHANGE_OPERATION.reference; referenceId: string; }; export type NewTrackedAttrs = NewInsertAttrs | NewDeleteAttrs | NewUpdateAttrs | NewMoveAttrs; export declare function createNewInsertAttrs(attrs: NewEmptyAttrs): NewInsertAttrs; export declare function createNewWrapAttrs(attrs: NewEmptyAttrs): NewInsertAttrs; export declare function createNewSplitAttrs(attrs: NewEmptyAttrs): NewSplitNodeAttrs; export declare function createNewReferenceAttrs(attrs: NewEmptyAttrs, id: string): NewReferenceAttrs; export declare function createNewDeleteAttrs(attrs: NewEmptyAttrs): NewDeleteAttrs; export declare function createNewMoveAttrs(attrs: NewEmptyAttrs, indentationType?: 'indent' | 'unindent'): NewMoveAttrs; export declare function createNewUpdateAttrs(attrs: NewEmptyAttrs, oldAttrs: Record): NewUpdateAttrs; export declare function createNewStructureAttrs(attrs: NewEmptyAttrs): NewInsertAttrs; export declare function createNewPendingAttrs(time: number, authorID: string): NewEmptyAttrs; export declare function addTrackIdIfDoesntExist(attrs: Partial): Partial; export declare function getTextNodeTrackedMarkData(node: PMNode | null, schema: Schema): (Omit, "operation"> & { operation: CHANGE_OPERATION; }) | undefined; export declare function getBlockInlineTrackedData(node: PMNode): Partial[] | undefined; export declare function getMarkTrackedData(node: PMNode | undefined | null): Map[]>; export declare function getNodeTrackedData(node: PMNode | undefined | null, schema: Schema): Partial[] | undefined; export declare function shouldMergeTrackedAttributes(left?: Partial, right?: Partial): boolean; export declare function getMergeableMarkTrackedAttrs(node: PMNode | null, attrs: Partial, schema: Schema): (Omit, "operation"> & { operation: CHANGE_OPERATION; }) | null; export declare const updateBlockNodesAttrs: (fragment: Fragment, predicate: (attrs: Attrs, node: PMNode) => Attrs) => Fragment; export declare function excludeFromTracked(dataTracked: TrackedAttrs[] | null, changeIdToExclude: string): TrackedAttrs[] | null;