export type CommentIdentityRow = Record; type PositionBounds = { left?: number; right?: number; top?: number; bottom?: number; }; export type CommentPositionEntry = { key?: unknown; threadId?: unknown; kind?: string; storyKey?: string; pageIndex?: number | null; start?: number; end?: number; bounds?: PositionBounds | null; } | null; export type CommentPositions = Record; type PositionMatch = { key: string; entry: CommentPositionEntry; } | { key: null; entry: null; }; type CommentIdentitySources = { getComments: () => CommentIdentityRow[]; getReviewDirectory: () => CommentIdentityRow[]; getPositions: () => CommentPositions | null | undefined; }; type CommentReference = CommentIdentityRow | string | number | null | undefined; export declare const trackedChangeThreadParentIdForComment: (comment: CommentIdentityRow | null | undefined) => unknown; export declare const createCommentIdentity: ({ getComments, getReviewDirectory, getPositions }: CommentIdentitySources) => { getComment: (id: unknown) => CommentIdentityRow | null; getThreadParent: (comment: CommentIdentityRow | null | undefined) => CommentIdentityRow | null | undefined; getCommentPositionKey: (commentOrId: CommentIdentityRow | string | null | undefined) => unknown; getCommentAliasIds: (commentOrId: CommentReference) => string[]; resolveCommentPositionEntry: (commentOrId: CommentReference, preferredId?: unknown) => PositionMatch; }; export {};