import type { JsonPropTypes } from './prop_types'; import type { IEmptyConstructor, IJsonConverter, IValidation } from './types'; export interface IJsonSchemaItem { type: JsonPropTypes | IEmptyConstructor; optional?: boolean; defaultValue?: any; converter?: IJsonConverter; repeated?: boolean; name?: string; validations: IValidation[]; } export interface IJsonSchema { target: IEmptyConstructor; names: { [key: string]: { [key: string]: IJsonSchemaItem; }; }; } export declare class JsonSchemaStorage { protected items: Map; has(target: object): boolean; get(target: object): IJsonSchema; /** * Creates new schema * @param target Target object */ create(target: object): IJsonSchema; set(target: object, schema: IJsonSchema): this; protected findParentSchema(target: object): IJsonSchema | null; }