import { TSchema } from "@sinclair/typebox";
import { ValidationAdapter, IfInstalled, Infer } from "./types.mjs";
import "valibot";
import "yup";
import "zod";

declare class TypeboxAdapter implements ValidationAdapter {
	validate<S extends IfInstalled<TSchema>>(
		schema: S,
		data: unknown
	): Promise<
		| {
				readonly success: true;
				readonly data: Infer<S>;
				readonly issues?: undefined;
		  }
		| {
				readonly success: false;
				readonly issues: {
					message: string;
					path: string[];
				}[];
				readonly data?: undefined;
		  }
	>;
}
declare function typeboxAdapter(): TypeboxAdapter;

export { typeboxAdapter };
