/**
 * ConflictOpAnchor — runtime-backed anchor for malformed legacy ops
 * that conflict analysis still needs to diagnose.
 *
 * @module domain/services/strand/ConflictOpAnchor
 */
import type { HashablePayload } from '../../types/conflict/HashablePayload.ts';
import type { PatchOp } from '../../types/ops/unions.ts';
type ConflictOpAnchorFields = {
    readonly type: string;
    readonly receiptName: string;
    readonly node: string | null;
    readonly from: string | null;
    readonly to: string | null;
    readonly label: string | null;
    readonly key: string | null;
    readonly dot: HashablePayload;
    readonly observedDots: Iterable<string> | null;
    readonly value: HashablePayload;
    readonly oid: HashablePayload;
};
export declare function receiptNameForRawType(opType: string): string | null;
/**
 * Runtime-backed anchor for known but structurally incomplete legacy
 * op records. It preserves diagnostic behavior without reintroducing
 * erased shape aliases.
 */
export default class ConflictOpAnchor {
    readonly type: string;
    readonly receiptName: string;
    readonly node: string | null;
    readonly from: string | null;
    readonly to: string | null;
    readonly label: string | null;
    readonly key: string | null;
    readonly dot: HashablePayload;
    readonly observedDots: Iterable<string> | null;
    readonly value: HashablePayload;
    readonly oid: HashablePayload;
    constructor(fields: ConflictOpAnchorFields);
    static from(rawOp: PatchOp): ConflictOpAnchor | null;
}
export {};
