import { IValidator } from "./validation/validator"; import { ImparsableConstructor } from "./parsing/json/Imparsable"; import { Property } from "./property"; import { CollectionParsingDescription, ModelParsingSchema, ParsingSchema } from "./types"; export declare type DescriptionRecord = [ImparsableConstructor, ParsingSchema]; export declare class DescriptionManager { static decoratePropertyWithParameters(target: T, key: K, parameters: Partial>): void; static decorateProperty(target: T, key: K, property: Property): void; private static getPropertyType; static getClassDescription(constructor: ImparsableConstructor, defaultValueFactory?: () => ModelParsingSchema): ModelParsingSchema; static getDescription(constructor: ImparsableConstructor): ParsingSchema; static setClassDescription(constructor: ImparsableConstructor, desc: ModelParsingSchema): void; /** * This method takes schema from class and merge it with provided schema. * @param constructor * @param desc */ static mergeDescription(constructor: ImparsableConstructor, desc: Partial>): void; private static defaultDescriptions; static registerDescription(description: ParsingSchema): void; static getDefaultParsingDescription(classType: ImparsableConstructor): ParsingSchema; static autoCreateComplexDescription(parameters: Partial>): ParsingSchema; static createCollectionComplexDescription(collection: Partial>, collectionOf: Partial>): CollectionParsingDescription; static addValidators(target: T, key: K, validators: IValidator[]): void; }