import Validator from "@dikac/t-validator/simple"; import Validatable from "@dikac/t-validatable/validatable"; import ReturnInfer from "./validatable/record/infer"; import ValidatorsContainer from "./validators/validators"; import Message from "@dikac/t-message/message"; import { ValuePartialType } from "./value-partial-parameters"; /** * more specific implementation of {@link ValueCallback} * * Validate value with record of {@link Validator} * stop on encounter {@param stop} result from {@link Validator} * * @param validators * record of {@link Validator} to be used against {@template BaseType} or {@template ValueType} * * @param validation * * @param message * * @template BaseType * Base value type for all {@link Validator} * * @template ValueType * value type {@link Validator} * * @template MessageType * message type {@link Validator} * * @template Validators * type of {@param validators} * * @template ValidatableType * result after processing {@template Validators} with {@template BaseType} or {@template ValueType} */ export declare type ValuePartialArgument> = Record>, ValidatableType extends Validatable = Validatable> = ValidatorsContainer & { validation: (result: Partial>) => ValidatableType; } & Message<(result: Partial>) => MessageType> & { stop?: boolean; }; export default function ValuePartialParameter> = Record>, ValidatableType extends Validatable = Validatable>({ validators, validation, message, stop, }: ValuePartialArgument): ValuePartialType;