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 { List } from "ts-toolbelt"; import Allow from "./subject/list/allow"; import Expectation from "./subject/list/expectation"; /** * 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 default function ValueAllParameters(validators: Validators, validation: (result: ListReturn) => ReturnType, message: (result: ListReturn) => MessageType): Value>, List.UnionOf>, MessageType, Validators, ListReturn, ReturnType>; export default function ValueAllParameters(validators: Validators, validation: (result: ListReturn) => ReturnType): Value>, List.UnionOf>, InferMessage>, Validators, ListReturn, ReturnType>; export default function ValueAllParameters[] = Validator[], ReturnType extends Validatable = Validatable>(validators: Validators, validation: (result: ListReturn) => ReturnType): Value>, Validators, ListReturn, ReturnType>; export default function ValueAllParameters[] = Validator[], ReturnType extends Validatable = Validatable, MessageType = unknown>(validators: Validators, validation: (result: ListReturn) => ReturnType, message: (result: ListReturn) => MessageType): Value, ReturnType>;