import { type DefaultValidationResultProperty, type ValidatableOptions, type ValidatableConstructor } from './validatable'; import * as valtors from './validators'; export type FieldDecorator = (target: undefined, context: ClassFieldDecoratorContext) => void; export type ClassDecorator = (target: T, context: ClassDecoratorContext) => R; export declare function validatable(target: T, context: ClassDecoratorContext): ValidatableConstructor; export declare function validatable, RP extends string>(options: O): ClassDecorator>; /** * Returns decorator which adds validator to special field of validators. * Useful for implementing own validators. */ export declare function addValidator({ assertion, type, message, }: valtors.Validator): FieldDecorator; export declare function compose(...decorators: FieldDecorator[]): FieldDecorator; export declare function required(...args: Parameters): FieldDecorator; export declare function min(...args: Parameters): FieldDecorator; export declare function max(...args: Parameters): FieldDecorator; export declare function minLength(...args: Parameters): FieldDecorator; export declare function maxLength(...args: Parameters): FieldDecorator; export declare function match(...args: Parameters): FieldDecorator; export declare function oneOf(...args: Parameters): FieldDecorator; export declare function email(...args: Parameters): FieldDecorator; export declare function propEquals(...args: Parameters): FieldDecorator; export declare function dateString(...args: Parameters): FieldDecorator;