UNPKG

@react-native-ohos/realm

Version:

Realm by MongoDB is an offline-first mobile database: an alternative to SQLite and key-value stores

631 lines (630 loc) 32.5 kB
import { binding } from "./binding"; import type { Unmanaged } from "./Unmanaged"; import { type AnyRealmObject, RealmObject } from "./Object"; import { type AnyResults, Results } from "./Results"; import { type CanonicalObjectSchema, type Constructor, type DefaultObject, type ObjectSchema, type PresentationPropertyTypeName, type RealmObjectConstructor } from "./schema"; import type { ClassHelpers } from "./ClassHelpers"; import { type Configuration } from "./Configuration"; import { type LogCategory, type LogLevel, type LoggerCallback1, type LoggerCallback2 } from "./Logger"; import { type AnyList } from "./List"; import { ProgressRealmPromise } from "./ProgressRealmPromise"; import { UpdateMode } from "./Object"; import { type RealmListenerCallback } from "./RealmListeners"; import { SubscriptionSet } from "./app-services/SubscriptionSet"; import { SyncSession } from "./app-services/SyncSession"; type RealmSchemaExtra = Record<string, ObjectSchemaExtra | undefined>; type ObjectSchemaExtra = { constructor?: RealmObjectConstructor; defaults: Record<string, unknown>; presentations: Record<string, PresentationPropertyTypeName | undefined>; }; export type RealmEventName = "change" | "schema" | "beforenotify"; /** @internal */ type InternalConfig = { internal?: binding.Realm; schemaExtras?: RealmSchemaExtra; realmExists?: boolean; }; /** * The Realm database. */ export declare class Realm { static defaultPath: string; private static internals; /** * Sets the log level. * @param level - The log level to be used by the logger. The default value is `info`. * @param category - The category to set the log level for. If omitted, the log level is set for all categories (`"Realm"`). * @note The log level can be changed during the lifetime of the application. * @since 12.0.0 * @example * Realm.setLogLevel("all"); */ static setLogLevel(level: LogLevel, category?: LogCategory): void; /** * Sets the logger callback. * @param loggerCallback - The callback invoked by the logger. The default callback uses `console.log`, `console.warn` and `console.error`, depending on the level of the message. * @note The logger callback needs to be set up before opening the first Realm. * @since 12.0.0 * @example * Realm.setLogger(({ category, level, message }) => { * console.log(`[${category} - ${level}] ${message}`); * }); */ static setLogger(loggerCallback: LoggerCallback2): void; /** * Sets the logger callback. * @param loggerCallback - The callback invoked by the logger. The default callback uses `console.log`, `console.warn` and `console.error`, depending on the level of the message. * @note The logger callback needs to be set up before opening the first Realm. * @since 12.0.0 * @deprecated Pass a callback taking a single object argument instead. * @example * Realm.setLogger((level, message) => { * console.log(`[${level}] ${message}`); * }); */ static setLogger(loggerCallback: LoggerCallback1): void; /** * Closes all Realms, cancels all pending {@link Realm.open} calls, clears internal caches, resets the logger and collects garbage. * Call this method to free up the event loop and allow Node.js to perform a graceful exit. */ static shutdown(): void; /** * Clears the state by closing and deleting any Realm in the default directory and logout all users. * NOTE: Not a part of the public API and it's primarily used from the library's tests. * @private */ static clearTestState(): void; /** * Delete the Realm file for the given configuration. * @param config - The configuration for the Realm being deleted. * @throws An {@link Error} if anything in the provided {@link config} is invalid. */ static deleteFile(config: Configuration): void; /** * Checks if the Realm already exists on disk. * @param path - The path for a Realm. * @throws An {@link Error} if anything in the provided {@link path} is invalid. * @returns `true` if the Realm exists on the device, `false` if not. */ static exists(path: string): boolean; /** * Checks if the Realm already exists on disk. * @param config - The configuration of a Realm. * @throws An {@link Error} if anything in the provided {@link config} is invalid. * @returns `true` if the Realm exists on the device, `false` if not. */ static exists(config: Configuration): boolean; /** * Open the default Realm asynchronously with a promise. * @returns A promise that will be resolved with the Realm instance when it's available. */ static open(): ProgressRealmPromise; /** * Open a Realm asynchronously with a promise. If the Realm is synced, it will be fully * synchronized before it is available. * @param path - The path for the Realm. * @returns A promise that will be resolved with the Realm instance when it's available. */ static open(path: string): ProgressRealmPromise; /** * Open a Realm asynchronously with a promise. If the Realm is synced, it will be fully * synchronized before it is available. * In the case of query-based sync, {@link Configuration.schema} is required. An exception will be * thrown if {@link Configuration.schema} is not defined. * @param config - The configuration for the Realm. * @returns A promise that will be resolved with the Realm instance when it's available. * @throws An {@link Error} if anything in the provided {@link config} is invalid. */ static open(config: Configuration): ProgressRealmPromise; /** * Get the current schema version of the Realm at the given path. * @param path - The path to the file where the Realm database is stored. * @param encryptionKey - Required only when accessing encrypted Realms. * @throws An {@link Error} if passing an invalid or non-matching encryption key. * @returns Version of the schema as an integer, or `-1` if no Realm exists at {@link path}. * @since 0.11.0 */ static schemaVersion(path: string, encryptionKey?: ArrayBuffer | ArrayBufferView): number; /** * Creates a template object for a Realm model class where all optional fields are undefined * and all required fields have the default value for the given data type, either the value * set by the default property in the schema or the default value for the datatype if the schema * doesn't specify one, i.e. 0, false and "". * @param objectSchema - Schema describing the object that should be created. */ static createTemplateObject<T extends Record<string, unknown>>(objectSchema: ObjectSchema): T; /** * Copy any Realm files (i.e. `*.realm`) bundled with the application from the application * directory into the application's documents directory, so that they can be opened and used * by Realm. If the file already exists in the documents directory, it will not be * overwritten, so this can safely be called multiple times. * * This should be called before opening the Realm, in order to move the bundled Realm * files into a place where they can be written to. * @example * ``` * // Given a bundled file, example.realm, this will copy example.realm (and any other .realm files) * // from the app bundle into the app's documents directory. If the file already exists, it will * // not be overwritten, so it is safe to call this every time the app starts. * Realm.copyBundledRealmFiles(); * * const realm = await Realm.open({ * // This will open example.realm from the documents directory, with the bundled data in. * path: "example.realm" * }); * ``` * * This is only implemented for React Native. * @throws an {@link Error} If an I/O error occurred or method is not implemented. */ static copyBundledRealmFiles(): void; /** * TODO: Consider breaking this by ensuring a ".realm" suffix (coordinating with other SDK teams in the process) */ private static normalizePath; /** * @note When the path is relative and the config contains a sync object, Core will replace any existing file extension * or add the ".realm" suffix. */ private static determinePath; private static determineEncryptionKey; private static extractRealmSchemaExtras; /** @internal */ private static extractObjectSchemaExtras; /** @internal */ static transformConfig(config: Configuration): { schemaExtras: RealmSchemaExtra; bindingConfig: binding.RealmConfig_Relaxed; }; private static determineSchemaMode; private static wrapMigration; /** * The Realms's representation in the binding. * @internal */ readonly internal: binding.Realm; /** * The sync session if this is a synced Realm */ readonly syncSession: SyncSession | null; private schemaExtras; private classes; private changeListeners; private beforeNotifyListeners; private schemaListeners; /** @internal */ currentUpdateMode: UpdateMode | undefined; /** * Create a new {@link Realm} instance, at the default path. * @throws An {@link Error} when an incompatible synced Realm is opened. */ constructor(); /** * Create a new {@link Realm} instance at the provided {@link path}. * @param path - Required when first creating the Realm. * @throws An {@link Error} if the Realm cannot be opened at the provided {@link path}. * @throws An {@link Error} when an incompatible synced Realm is opened. */ constructor(path: string); /** * Create a new {@link Realm} instance using the provided {@link config}. If a Realm does not yet exist * at {@link Configuration.path | config.path} (or {@link Realm.defaultPath} if not provided), then this constructor * will create it with the provided {@link Configuration.schema | config.schema} (which is _required_ in this case). * Otherwise, the instance will access the existing Realm from the file at that path. * In this case, {@link Configuration.schema | config.schema} is _optional_ or not have changed, unless * {@link Configuration.schemaVersion | config.schemaVersion} is incremented, in which case the Realm will be automatically * migrated to use the new schema. * In the case of query-based sync, {@link Configuration.schema | config.schema} is required. An exception will be * thrown if {@link Configuration.schema | config.schema} is not defined. * @param config - Required when first creating the Realm. * @throws An {@link Error} if anything in the provided {@link config} is invalid. * @throws An {@link Error} when an incompatible synced Realm is opened. */ constructor(config: Configuration); /** @internal */ constructor(config: Configuration | null, internalConfig: InternalConfig); /** * Indicates if this Realm contains any objects. * @returns `true` if empty, `false` otherwise. * @readonly * @since 1.10.0 */ get isEmpty(): boolean; /** * The path to the file where this Realm is stored. * @returns A string containing the path to the file where this Realm is stored. * @readonly * @since 0.12.0 */ get path(): string; /** * Indicates if this Realm was opened as read-only. * @returns `true` if this Realm is read-only, `false` otherwise. * @readonly * @since 0.12.0 */ get isReadOnly(): boolean; /** * Indicates if this Realm was opened in-memory. * @returns `true` if this Realm is in-memory, `false` otherwise. * @readonly */ get isInMemory(): boolean; /** * A normalized representation of the schema provided in the {@link Configuration} when this Realm was constructed. * @returns An array of {@link CanonicalObjectSchema} describing all objects in this Realm. * @readonly * @since 0.12.0 */ get schema(): CanonicalObjectSchema[]; /** * The current schema version of the Realm. * @returns The schema version of this Realm, as a `number`. * @readonly * @since 0.12.0 */ get schemaVersion(): number; /** * Indicates if this Realm is in a write transaction. * @returns `true` if in a write transaction, `false` otherwise. * @readonly * @since 1.10.3 */ get isInTransaction(): boolean; /** * Indicates if this Realm is in migration. * @returns `true` if in migration, `false` otherwise * @readonly * @since 12.3.0 */ get isInMigration(): boolean; /** * Indicates if this Realm has been closed. * @returns `true` if closed, `false` otherwise. * @readonly * @since 2.1.0 */ get isClosed(): boolean; /** * The latest set of flexible sync subscriptions. * @returns A {@link SubscriptionSet} object. * @throws An {@link Error} if flexible sync is not enabled for this app. */ get subscriptions(): SubscriptionSet; /** * Closes this Realm so it may be re-opened with a newer schema version. * All objects and collections from this Realm are no longer valid after calling this method. * The method is idempotent. */ close(): void; /** * Create a new {@link RealmObject} of the given type and with the specified properties. For objects marked asymmetric, * `undefined` is returned. The API for asymmetric objects is subject to changes in the future. * @param type - The type of Realm object to create. * @param values - Property values for all required properties without a * default value. * @param mode Optional update mode. The default is `UpdateMode.Never`. * @returns A {@link RealmObject} or `undefined` if the object is asymmetric. */ create<T = DefaultObject>(type: string, values: Partial<T> | Partial<Unmanaged<T>>, mode?: UpdateMode.Never | UpdateMode.All | UpdateMode.Modified | boolean): RealmObject<T> & T; create<T extends AnyRealmObject>(type: Constructor<T>, values: Partial<T> | Partial<Unmanaged<T>>, mode?: UpdateMode.Never | UpdateMode.All | UpdateMode.Modified | boolean): T; /** * Deletes the provided Realm object, or each one inside the provided collection. * @param subject - The Realm object to delete, or a collection containing multiple Realm objects to delete. */ delete(subject: AnyRealmObject | AnyRealmObject[] | AnyList | AnyResults | any): void; /** * Deletes a Realm model, including all of its objects. * If called outside a migration function, {@link schema} and {@link schemaVersion} are updated. * @param name - The model name. */ deleteModel(name: string): void; /** * **WARNING:** This will delete **all** objects in the Realm! */ deleteAll(): void; /** * Searches for a Realm object by its primary key. * @param type - The type of Realm object to search for. * @param primaryKey - The primary key value of the object to search for. * @throws An {@link Error} if type passed into this method is invalid, or if the object type did * not have a {@link primaryKey} specified in the schema, or if it was marked asymmetric. * @returns A {@link RealmObject} or `null` if no object is found. * @since 0.14.0 */ objectForPrimaryKey<T = DefaultObject>(type: string, primaryKey: T[keyof T]): (RealmObject<T> & T) | null; objectForPrimaryKey<T extends AnyRealmObject>(type: Constructor<T>, primaryKey: T[keyof T]): T | null; /** * Returns all objects of the given {@link type} in the Realm. * @param type - The type of Realm object to search for. * @param objectKey - The object key of the Realm object to search for. * @throws An {@link Error} if type passed into this method is invalid or if the type is marked embedded or asymmetric. * @returns A {@link RealmObject} or `undefined` if the object key is not found. * @internal */ _objectForObjectKey<T = DefaultObject>(type: string, objectKey: string): (RealmObject<T> & T) | undefined; _objectForObjectKey<T extends RealmObject>(type: Constructor<T>, objectKey: string): T | undefined; /** * Returns all objects of the given {@link type} in the Realm. * @param type - The type of Realm objects to retrieve. * @throws An {@link Error} if type passed into this method is invalid or if the type is marked embedded or asymmetric. * @returns Results that will live-update as objects are created, modified, and destroyed. */ objects<T = DefaultObject>(type: string): Results<RealmObject<T> & T>; objects<T extends AnyRealmObject = RealmObject & DefaultObject>(type: Constructor<T>): Results<T>; /** * Add a listener {@link callback} for the specified {@link eventName}. * @param eventName - The name of event that should cause the callback to be called. * @param callback - Function to be called when a change event occurs. * Each callback will only be called once per event, regardless of the number of times * it was added. * @throws An {@link Error} if an invalid event {@link eventName} is supplied, if Realm is closed or if {@link callback} is not a function. */ addListener(eventName: RealmEventName, callback: RealmListenerCallback): void; /** * Remove the listener {@link callback} for the specified event {@link eventName}. * @param eventName - The event name. * @param callback - Function that was previously added as a listener for this event through the {@link addListener} method. * @throws an {@link Error} If an invalid event {@link eventName} is supplied, if Realm is closed or if {@link callback} is not a function. */ removeListener(eventName: RealmEventName, callback: RealmListenerCallback): void; /** * Remove all event listeners (restricted to the event {@link eventName}, if provided). * @param eventName - The name of the event whose listeners should be removed. * @throws An {@link Error} when invalid event {@link eventName} is supplied. */ removeAllListeners(eventName?: RealmEventName): void; /** * Synchronously call the provided {@link callback} inside a write transaction. If an exception happens inside a transaction, * you’ll lose the changes in that transaction, but the Realm itself won’t be affected (or corrupted). * More precisely, {@link beginTransaction} and {@link commitTransaction} will be called * automatically. If any exception is thrown during the transaction {@link cancelTransaction} will * be called instead of {@link commitTransaction} and the exception will be re-thrown to the caller of {@link write}. * * Nested transactions (calling {@link write} within {@link write}) is not possible. * @param callback - Function to be called inside a write transaction. * @returns Returned value from the callback. */ write<T>(callback: () => T): T; /** * Initiate a write transaction. * * When doing a transaction, it is highly recommended to do error handling. * If you don't handle errors, your data might become inconsistent. Error handling * will often involve canceling the transaction. * @throws An {@link Error} if already in write transaction * @see {@link cancelTransaction} * @see {@link commitTransaction} * @example * realm.beginTransaction(); * try { * realm.create('Person', { name: 'Arthur Dent', origin: 'Earth' }); * realm.create('Person', { name: 'Ford Prefect', origin: 'Betelgeuse Five' }); * realm.commitTransaction(); * } catch (e) { * realm.cancelTransaction(); * throw e; * } */ beginTransaction(): void; /** * Commit a write transaction. * @see {@link beginTransaction} */ commitTransaction(): void; /** * Cancel a write transaction. * @see {@link beginTransaction} */ cancelTransaction(): void; /** * Replaces all string columns in this Realm with a string enumeration column and compacts the * database file. * * Cannot be called from a write transaction. * * Compaction will not occur if other {@link Realm} instances exist. * * While compaction is in progress, attempts by other threads or processes to open the database will * wait. * * Be warned that resource requirements for compaction is proportional to the amount of live data in * the database. Compaction works by writing the database contents to a temporary database file and * then replacing the database with the temporary one. * @returns `true` if compaction succeeds, `false` if not. */ compact(): boolean; /** * Writes a compacted copy of the Realm with the given configuration. * * The destination file cannot already exist. * All conversions between synced and non-synced Realms are supported, and will be * performed according to the {@link config} parameter, which describes the desired output. * * Note that if this method is called from within a write transaction, the current data is written, * not the data from the point when the previous write transaction was committed. * @param config - Realm configuration that describes the output realm. */ writeCopyTo(config: Configuration): void; /** * Update the schema of the Realm. * @param schema The schema which the Realm should be updated to use. * @internal */ _updateSchema(schema: ObjectSchema[]): void; /** @internal */ getClassHelpers<T>(arg: string | binding.TableKey | RealmObject<T> | Constructor<RealmObject<T>>): ClassHelpers; /** * Update subscriptions with the initial subscriptions if needed. * @param initialSubscriptions The initial subscriptions. * @param realmExists Whether the realm already exists. */ private handleInitialSubscriptions; } import * as ns from "./namespace"; import RealmItself = Realm; export declare namespace Realm { export import Realm = RealmItself; export import flags = ns.flags; export import Object = ns.RealmObject; export import App = ns.App; export import Auth = ns.Auth; export import BSON = ns.BSON; export import Types = ns.Types; export import Services = ns.Services; export import index = ns.index; export import mapTo = ns.mapTo; export import kmToRadians = ns.kmToRadians; export import miToRadians = ns.miToRadians; export import AnyCollection = ns.AnyCollection; export import AnyDictionary = ns.AnyDictionary; export import AnyList = ns.AnyList; export import AnyRealmObject = ns.AnyRealmObject; export import AnyResults = ns.AnyResults; export import AnySet = ns.AnySet; export import AnyUser = ns.AnyUser; export import ApiKey = ns.ApiKey; export import AppChangeCallback = ns.AppChangeCallback; export import AssertionError = ns.AssertionError; export import AppConfiguration = ns.AppConfiguration; export import AppServicesFunction = ns.AppServicesFunction; export import BaseConfiguration = ns.BaseConfiguration; export import BaseObjectSchema = ns.BaseObjectSchema; export import BaseSyncConfiguration = ns.BaseSyncConfiguration; export import CanonicalGeoPoint = ns.CanonicalGeoPoint; export import CanonicalGeoPolygon = ns.CanonicalGeoPolygon; export import CanonicalObjectSchema = ns.CanonicalObjectSchema; export import CanonicalPropertiesTypes = ns.CanonicalPropertiesTypes; export import CanonicalPropertySchema = ns.CanonicalPropertySchema; export import ClientResetAfterCallback = ns.ClientResetAfterCallback; export import ClientResetBeforeCallback = ns.ClientResetBeforeCallback; export import ClientResetConfig = ns.ClientResetConfig; export import ClientResetDiscardUnsyncedChangesConfiguration = ns.ClientResetDiscardUnsyncedChangesConfiguration; export import ClientResetFallbackCallback = ns.ClientResetFallbackCallback; export import ClientResetManualConfiguration = ns.ClientResetManualConfiguration; export import ClientResetMode = ns.ClientResetMode; export import ClientResetRecoverOrDiscardUnsyncedChangesConfiguration = ns.ClientResetRecoverOrDiscardUnsyncedChangesConfiguration; export import ClientResetRecoverUnsyncedChangesConfiguration = ns.ClientResetRecoverUnsyncedChangesConfiguration; export import Collection = ns.Collection; export import CollectionChangeCallback = ns.CollectionChangeCallback; export import CollectionChangeSet = ns.CollectionChangeSet; export import CollectionPropertyTypeName = ns.CollectionPropertyTypeName; export import CompensatingWriteError = ns.CompensatingWriteError; export import CompensatingWriteInfo = ns.CompensatingWriteInfo; export import Configuration = ns.Configuration; export import ConfigurationWithoutSync = ns.ConfigurationWithoutSync; export import ConfigurationWithSync = ns.ConfigurationWithSync; export import ConnectionNotificationCallback = ns.ConnectionNotificationCallback; export import ConnectionState = ns.ConnectionState; export import Counter = ns.Counter; export import Credentials = ns.Credentials; export import DefaultFunctionsFactory = ns.DefaultFunctionsFactory; export import DefaultUserProfileData = ns.DefaultUserProfileData; export import Dictionary = ns.Dictionary; export import DictionaryChangeCallback = ns.DictionaryChangeCallback; export import DictionaryChangeSet = ns.DictionaryChangeSet; export import ErrorCallback = ns.ErrorCallback; export import EstimateProgressNotificationCallback = ns.EstimateProgressNotificationCallback; export import FlexibleSyncConfiguration = ns.FlexibleSyncConfiguration; export import GeoBox = ns.GeoBox; export import GeoCircle = ns.GeoCircle; export import GeoPoint = ns.GeoPoint; export import GeoPolygon = ns.GeoPolygon; export import GeoPosition = ns.GeoPosition; export import IndexDecorator = ns.IndexDecorator; export import IndexedType = ns.IndexedType; export import InitialSubscriptions = ns.InitialSubscriptions; export import List = ns.List; export import LocalAppConfiguration = ns.LocalAppConfiguration; export import LogCategory = ns.LogCategory; export import LogEntry = ns.LogEntry; export import Logger = ns.Logger; export import LoggerCallback = ns.LoggerCallback; export import LoggerCallback1 = ns.LoggerCallback1; export import LoggerCallback2 = ns.LoggerCallback2; export import MapToDecorator = ns.MapToDecorator; export import Metadata = ns.Metadata; export import MetadataMode = ns.MetadataMode; export import MigrationCallback = ns.MigrationCallback; export import MigrationOptions = ns.MigrationOptions; export import Mixed = ns.Types.Mixed; export import MongoDB = ns.MongoDB; export import MongoDBService = ns.MongoDBService; export import NumericLogLevel = ns.NumericLogLevel; export import ObjectChangeCallback = ns.ObjectChangeCallback; export import ObjectChangeSet = ns.ObjectChangeSet; export import ObjectSchema = ns.ObjectSchema; export import ObjectType = ns.ObjectType; export import OpenRealmBehaviorConfiguration = ns.OpenRealmBehaviorConfiguration; export import OpenRealmBehaviorType = ns.OpenRealmBehaviorType; export import OpenRealmTimeOutBehavior = ns.OpenRealmTimeOutBehavior; export import OrderedCollection = ns.OrderedCollection; export import PartitionSyncConfiguration = ns.PartitionSyncConfiguration; export import PresentationPropertyTypeName = ns.PresentationPropertyTypeName; export import PrimaryKey = ns.PrimaryKey; export import PrimitivePropertyTypeName = ns.PrimitivePropertyTypeName; export import ProgressDirection = ns.ProgressDirection; export import ProgressMode = ns.ProgressMode; export import ProgressNotificationCallback = ns.ProgressNotificationCallback; export import ProgressRealmPromise = ns.ProgressRealmPromise; export import PropertiesTypes = ns.PropertiesTypes; export import PropertySchema = ns.PropertySchema; export import PropertySchemaCommon = ns.PropertySchemaCommon; export import PropertySchemaParseError = ns.PropertySchemaParseError; export import PropertySchemaShorthand = ns.PropertySchemaShorthand; export import PropertySchemaStrict = ns.PropertySchemaStrict; export import PropertyTypeName = ns.PropertyTypeName; export import ProviderType = ns.ProviderType; export import ProxyType = ns.ProxyType; export import RealmEvent = ns.RealmEvent; export import RealmEventName = ns.RealmEventName; export import RealmListenerCallback = ns.RealmListenerCallback; export import RealmObjectConstructor = ns.RealmObjectConstructor; export import RelationshipPropertyTypeName = ns.RelationshipPropertyTypeName; export import Results = ns.Results; export import SchemaParseError = ns.SchemaParseError; export import SecretApiKey = ns.SecretApiKey; export import SessionState = ns.SessionState; export import SessionStopPolicy = ns.SessionStopPolicy; export import Set = ns.RealmSet; export import ShorthandPrimitivePropertyTypeName = ns.ShorthandPrimitivePropertyTypeName; export import SortDescriptor = ns.SortDescriptor; export import SSLConfiguration = ns.SSLConfiguration; export import SSLVerifyCallback = ns.SSLVerifyCallback; export import SSLVerifyObject = ns.SSLVerifyObject; export import SubscriptionSetState = ns.SubscriptionSetState; export import SyncConfiguration = ns.SyncConfiguration; export import SyncError = ns.SyncError; export import SyncProxyConfig = ns.SyncProxyConfig; export import TypeAssertionError = ns.TypeAssertionError; export import Unmanaged = ns.Unmanaged; export import UpdateMode = ns.UpdateMode; export import User = ns.User; export import UserChangeCallback = ns.UserChangeCallback; export import UserIdentity = ns.UserIdentity; export import UserState = ns.UserState; export import UserTypeName = ns.UserTypeName; export import WaitForSync = ns.WaitForSync; export import WatchOptionsFilter = ns.WatchOptionsFilter; export import WatchOptionsIds = ns.WatchOptionsIds; /** @deprecated Will be removed in v13.0.0. Please use {@link ns.AppServicesFunction | AppServicesFunction} */ export import RealmFunction = ns.AppServicesFunction; /** @deprecated Will be removed in v13.0.0. Please use {@link ns.CanonicalPropertySchema | CanonicalPropertySchema} */ export import CanonicalObjectSchemaProperty = ns.CanonicalPropertySchema; /** @deprecated Will be removed in v13.0.0. Please use {@link ns.ClientResetRecoverUnsyncedChangesConfiguration | ClientResetRecoverUnsyncedChangesConfiguration} */ export import ClientResetRecoveryConfiguration = ns.ClientResetRecoverUnsyncedChangesConfiguration; /** @deprecated Will be removed in v13.0.0. Please use {@link ns.PropertySchema | PropertySchema} */ export import ObjectSchemaProperty = ns.PropertySchema; /** @deprecated Will be removed in v13.0.0. Please use {@link ns.RealmObjectConstructor | RealmObjectConstructor} */ export import ObjectClass = ns.RealmObjectConstructor; /** @deprecated Will be removed in a future major version. Please use {@link ns.EstimateProgressNotificationCallback | EstimateProgressNotificationCallback} */ export import PartitionBasedSyncProgressNotificationCallback = ns.PartitionBasedSyncProgressNotificationCallback; /** @deprecated Will be removed in v13.0.0. Please use {@link ns.PropertyTypeName | PropertyTypeName} */ export import PropertyType = ns.PropertyTypeName; /** @deprecated Use another {@link ns.ClientResetMode | ClientResetMode} than {@link ns.ClientResetMode.Manual | ClientResetMode.Manual}. */ export import ClientResetError = ns.ClientResetError; /** @deprecated See https://www.mongodb.com/docs/atlas/app-services/reference/push-notifications/ */ export import PushClient = ns.PushClient; } export {};