import { type Editor, Mark } from '@tiptap/core'; import { type Mark as ProseMirrorMark, type Node as ProseMirrorNode, Slice } from '@tiptap/pm/model'; import type { WorkDocumentComment, WorkDocumentCommentReply, WorkDocumentContent } from './work-types'; export interface WorkDocumentCommentAnchor { id: string; from: number; to: number; anchorText: string; } export interface WorkDocumentCommentView extends WorkDocumentComment { from: number | null; to: number | null; anchorText: string; detached: boolean; } export interface WorkDocumentCommentRange { from: number; to: number; } export interface InsertDocumentCommentOptions { id: string; range?: WorkDocumentCommentRange; } interface DocumentCommentOptions { getContent: () => WorkDocumentContent | null; onContentChange: (content: WorkDocumentContent) => void; } declare module '@tiptap/core' { interface Commands { documentComment: { addDocumentCommentReply: (id: string, reply: WorkDocumentCommentReply) => ReturnType; deleteDocumentComment: (id: string) => ReturnType; showDocumentCommentDraft: (range: WorkDocumentCommentRange) => ReturnType; clearDocumentCommentDraft: () => ReturnType; insertDocumentComment: (options: InsertDocumentCommentOptions) => ReturnType; insertDocumentCommentThread: (comment: WorkDocumentComment, range?: WorkDocumentCommentRange) => ReturnType; removeDocumentComment: (id: string) => ReturnType; toggleDocumentCommentResolved: (id: string) => ReturnType; }; } } export declare const DocumentComment: Mark; export declare function canInsertDocumentComment(editor: Editor, range?: WorkDocumentCommentRange): boolean; export declare function documentCommentDraftRange(editor: Editor): WorkDocumentCommentRange | null; export declare function collectDocumentCommentAnchors(document: ProseMirrorNode): WorkDocumentCommentAnchor[]; export declare function documentCommentViews(comments: readonly WorkDocumentComment[], anchors: readonly WorkDocumentCommentAnchor[]): WorkDocumentCommentView[]; export declare function retainAnchoredDocumentComments(comments: readonly WorkDocumentComment[], anchors: readonly WorkDocumentCommentAnchor[], retainedIds?: ReadonlySet): WorkDocumentComment[]; export declare function appendDocumentCommentReply(comments: readonly WorkDocumentComment[], id: string, reply: WorkDocumentCommentReply): WorkDocumentComment[]; export declare function toggleDocumentCommentResolved(comments: readonly WorkDocumentComment[], id: string): WorkDocumentComment[]; export declare function removeDocumentCommentRecord(comments: readonly WorkDocumentComment[], id: string): WorkDocumentComment[]; export declare function stripDocumentCommentsFromSlice(slice: Slice, type: ProseMirrorMark['type']): Slice; export {};