mobx-state-tree-entity
Version:
React state management made for humans.
29 lines (28 loc) • 2.35 kB
TypeScript
import { IAnyModelType, IModelType, ISimpleType, ModelProperties } from 'mobx-state-tree';
export declare type ExtractProps<T extends IAnyModelType> = T extends IModelType<infer P, any, any, any> ? P : never;
export declare type ModelPropertyDefinitionsToProperties<T extends IAnyModelType> = {
[P in keyof ExtractProps<T>]: ExtractProps<T>[P] extends ISimpleType<infer X> ? X : never;
};
export declare const deriveModelFromState: (state: {
[key: string]: any;
}) => IModelType<any, {
setValues: (values: import("mobx-state-tree").ModelInstanceTypeProps<any> & import("mobx-state-tree").IStateTreeNode<IModelType<any, {}, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>>) => void;
}, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>;
export declare const useSingletonEntity: <P extends ModelProperties, O, T extends IModelType<P, O, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>, I extends ModelPropertyDefinitionsToProperties<T>>(initialValue: I, endpoint: string) => import("mobx-state-tree").IOptionalIType<IModelType<{
metadata: IModelType<{
error: import("mobx-state-tree").IMaybeNull<ISimpleType<string>>;
isHydrating: import("mobx-state-tree").IOptionalIType<ISimpleType<boolean>, [undefined]>;
isLoading: import("mobx-state-tree").IOptionalIType<ISimpleType<boolean>, [undefined]>;
status: import("mobx-state-tree").IOptionalIType<ISimpleType<number>, [undefined]>;
}, {
hasHydrated: boolean;
} & {
readonly isDirty: boolean;
readonly hasError: boolean;
}, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>;
persistedValue: import("mobx-state-tree").IOptionalIType<IModelType<P, any, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>, [undefined]>;
value: import("mobx-state-tree").IOptionalIType<IModelType<P, any, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>, [undefined]>;
}, {
read: (id?: string | number | undefined) => Promise<any>;
update: (id?: string | number | undefined) => Promise<any>;
}, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>, [undefined]>;