import { Primitive, Any, Never } from "../meta-types"; import { ParseConstSchema } from "./const"; import { ParseEnumSchema } from "./enum"; import { ParseMixedSchema } from "./mixed"; import { ParseArrSchema } from "./array"; import { ParseObjectSchema } from "./object"; import { ParseAnyOfSchema } from "./anyOf"; import { ParseOneOfSchema } from "./oneOf"; import { ParseAllOfSchema } from "./allOf"; import { ParseNotSchema } from "./not"; import { ParseIfThenElseSchema } from "./ifThenElse"; export declare type ParseSchema = { any: Any; never: Never; null: Primitive; boolean: Primitive; number: Primitive; string: Primitive; mixed: ParseMixedSchema; object: ParseObjectSchema; array: ParseArrSchema; const: ParseConstSchema; enum: ParseEnumSchema; anyOf: ParseAnyOfSchema; oneOf: ParseOneOfSchema; allOf: ParseAllOfSchema; not: ParseNotSchema; ifThenElse: ParseIfThenElseSchema; }[InferSchemaType]; declare type InferSchemaType = S extends true | string ? "any" : S extends false ? "never" : "if" extends keyof S ? "ifThenElse" : "not" extends keyof S ? "not" : "allOf" extends keyof S ? "allOf" : "oneOf" extends keyof S ? "oneOf" : "anyOf" extends keyof S ? "anyOf" : "enum" extends keyof S ? "enum" : "const" extends keyof S ? "const" : "type" extends keyof S ? S["type"] extends any[] ? "mixed" : S["type"] extends "null" ? "null" : S["type"] extends "boolean" ? "boolean" : S["type"] extends "integer" | "number" ? "number" : S["type"] extends "string" ? "string" : S["type"] extends "object" ? "object" : S["type"] extends "array" ? "array" : "never" : "any"; export {};