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