import EdgeRecord, { type LegacyEdgeFields } from './EdgeRecord.ts';
import LegacyEdgePropertyKey from './LegacyEdgePropertyKey.ts';
import LegacyPropertyValue from './LegacyPropertyValue.ts';
import type { PropValue } from '../types/PropValue.ts';
export type EdgePropertyWriteTarget = LegacyEdgeFields;
export type EdgePropertyWriteIntentFields = {
    readonly owner: EdgeRecord;
    readonly key: LegacyEdgePropertyKey;
    readonly value: LegacyPropertyValue;
};
export type LegacyEdgePropertyWriteFields = EdgePropertyWriteTarget & {
    readonly key: string;
    readonly value: PropValue;
};
/** Runtime-backed intent for writing one legacy-compatible edge property. */
export default class EdgePropertyWriteIntent {
    readonly owner: EdgeRecord;
    readonly key: LegacyEdgePropertyKey;
    readonly value: LegacyPropertyValue;
    constructor(fields: EdgePropertyWriteIntentFields);
    /** Builds a write intent from the current public edge-property API fields. */
    static fromLegacyProperty(fields: LegacyEdgePropertyWriteFields): EdgePropertyWriteIntent;
    /** Returns the current legacy edge target. */
    edgeTarget(): EdgePropertyWriteTarget;
    /** Returns the current legacy property key target. */
    propertyKey(): string;
    /** Returns a defensive copy of the property value. */
    propertyValue(): PropValue;
}
