import { Opt, val } from "./decorators"; import { VisitorExtension, VisitorInvocation } from "./invocation"; import { getAst } from "./transformer"; import { Class } from "./types"; import { partial, PartialValidator, Validator, validatorVisitor, ValidatorDecorator, RequiredValidator, createValidation } from "./validation"; import { Result, ResultMessages } from "./visitor"; import { defaultConverters } from "./converter"; interface Option { /** * Expected type */ type: T; /** * List of visitor extension to extend TypedConverter internal process */ visitors?: VisitorExtension[]; /** * Top decorators of the type */ decorators?: any[]; /** * Root path */ path?: string; /** * Guess single value as array element if expected type is array. Default false */ guessArrayElement?: boolean; } /** * Convert value into type specified on configuration. * @param value * @param opt */ declare function convert(value: any, option: Option | T): T extends Class[] ? Result : T extends Class ? Result : Result; /** * Create type converter with specific configuration * @param option */ export default function factory(option: Option | T): (value: any) => T extends Class[] ? Result : T extends Class ? Result : Result; declare function createValidator(option: T | Option): (value: any) => T extends Class[] ? Result : T extends Class ? Result : Result; declare function validate(value: any, option: Option | T): T extends Class[] ? Result : T extends Class ? Result : Result; export { convert, Option, VisitorExtension, VisitorInvocation, Result, ResultMessages, partial, validatorVisitor, Validator, getAst, PartialValidator, val, Opt, validate, createValidator, ValidatorDecorator, RequiredValidator, defaultConverters, createValidation };