import PackedBuffer from '../thunk/packed'; import AugmentedObjectManager from './manager'; import { ObjectElement } from './object'; /** * An element represented by an ObjectElement, using that to hold and synchronize state, * with a generic for the JavaScript object pattern used by the subclass. * * Subclasses should override set() and valueOf(), besides also implementing the abstract functions. */ export declare abstract class CompositeElement extends ObjectElement { constructor(mgr: AugmentedObjectManager, ser?: PackedBuffer | CompositeElement); /** * Subclass can use this to access the correctly-typed underlying object. */ protected get data(): T; get string(): string; get object(): any; /** * Called by the constructor when a new version is created, without unserialization. */ protected abstract initialize(): void; }