UNPKG

mobx-keystone-mindreframer

Version:

A MobX powered state management solution based on data trees with first class support for Typescript, snapshots, patches and much more

56 lines (55 loc) 1.75 kB
import type { Path } from "../parent/pathTypes"; import type { AnyStandardType } from "./schemas"; import { TypeCheckError } from "./TypeCheckError"; declare type CheckFunction = (value: any, path: Path) => TypeCheckError | null; declare type CheckResult = TypeCheckError | null; /** * @ignore */ export declare function invalidateCachedTypeCheckerResult(obj: object): void; /** * @ignore */ export declare class TypeChecker { private readonly _check; readonly getTypeName: (...recursiveTypeCheckers: TypeChecker[]) => string; private checkResultCache?; unchecked: boolean; private createCacheIfNeeded; setCachedResult(obj: object, newCacheValue: CheckResult): void; invalidateCachedResult(obj: object): void; private getCachedResult; check(value: any, path: Path): TypeCheckError | null; private _cachedTypeInfoGen; get typeInfo(): TypeInfo; constructor(_check: CheckFunction | null, getTypeName: (...recursiveTypeCheckers: TypeChecker[]) => string, typeInfoGen: TypeInfoGen); } declare const lateTypeCheckerSymbol: unique symbol; /** * @ignore */ export interface LateTypeChecker { [lateTypeCheckerSymbol]: true; (): TypeChecker; typeInfo: TypeInfo; } /** * @ignore */ export declare function lateTypeChecker(fn: () => TypeChecker, typeInfoGen: TypeInfoGen): LateTypeChecker; /** * @ignore */ export declare function isLateTypeChecker(ltc: any): ltc is LateTypeChecker; /** * Type info base class. */ export declare class TypeInfo { readonly thisType: AnyStandardType; constructor(thisType: AnyStandardType); } /** * @ignore */ export declare type TypeInfoGen = (t: AnyStandardType) => TypeInfo; export {};