import { TSchema, Static } from "@sinclair/typebox"; import { GenericSchema, GenericSchemaAsync, InferOutput, InferInput } from "valibot"; import { Schema as Schema$1, InferType } from "yup"; import { z } from "zod"; type IfInstalled = any extends T ? never : T; type Schema = | IfInstalled | IfInstalled | IfInstalled | IfInstalled | IfInstalled; type Infer = S extends IfInstalled ? z.infer : S extends IfInstalled ? InferOutput : S extends IfInstalled ? InferOutput : S extends IfInstalled ? InferType : S extends IfInstalled ? Static : never; type InferIn = S extends IfInstalled ? z.input : S extends IfInstalled ? InferInput : S extends IfInstalled ? InferInput : S extends IfInstalled ? InferType : S extends IfInstalled ? Static : never; type InferArray = { [K in keyof BAS]: Infer; }; type InferInArray = { [K in keyof BAS]: InferIn; }; type ValidationIssue = { message: string; path?: Array; }; interface ValidationAdapter { validate( schema: S, data: unknown ): Promise< | { success: true; data: Infer; } | { success: false; issues: ValidationIssue[]; } >; validate>( schema: S, data: unknown ): Promise< | { success: true; data: Infer; } | { success: false; issues: ValidationIssue[]; } >; validate>( schema: S, data: unknown ): Promise< | { success: true; data: Infer; } | { success: false; issues: ValidationIssue[]; } >; validate>( schema: S, data: unknown ): Promise< | { success: true; data: Infer; } | { success: false; issues: ValidationIssue[]; } >; validate>( schema: S, data: unknown ): Promise< | { success: true; data: Infer; } | { success: false; issues: ValidationIssue[]; } >; validate>( schema: S, data: unknown ): Promise< | { success: true; data: Infer; } | { success: false; issues: ValidationIssue[]; } >; } export type { IfInstalled, Infer, InferArray, InferIn, InferInArray, Schema, ValidationAdapter, ValidationIssue };