import { NotifyChangeType, POJO } from './common'; import AugmentedObjectManager, { AugmentedType } from './manager'; import { Element, CollectionElement } from './element'; import PackedBuffer from '../thunk/packed'; declare class MyType implements AugmentedType { readonly name = "map"; isNativeTypeCompatible(x: unknown): x is any; createFromExisting(mgr: AugmentedObjectManager, ser: PackedBuffer | ObjectElement): ObjectElement; createFromNative(mgr: AugmentedObjectManager, x: any): ObjectElement; } declare const MY_TYPE: MyType; export default MY_TYPE; /** * An element that represents a JavaScript object, but augmented with the ability to synchronize. */ export declare class ObjectElement extends CollectionElement { readonly fields: Map; /** * Cached Proxy object, to make this element look like a POJO. */ protected readonly pojoProxy: POJO; constructor(mgr: AugmentedObjectManager, ser?: PackedBuffer | ObjectElement); toPackedBuffer(buf: PackedBuffer): void; get type(): AugmentedType; toStateString(depth?: number): string; toString(): string; get string(): string; get object(): ObjectElement; valueOf(): POJO; getField(f: string): Element | undefined; setField(f: string, x: unknown): void; setFieldElement(f: string, el: Element, type: NotifyChangeType): void; /** * Deletes a field. Update the obs if this is a local intention; do not if this is synchronized from somewhere else. */ deleteField(f: string, type: NotifyChangeType): void; /** * Deletes all keys in the map. */ clear(): void; hasField(f: string): boolean; get size(): number; /** * Unsorted keys in this object. */ keys(): Iterable; get children(): Iterable; /** * key/value pairs, sorted by keys. */ get sortedEntries(): [string, Element][]; set(x: unknown): boolean; synchronize(src: this): void; }