import { ValidationSchemas } from '~/domain'; import { JoiSchema } from '~/infra/joi/helper/joi-types'; import { IJoiRuleParser, AnySchema } from './parser'; export type RulesParser = IJoiRuleParser, JoiSchema>; export type AllParsersBut = { [K in Exclude]: RulesParser; }; export type NumberParser = IJoiRuleParser, NumberParser.Schema>; export namespace NumberParser { export type Rules = ValidationSchemas.Rules<'number'>; export type Schema = JoiSchema<'number'>; export type Fn

= (schema: Schema, ...args: P) => AnySchema; } export type StringParser = IJoiRuleParser, StringParser.Schema>; export namespace StringParser { export type Rules = ValidationSchemas.Rules<'string'>; export type Schema = JoiSchema<'string'>; export type Fn

= (schema: Schema, ...args: P) => AnySchema; } export type ObjectParser = IJoiRuleParser, ObjectParser.Schema>; export namespace ObjectParser { export type Rules = ValidationSchemas.Rules<'object'>; export type Schema = JoiSchema<'object'>; export type Fn

= (schema: Schema, ...args: P) => AnySchema; } export type ArrayParser = IJoiRuleParser, ArrayParser.Schema>; export namespace ArrayParser { export type Rules = ValidationSchemas.Rules<'array'>; export type Schema = JoiSchema<'array'>; export type Fn

= (schema: Schema, ...args: P) => AnySchema; }