interface BaseSchema { example?: string; examples?: string[]; description?: string; title?: string; allOf?: Partial[]; anyOf?: Partial[]; oneOf?: Partial[]; } export interface EnumSchema extends BaseSchema { enum: Array; } export interface ConstSchema extends BaseSchema { const: string | number | null; } interface ImplicitObjectSchemaDef extends BaseSchema { additionalProperties?: boolean | Schema; maxProperties?: number; minProperties?: number; patternProperties?: Record; properties?: Record; propertyNames?: { pattern: string; }; required?: Array; } interface ObjectSchemaDef extends ImplicitObjectSchemaDef { type: "object"; } export declare type ObjectSchema = ImplicitObjectSchemaDef | ObjectSchemaDef; export declare type ObjectLike = ObjectSchema | "object"; export interface IntegerSchemaDef extends BaseSchema { type: "integer"; multipleOf?: number; minimum?: number; maximum?: number; exclusiveMinimum?: number; exclusiveMaximum?: number; } export interface NumberSchemaDef extends BaseSchema { type: "number"; multipleOf?: number; minimum?: number; maximum?: number; exclusiveMinimum?: number; exclusiveMaximum?: number; } export declare type NumericSchema = IntegerSchemaDef | NumberSchemaDef; export declare type NumericLike = NumericSchema | "integer" | "number"; interface ArraySchemaDef extends BaseSchema { type: "array"; items?: Schema; maxItems?: number; minItems?: number; prefixItems?: Schema[]; uniqueItems?: boolean; } export declare type ArraySchema = ArraySchemaDef; export declare type ArrayLike = ArraySchema | "array"; export interface StringSchemaDef extends BaseSchema { type: "string"; minLength?: number; maxLength?: number; pattern?: string; format?: string; } export declare type StringSchema = StringSchemaDef; export declare type StringLike = StringSchema | "string"; export interface BooleanSchemaDef extends BaseSchema { type: "boolean"; } export declare type BooleanSchema = BooleanSchemaDef; export declare type BooleanLike = StringSchema | "boolean"; export interface NullSchemaDef extends BaseSchema { type: "null"; } export declare type NullSchema = NullSchemaDef; export declare type NullLike = NullSchema | "null"; export interface AnySchemaDef extends BaseSchema { type: "any"; } export declare type AnySchema = AnySchemaDef; export declare type AnyLike = AnySchema | "any"; export declare type AllOfLikeSchema = Omit & { allOf: Partial[]; }; export declare type OneOfLikeSchema = Omit & { oneOf: Partial[]; }; export declare type AnyOfShorthandDef = Schema[]; export declare type AnyOfLikeSchema = AnyOfShorthandDef | (Omit & { anyOf: Partial[]; }); export declare type RefSchema = { $ref: string; }; export declare type SchemaStr = "object" | "array" | "integer" | "number" | "string" | "boolean" | "null" | "any"; export declare type SchemaDef = ObjectSchema | ArraySchema | StringSchema | NumericSchema | AnySchema | BooleanSchema | NullSchema | EnumSchema | ConstSchema; export declare type Schema = SchemaDef | AnyOfShorthandDef | SchemaStr | RefSchema; export {};