mobx-keystone
Version:
A MobX powered state management solution based on data trees with first class support for TypeScript, snapshots, patches and much more
37 lines (36 loc) • 1.4 kB
TypeScript
import { AnyDataModel } from '../dataModel/BaseDataModel';
import { AnyModel } from '../model/BaseModel';
import { ModelClass } from '../modelShared/BaseModelShared';
import { AnyStandardType, TypeToData } from '../types/schemas';
import { SnapshotInOf, SnapshotOutOf } from './SnapshotOf';
/**
* From snapshot options.
*/
export interface FromSnapshotOptions {
/**
* Pass `true` to generate new internal ids for models rather than reusing them. (Default is `false`)
*/
generateNewIds: boolean;
}
/**
* Given a type deserializes a data structure from its snapshot form.
*
* @template TType Object type.
* @param type Type.
* @param snapshot Snapshot, even if a primitive.
* @param options Options.
* @returns The deserialized object.
*/
export declare function fromSnapshot<TType extends AnyStandardType | ModelClass<AnyModel> | ModelClass<AnyDataModel>>(type: TType, snapshot: SnapshotInOf<TypeToData<TType>>, options?: Partial<FromSnapshotOptions>): TypeToData<TType>;
/**
* Deserializes a data structure from its snapshot form.
*
* @template T Object type.
* @param snapshot Snapshot, even if a primitive.
* @param options Options.
* @returns The deserialized object.
*/
export declare function fromSnapshot<T>(snapshot: SnapshotInOf<T> | SnapshotOutOf<T>, options?: Partial<FromSnapshotOptions>): T;
export declare const observableOptions: {
deep: boolean;
};