import { TypeOverride } from "@plumier/reflect"; import { VisitorInvocation } from './invocation'; import { Result } from './visitor'; declare const RequiredValidator: unique symbol; declare const PartialValidator: unique symbol; declare type Validator = (val: any) => string | undefined; interface ValidatorDecorator { type: "tc:validator"; validator: Validator | string | symbol; } declare function createValidation(validator: Validator | string | symbol): import("@plumier/reflect").CustomPropertyDecorator; declare function required(): import("@plumier/reflect").CustomPropertyDecorator; declare function partial(type: TypeOverride | ((x: any) => TypeOverride)): (...args: any[]) => void; declare function validatorVisitor(i: VisitorInvocation): Result; export { createValidation, required, partial, validatorVisitor, Validator, ValidatorDecorator, PartialValidator, RequiredValidator };