import { SearchSchemaInput } from './route.cjs'; export interface StandardSchemaValidatorProps { readonly types?: StandardSchemaValidatorTypes | undefined; readonly validate: AnyStandardSchemaValidate; } export interface StandardSchemaValidator { readonly '~standard': StandardSchemaValidatorProps; } export type AnyStandardSchemaValidator = StandardSchemaValidator; export interface StandardSchemaValidatorTypes { readonly input: TInput; readonly output: TOutput; } export interface AnyStandardSchemaValidateSuccess { readonly value: any; readonly issues?: undefined; } export interface AnyStandardSchemaValidateFailure { readonly issues: ReadonlyArray; } export interface AnyStandardSchemaValidateIssue { readonly message: string; } export interface AnyStandardSchemaValidateInput { readonly value: any; } export type AnyStandardSchemaValidate = (value: unknown) => (AnyStandardSchemaValidateSuccess | AnyStandardSchemaValidateFailure) | Promise; export interface ValidatorObj { parse: ValidatorFn; } export type AnyValidatorObj = ValidatorObj; export interface ValidatorAdapter { types: { input: TInput; output: TOutput; }; parse: (input: unknown) => TOutput; } export type AnyValidatorAdapter = ValidatorAdapter; export type AnyValidatorFn = ValidatorFn; export type ValidatorFn = (input: TInput) => TOutput; export type Validator = ValidatorObj | ValidatorFn | ValidatorAdapter | StandardSchemaValidator | undefined; export type AnyValidator = Validator; export type AnySchema = {}; export type DefaultValidator = Validator, AnySchema>; export type ResolveSearchValidatorInputFn = TValidator extends (input: infer TSchemaInput) => any ? TSchemaInput extends SearchSchemaInput ? Omit : ResolveValidatorOutputFn : AnySchema; export type ResolveSearchValidatorInput = TValidator extends AnyStandardSchemaValidator ? NonNullable['input'] : TValidator extends AnyValidatorAdapter ? TValidator['types']['input'] : TValidator extends AnyValidatorObj ? ResolveSearchValidatorInputFn : ResolveSearchValidatorInputFn; export type ResolveValidatorInputFn = TValidator extends (input: infer TInput) => any ? TInput : undefined; export type ResolveValidatorInput = TValidator extends AnyStandardSchemaValidator ? NonNullable['input'] : TValidator extends AnyValidatorAdapter ? TValidator['types']['input'] : TValidator extends AnyValidatorObj ? ResolveValidatorInputFn : ResolveValidatorInputFn; export type ResolveValidatorOutputFn = TValidator extends (...args: any) => infer TSchema ? TSchema : AnySchema; export type ResolveValidatorOutput = unknown extends TValidator ? TValidator : TValidator extends AnyStandardSchemaValidator ? NonNullable['output'] : TValidator extends AnyValidatorAdapter ? TValidator['types']['output'] : TValidator extends AnyValidatorObj ? ResolveValidatorOutputFn : ResolveValidatorOutputFn;