import Target from '../config/check/target'; import ConfigError from '../error/configError'; import { Model } from './model'; import ErrorBag from '../error/errorBag'; export interface ModelContextRules { streamsAllowed?: boolean; binariesAllowed?: boolean; } export default class ModelChecker { private readonly ceb; constructor(ceb: ErrorBag); check(model: Model, target: Target, contextRules?: ModelContextRules): void; /** * @description * Check model. * (checks also for value circle extensions) * @param value * @param target * @param rememberCache */ private checkModel; private checkObjectModel; /** * Check object inheritance that also can include * new anonymous object models or already checked object models. * @param target * @param srcTarget * @param baseModel * @param model * @param rememberCache * @param inheritanceRemCache * @param propsOverwritten */ private checkObjExtendsResolve; private checkOverrideProp; private checkStreamModel; private checkArrayModel; private checkOnlyValidationFunction; private checkValueModel; private checkAndProcessValueModelInheritance; private checkCharClassFunction; private checkRegexFunction; private checkRegex; private checkValidStringRegex; private checkModelContext; private static iterateModelInheritance; private static isObjModel; private static isValueModel; private static valueTypeIncluded; }