/** @typedef {'trackInsert'|'trackDelete'|'trackFormat'} TrackedMarkName */ /** * Canonical semantic types stored on marks. * * Internal graph values use these canonical v2-style strings. The public * document-api `TrackChangeType` union remains legacy `insert | delete | * format` until the contract is widened (closed product decision * 2026-05-21). * * @readonly */ export const CanonicalChangeType: Readonly<{ Insertion: "insertion"; Deletion: "deletion"; Replacement: "replacement"; Formatting: "formatting"; Structural: "structural"; }>; /** * Derived `subtype` values for v1 text scope. * * @readonly */ export const ChangeSubtype: Readonly<{ TextInsertion: "text-insertion"; TextDeletion: "text-deletion"; TextReplacement: "text-replacement"; RunFormatting: "run-formatting"; TableInsert: "table-insert"; TableDelete: "table-delete"; }>; /** * Derived side values for v1 text-overlap scope. * * @readonly */ export const SegmentSide: Readonly<{ Inserted: "inserted"; Deleted: "deleted"; Formatting: "formatting"; }>; export function sideFromMarkName(markName: string): "inserted" | "deleted" | "formatting" | null; export function subtypeFromChangeType(changeType: string): string | null; export function deterministicJson(value: any): string; export function canonicalizeSourceIds(value: any): Record; export function readTrackedAttrs(markOrAttrs: { attrs?: Record; type?: { name?: string; }; } | Record, markName?: string): NormalizedTrackedAttrs; export function normalizedAttrsEqual(a: NormalizedTrackedAttrs, b: NormalizedTrackedAttrs): boolean; export function serializeSourceIds(sourceIds: Record): string; export type TrackedMarkName = "trackInsert" | "trackDelete" | "trackFormat"; export type NormalizedTrackedAttrs = { /** * Active logical tracked-change id. */ id: string; /** * Defaults to `id` for unsplit changes. */ revisionGroupId: string; /** * Retired id this fragment descends from. */ splitFromId: string; /** * Canonical type. */ changeType: string; /** * Logical replacement group id. */ replacementGroupId: string; /** * Stable side id within a replacement. */ replacementSideId: string; /** * Logical parent change id, or ''. */ overlapParentId: string; /** * Canonical sourceIds object. */ sourceIds: Record; /** * Legacy raw Word `w:id` value or ''. */ sourceId: string; /** * Imported author provenance. */ importedAuthor: string; /** * Optional import origin. */ origin: string; /** * Display name. */ author: string; /** * Stable actor id. */ authorId: string; /** * Author email (not lowercased here). */ authorEmail: string; /** * Author image url/value. */ authorImage: string; /** * Created/modified ISO date. */ date: string; /** * One of trackInsert/trackDelete/trackFormat. */ markType: string; /** * Derived side. */ side: string; /** * Derived subtype. */ subtype: string; /** * Persisted changeType attr verbatim, or ''. */ explicitChangeType: string; /** * Was any persisted review attr explicit? */ hasReviewMetadata: boolean; }; //# sourceMappingURL=mark-metadata.d.ts.map