import { ValidationPrimitiveSchema } from './primitive-schema'; import { ValidationObjectSchema, ValidationStringSchema, ValidationNumberSchema, ValidationArraySchema } from './basic-schemas'; import { IAnySchema, IAnySchemaRules } from './any-schema'; declare type Union = ValidationPrimitiveSchema | ValidationObjectSchema | ValidationArraySchema; interface All { object: ValidationObjectSchema; string: ValidationStringSchema; number: ValidationNumberSchema; array: ValidationArraySchema; primitive: ValidationPrimitiveSchema; common: IAnySchema & { readonly type: ValidationSchemas.Type; }; } export declare type ValidationSchemas = All[T]; export declare namespace ValidationSchemas { type Type = Exclude; type Rules = { object: ValidationObjectSchema.Rules; string: ValidationStringSchema.Rules; number: ValidationNumberSchema.Rules; array: ValidationArraySchema.Rules; primitive: ValidationPrimitiveSchema.Rules; common: IAnySchemaRules; }[S]; type Format = { [K in keyof All]: ValidationSchemas.Rules extends { format?: infer F; } ? Exclude : never; }[S]; } export {};