import { binding } from "./binding"; import type { RealmObject } from "./Object"; export type ObjectChangeSet = { /** * Is `true` if the object has been deleted. */ deleted: boolean; /** * An array of properties that have changed their value. */ changedProperties: (keyof T)[]; }; export type ObjectChangeCallback = ( /** * The object that changed. */ object: RealmObject & T, /** * A dictionary with information about the changes. */ changes: ObjectChangeSet) => void; /** @internal */ export declare class ObjectListeners { private realm; private object; /** * Storage for the memoized, lazily created object notifier. */ private internal; constructor(realm: binding.Realm, object: RealmObject); private properties; private listeners; /** * A memoized, lazily created object notifier. */ private get notifier(); addListener(callback: ObjectChangeCallback, keyPaths: undefined | string[]): void; removeListener(callback: ObjectChangeCallback): void; removeAllListeners(): void; private mapKeyPaths; }