import LegacyNodePropertyKey from './LegacyNodePropertyKey.ts';
import LegacyPropertyValue from './LegacyPropertyValue.ts';
import NodeRecord from './NodeRecord.ts';
import type { PropValue } from '../types/PropValue.ts';
export type NodePropertyWriteIntentFields = {
    readonly owner: NodeRecord;
    readonly key: LegacyNodePropertyKey;
    readonly value: LegacyPropertyValue;
};
/** Runtime-backed intent for writing one legacy-compatible node property. */
export default class NodePropertyWriteIntent {
    readonly owner: NodeRecord;
    readonly key: LegacyNodePropertyKey;
    readonly value: LegacyPropertyValue;
    constructor(fields: NodePropertyWriteIntentFields);
    /** Builds a write intent from the current public node-property API fields. */
    static fromLegacyProperty(nodeId: string, key: string, value: PropValue): NodePropertyWriteIntent;
    /** Returns the current legacy node id target. */
    nodeId(): string;
    /** Returns the current legacy property key target. */
    propertyKey(): string;
    /** Returns a defensive copy of the property value. */
    propertyValue(): PropValue;
}
