import { Rule, ValidationFunction, ValidationStrategy, Validator } from "@n7e/validation"; /** * Has the ability to build and configure validator instances. */ interface ValidatorBuilder { /** * Configure validator to include the given rule. * * @param rule - Validation rule. * @returns Same instance for method chaining. */ withRule(rule: Rule): this; /** * Configure validator to include the given rule. * * @param identifier - Rule identifier. * @param check - Validation function. * @returns Same instance for method chaining. */ withRule(identifier: string, check: ValidationFunction): this; /** * Configure validator to use the given default strategy. * * @param strategy - Validation strategy. * @returns Same instance for method chaining. */ withDefaultStrategy(strategy: ValidationStrategy): this; /** * Build a configured validator instance. * * @returns Configured validator instance. */ build(): Validator; } export default ValidatorBuilder;