/**
 * ConflictEffectPayload — runtime-backed effect identity for conflict hashing.
 *
 * @module domain/services/strand/ConflictEffectPayload
 */
import type ConflictTarget from '../../types/conflict/ConflictTarget.ts';
import type { HashablePayload } from '../../types/conflict/HashablePayload.ts';
import { type CanonicalOpBlob } from './CanonicalConflictOp.ts';
type ConflictEffectPayloadFields = {
    readonly dot?: HashablePayload;
    readonly observedDots?: readonly string[];
    readonly value?: HashablePayload;
    readonly oid?: HashablePayload;
};
export declare function normalizeNoteCodes(noteCodes: string[]): string[];
export declare function normalizeObservedDots(observedDots: Iterable<string> | null | undefined): string[];
export default class ConflictEffectPayload {
    readonly dot?: HashablePayload;
    readonly observedDots?: readonly string[];
    readonly value?: HashablePayload;
    readonly oid?: HashablePayload;
    constructor(fields: ConflictEffectPayloadFields);
    static forOp(canonOp: CanonicalOpBlob | null, receiptOpType?: string): ConflictEffectPayload | null;
    private static forReceipt;
    private static forStructuralReceipt;
    private static forValueReceipt;
    private static forAddReceipt;
    private static forRemoveReceipt;
    private static forPropertyReceipt;
    private static forBlobReceipt;
}
export declare class ConflictEffectEnvelope {
    readonly targetKind: string;
    readonly targetDigest: string;
    readonly opType: string;
    readonly payload: ConflictEffectPayload;
    constructor({ target, opType, payload }: {
        readonly target: ConflictTarget;
        readonly opType: string;
        readonly payload: ConflictEffectPayload;
    });
}
export declare function effectKey(target: ConflictTarget, effectDigest: string): string;
export {};
