import Validator from "@dikac/t-validator/validator"; import Validatable from "@dikac/t-validatable/validatable"; import Instance from "@dikac/t-validator/validatable/validatable"; import Value from "./value"; import BaseValue from "@dikac/t-value/value"; import ValidatorsContainer from "./validators/validators"; import Message from "@dikac/t-message/message"; /** * Base implementation of {@link Value} * * @template BaseType * Base value type for all {@link Validator} * * @template ValueType * value type {@link Validator} * * @template MessageType * message type {@link Validator} * * @template ValidatorsType * record of {@link Validator} to be used against {@template BaseType} or {@template ValueType} * * @template Validatables * result after processing {@template ValidatorsType} with {@template BaseType} or {@template ValueType} * * @template ValidatableType * final result after processing {@template Validatables} */ export declare type ValueCallbackArgument> = Record>, Validatables extends Partial> = Partial>, ValidatableType extends Validatable = Validatable> = ValidatorsContainer & { map: (argument: BaseValue & ValidatorsContainer) => Validatables; } & { validation: (result: Validatables) => ValidatableType; } & Message<(result: Validatables) => MessageType>; export default function ValueCallbackParameter> = Record>, Validatables extends Partial> = Partial>, ValidatableType extends Validatable = Validatable>({ validators, map, validation, message, }: ValueCallbackArgument): Value;