import { Copy, OnUpdate, Parent, ToScriptString, ToString } from "./FieldSymbols"; import { RefField } from "./RefField"; export abstract class ObjectField { public [OnUpdate]?: (diff?: any) => void; public [Parent]?: RefField | ObjectField; abstract [Copy](): ObjectField; abstract [ToScriptString](): string; abstract [ToString](): string; } export namespace ObjectField { export function MakeCopy(field: T) { return field?.[Copy](); } }