import { AffectedRef, AffectedRefRemapping, CommentAddress, TrackedChangeAddress } from '../../../document-api/src/index.js'; export type ReviewTargetDiagnosticCode = 'review-target-unsupported' | 'review-target-stale-layout' | 'review-target-story-mismatch' | 'review-target-ambiguous-overlap'; export type ReviewTargetDiagnostic = { code: ReviewTargetDiagnosticCode; detail?: string; }; export type ReviewTargetEntityKind = 'comment' | 'trackedChange' | 'contentControl' | 'placeholder'; export type ReviewTargetHitCandidate = { type: ReviewTargetEntityKind; id: string; layoutEpoch: number; storyKey?: string; placeholderReason?: string; scope?: 'block' | 'inline'; }; export type ReviewTargetPointResult = { status: 'resolved'; candidates: ReviewTargetHitCandidate[]; target: CommentAddress | TrackedChangeAddress; diagnostics?: ReviewTargetDiagnostic[]; } | { status: 'no-target' | 'rejected'; candidates: ReviewTargetHitCandidate[]; diagnostics?: ReviewTargetDiagnostic[]; }; export type ResolveReviewTargetAtPointInput = { host: Element; clientX: number; clientY: number; currentLayoutEpoch?: number; }; export type ResolveReviewTargetReverseInput = { host: Element; target: CommentAddress | TrackedChangeAddress; resolveParentCommentId?: (commentId: string) => string | null | undefined; }; export type ReviewTargetReverseLookupResult = { status: 'resolved'; target: CommentAddress | TrackedChangeAddress; elements: HTMLElement[]; storyKey: string; } | { status: 'rejected'; target: CommentAddress | TrackedChangeAddress; elements: HTMLElement[]; diagnostics: ReviewTargetDiagnostic[]; }; export type ReviewTargetReceiptMatch = { kind: 'preserved'; } | { kind: 'invalidated'; matchedRef: AffectedRef; } | { kind: 'remapped'; from: AffectedRef; to: CommentAddress | TrackedChangeAddress; }; export type MatchReviewTargetAgainstReceiptInput = { target: CommentAddress | TrackedChangeAddress; invalidatedRefs?: readonly AffectedRef[]; remappedRefs?: readonly AffectedRefRemapping[]; }; export declare const REVIEW_TARGET_PAINTED_ATTRS: { readonly COMMENT_IDS: "data-comment-ids"; readonly TRACK_CHANGE_ID: "data-track-change-id"; readonly STORY_KEY: "data-story-key"; readonly LAYOUT_EPOCH: "data-layout-epoch"; readonly SDT_ID: "data-sdt-id"; readonly SDT_TYPE: "data-sdt-type"; readonly SDT_SCOPE: "data-sdt-scope"; readonly REVIEW_TARGET_KIND: "data-review-target-kind"; readonly PLACEHOLDER_ID: "data-placeholder-id"; readonly PLACEHOLDER_REASON: "data-placeholder-reason"; }; export declare function readReviewLayoutEpochFromChain(start: Element | null, host?: Element): number | null; export declare function readCurrentReviewLayoutEpoch(host: Element): number | null; export declare function collectReviewTargetCandidatesFromChain(start: Element | null, host: Element): ReviewTargetHitCandidate[]; export declare function resolveReviewTargetAtPoint(input: ResolveReviewTargetAtPointInput): ReviewTargetPointResult; export declare function resolveReviewTargetReverse(input: ResolveReviewTargetReverseInput): ReviewTargetReverseLookupResult; export declare function matchReviewTargetAgainstReceipt(input: MatchReviewTargetAgainstReceiptInput): ReviewTargetReceiptMatch; //# sourceMappingURL=review-target.d.ts.map