import AttachmentKey from './AttachmentKey.ts';
import AttachmentSchemaVersion from './AttachmentSchemaVersion.ts';
import EdgeRecord from './EdgeRecord.ts';
import NodeRecord from './NodeRecord.ts';
import { type PropValue } from '../types/PropValue.ts';
export type AttachmentOwnerRecord = NodeRecord | EdgeRecord;
export type AttachmentRecordFields = {
    readonly owner: AttachmentOwnerRecord;
    readonly key: AttachmentKey;
    readonly value: PropValue;
    readonly schemaVersion: AttachmentSchemaVersion;
};
/** Runtime-backed graph attachment slot and payload record. */
export default class AttachmentRecord {
    readonly owner: AttachmentOwnerRecord;
    readonly key: AttachmentKey;
    readonly value: PropValue;
    readonly schemaVersion: AttachmentSchemaVersion;
    constructor(fields: AttachmentRecordFields);
    /** Returns true when this attachment is owned by a node record. */
    isNodeAttachment(): boolean;
    /** Returns true when this attachment is owned by an edge record. */
    isEdgeAttachment(): boolean;
}
