/**
 * OpRecord — runtime-backed analyzed operation within a patch frame.
 *
 * Carries the target identity, receipt outcome, effect digest, event ID,
 * and causal context for a single operation after analysis.
 *
 * @module domain/services/strand/OpRecord
 */
import ConflictTarget from '../../types/conflict/ConflictTarget.ts';
import type { EventId } from '../../utils/EventId.ts';
type ReceiptResult = 'applied' | 'superseded' | 'redundant';
type OpRecordFields = {
    target: ConflictTarget;
    patchSha: string;
    writerId: string;
    lamport: number;
    opIndex: number;
    receiptOpIndex: number;
    opType: string;
    receiptResult: ReceiptResult;
    receiptReason?: string;
    effectDigest: string;
    eventId: EventId;
    context: Map<string, number>;
    patchOrder: number;
};
/**
 * A runtime-backed record of a single analyzed operation within a patch frame.
 *
 * Instances are frozen on construction.
 */
export default class OpRecord {
    readonly target: ConflictTarget;
    readonly targetKey: string;
    readonly patchSha: string;
    readonly writerId: string;
    readonly lamport: number;
    readonly opIndex: number;
    readonly receiptOpIndex: number;
    readonly opType: string;
    readonly receiptResult: string;
    readonly receiptReason: string | undefined;
    readonly effectDigest: string;
    readonly eventId: EventId;
    readonly context: Map<string, number>;
    readonly patchOrder: number;
    constructor({ target, patchSha, writerId, lamport, opIndex, receiptOpIndex, opType, receiptResult, receiptReason, effectDigest, eventId, context, patchOrder, }: OpRecordFields);
    /**
     * Checks whether this record refers to the same patch and operation index as another.
     */
    equals(other: OpRecord): boolean;
    /**
     * Checks whether this record is a property-set type (NodePropSet or EdgePropSet).
     */
    isPropertySet(): boolean;
}
export {};
