/**
 * ConflictAnchor — runtime-backed identity coordinate for an operation in a patch.
 *
 * Identifies a specific operation within the conflict analysis pipeline by its
 * patch SHA, writer ID, lamport clock, and operation index. Optional receipt
 * fields track the receipt-time coordinates when the operation was applied.
 *
 * @module domain/types/conflict/ConflictAnchor
 */
/**
 * A runtime-backed identity coordinate for a single operation within a patch.
 *
 * Instances are frozen on construction. All invariants are validated eagerly.
 */
export default class ConflictAnchor {
    readonly patchSha: string;
    readonly writerId: string;
    readonly lamport: number;
    readonly opIndex: number;
    readonly receiptPatchSha: string | undefined;
    readonly receiptLamport: number | undefined;
    readonly receiptOpIndex: number | undefined;
    /**
     * Creates a new ConflictAnchor with validated fields.
     */
    constructor({ patchSha, writerId, lamport, opIndex, receiptPatchSha, receiptLamport, receiptOpIndex }: {
        patchSha: string;
        writerId: string;
        lamport: number;
        opIndex: number;
        receiptPatchSha?: string;
        receiptLamport?: number;
        receiptOpIndex?: number;
    });
    /**
     * Serializes this anchor into a deterministic padded string for sorting and hashing.
     *
     * Format: `writerId:lamport(16-padded):patchSha:opIndex(8-padded)`
     */
    toString(): string;
    /**
     * Compares two ConflictAnchors using their deterministic string representations.
     */
    static compare(a: ConflictAnchor, b: ConflictAnchor): number;
    /**
     * Creates a ConflictAnchor from an OpRecord, using the record's patch coordinates
     * and mapping receiptPatchSha/receiptLamport from the same patch.
     */
    static fromRecord(record: {
        patchSha: string;
        writerId: string;
        lamport: number;
        opIndex: number;
        receiptOpIndex: number;
    }): ConflictAnchor;
    /**
     * Creates a ConflictAnchor from a PatchFrame for diagnostic/traversal output.
     */
    static fromFrame(frame: {
        sha: string;
        patch: {
            writer: string;
            lamport: number;
        };
    }): ConflictAnchor;
}
