/**
 * ConflictTargetIdentityModels — runtime-backed conflict target identities.
 *
 * @module domain/services/strand/ConflictTargetIdentityModels
 */
type TargetIdentityKind = 'node' | 'edge' | 'node_property' | 'edge_property';
export declare class NodeConflictTargetIdentity {
    readonly targetKind: TargetIdentityKind;
    readonly entityId: string;
    constructor(entityId: string);
}
export declare class EdgeConflictTargetIdentity {
    readonly targetKind: TargetIdentityKind;
    readonly from: string;
    readonly to: string;
    readonly label: string;
    readonly edgeKey: string;
    constructor({ from, to, label, edgeKey }: {
        readonly from: string;
        readonly to: string;
        readonly label: string;
        readonly edgeKey: string;
    });
    static fromParts(from: string, to: string, label: string): EdgeConflictTargetIdentity;
    static fromReceiptTarget(receiptTarget: string): EdgeConflictTargetIdentity | null;
    static fromOptionalParts({ from, to, label, edgeKey }: {
        readonly from: string | null;
        readonly to: string | null;
        readonly label: string | null;
        readonly edgeKey: string;
    }): EdgeConflictTargetIdentity | null;
}
export declare class NodePropertyConflictTargetIdentity {
    readonly targetKind: TargetIdentityKind;
    readonly entityId: string;
    readonly propertyKey: string;
    constructor(entityId: string, propertyKey: string);
}
export declare class EdgePropertyConflictTargetIdentity {
    readonly targetKind: TargetIdentityKind;
    readonly from: string;
    readonly to: string;
    readonly label: string;
    readonly edgeKey: string;
    readonly propertyKey: string;
    constructor(edgeIdentity: EdgeConflictTargetIdentity, propertyKey: string);
}
export type ConflictTargetIdentity = NodeConflictTargetIdentity | EdgeConflictTargetIdentity | NodePropertyConflictTargetIdentity | EdgePropertyConflictTargetIdentity;
export {};
