import { ValidationSchemas } from '~/domain/entities'; export interface AnyValidationBuilder< T extends ValidationSchemas.Type, O extends keyof ValidationSchemas['rules'] = never > { build(rules: AnyValidationBuilder.BuilderRules): ValidationSchemas; } export namespace AnyValidationBuilder { export interface Fn['rules'] = never> { (rules: BuilderRules): ValidationSchemas; } export type BuilderRules< T extends ValidationSchemas.Type, O extends keyof ValidationSchemas['rules'] = never > = Omit['rules'], O | 'format'>; }