import { ArraySchema, BooleanSchema, DateSchema, NumberSchema, ObjectSchema, StringSchema } from '../schemas'; import { JsonSchemaToDataType } from './ConstructInitialDataJsonSchema'; import { JsonSchemaArrayValidationType, JsonSchemaBooleanValidationType, JsonSchemaDateValidationType, JsonSchemaNumberValidationType, JsonSchemaObjectValidationType, JsonSchemaStringValidationType } from './JsonSchemaValidationType'; export type JsonSchemaObjectType = { properties: Record; type: 'object'; validation?: JsonSchemaObjectValidationType; }; export type JsonSchemaStringType = { type: 'string'; validation?: JsonSchemaStringValidationType; }; export type JsonSchemaNumberType = { type: 'number'; validation?: JsonSchemaNumberValidationType; }; export type JsonSchemaBooleanType = { type: 'boolean'; validation?: JsonSchemaBooleanValidationType; }; export type JsonSchemaDateType = { type: 'date'; validation?: JsonSchemaDateValidationType; }; export type JsonSchemaArrayType = { properties: JsonSchemaType; type: 'array'; validation?: JsonSchemaArrayValidationType; }; export type JsonSchemaType = JsonSchemaObjectType | JsonSchemaStringType | JsonSchemaNumberType | JsonSchemaBooleanType | JsonSchemaDateType | JsonSchemaArrayType; export type JsonSchemaToSchemaDataType = T extends JsonSchemaObjectType ? ObjectSchema> : T extends JsonSchemaStringType ? StringSchema> : T extends JsonSchemaNumberType ? NumberSchema> : T extends JsonSchemaBooleanType ? BooleanSchema> : T extends JsonSchemaDateType ? DateSchema> : T extends JsonSchemaArrayType ? ArraySchema> : any; export type AnyJsonSchema = ObjectSchema | StringSchema | NumberSchema | BooleanSchema | DateSchema | ArraySchema; export declare function ConstructJsonSchema(schemaValue: JsonSchemaType): AnyJsonSchema;