import Validator from "@dikac/t-validator/validator"; import Validatable from "@dikac/t-validatable/validatable"; import ListReturn from "./validatable/list/infer"; import Value from "./value"; import InferMessage from "../message/message/list/infer"; import ValidatorsContainer from "./validators/validators"; import Message from "@dikac/t-message/message"; import Unions from "../unions"; import StrictOmit from "@dikac/t-object/strict-omit"; import { Required } from "utility-types"; /** * more specific implementation of {@link ValueCallback} * * Validate value with all list of {@link Validator} * * @param validators * list of {@link Validator} to be used against value * * @param validation * combined all result from {@link Validator} list into {@link Validatable} * * @param message * combined all result from {@link Validator} list into {@link Message} value */ export declare type ValueAllArgument[] = Validator[], ReturnType extends Validatable = Validatable, MessageType = unknown> = ValidatorsContainer & Partial>) => MessageType>> & { validation: (result: Unions>) => ReturnType; }; /** * object implementation * * @param validators * @param validation * @constructor */ export default function ValueAllParameter[] = Validator[], ReturnType extends Validatable = Validatable>({ validators, validation, }: StrictOmit, 'message'>): Value>, Validators, ListReturn, ReturnType>; export default function ValueAllParameter[] = Validator[], ReturnType extends Validatable = Validatable, MessageType = unknown>({ validators, validation, message, }: Required, 'message'>): Value, ReturnType>;