import type { Node as ProseMirrorNode } from '@tiptap/pm/model'; import { type WorkDocumentChange, type WorkDocumentChangeKind } from './work-document-changes'; import { type WorkDocumentCommentAnchor } from './work-document-comments'; import type { WorkDocumentComment } from './work-types'; export type WorkDocumentReviewKind = 'comment' | WorkDocumentChangeKind; export type WorkDocumentReviewConflictReason = 'kind-changed' | 'record-removed' | 'removed' | 'text-changed'; export interface WorkDocumentReviewConflict { readonly id: string; readonly kind: WorkDocumentReviewKind; readonly reason: WorkDocumentReviewConflictReason; readonly previousText: string; readonly nextKind?: WorkDocumentChangeKind; readonly nextText?: string; } export interface WorkDocumentReviewConflictEvent { readonly artifactId?: string; readonly conflicts: readonly WorkDocumentReviewConflict[]; } export interface WorkDocumentReviewSnapshot { comments: readonly WorkDocumentCommentAnchor[]; changes: readonly WorkDocumentChange[]; } export interface ReconcileDocumentReviewConflictsOptions { active: readonly WorkDocumentReviewConflict[]; before: WorkDocumentReviewSnapshot; after: WorkDocumentReviewSnapshot; comments: readonly WorkDocumentComment[]; } export interface ReconciledDocumentReviewConflicts { active: WorkDocumentReviewConflict[]; detected: WorkDocumentReviewConflict[]; } export declare function collectDocumentReviewSnapshot(document: ProseMirrorNode): WorkDocumentReviewSnapshot; export declare function reconcileDocumentReviewConflicts({ active, before, after, comments, }: ReconcileDocumentReviewConflictsOptions): ReconciledDocumentReviewConflicts; export declare function documentReviewConflictKey(conflict: WorkDocumentReviewConflict): string;