import type { Validator } from './Validation.js'; interface ValidatorAttributes { message?: string; } interface ValueNumberAttributes extends ValidatorAttributes { value: number | string; } interface DigitAttributes extends ValidatorAttributes { integer: number; fraction: number; } interface SizeAttributes extends ValidatorAttributes { min?: number; max?: number; } interface PatternAttributes extends ValidatorAttributes { regexp: RegExp | string; } interface DecimalAttributes extends ValueNumberAttributes { inclusive?: boolean; } declare abstract class AbstractValidator implements Validator { message: string; impliesRequired: boolean; constructor(attrs?: ValidatorAttributes); abstract validate(value: T): boolean | Promise; } export declare class Required extends AbstractValidator { impliesRequired: boolean; validate(value: T): boolean; } declare abstract class NumberValidator extends AbstractValidator { validate(value: T): boolean; } export declare class IsNumber extends NumberValidator { optional: boolean; constructor(optional: boolean, attrs?: ValidatorAttributes); validate(value: number | null | undefined): boolean; } declare abstract class ValueNumberValidator extends NumberValidator { value: number; protected constructor(attrs: ValueNumberAttributes | number | string); } export declare class Email extends AbstractValidator { constructor(attrs?: ValidatorAttributes); validate(value: string | null | undefined): boolean; } export declare class Null extends AbstractValidator { constructor(attrs?: ValidatorAttributes); validate(value: any): boolean; } export declare class NotNull extends Required { constructor(attrs?: ValidatorAttributes); validate(value: any): boolean; } export declare class NotEmpty extends Required { constructor(attrs?: ValidatorAttributes); validate(value: any): boolean; } export declare class NotBlank extends Required { constructor(attrs?: ValidatorAttributes); validate(value: any): boolean; } export declare class AssertTrue extends AbstractValidator { constructor(attrs?: ValidatorAttributes); validate(value: any): boolean; } export declare class AssertFalse extends AbstractValidator { constructor(attrs?: ValidatorAttributes); validate(value: any): boolean; } export declare class Min extends ValueNumberValidator { constructor(attrs: ValueNumberAttributes | number | string); validate(value: any): boolean; } export declare class Max extends ValueNumberValidator { constructor(attrs: ValueNumberAttributes | number | string); validate(value: any): boolean; } export declare class DecimalMin extends ValueNumberValidator { inclusive: boolean; constructor(attrs: DecimalAttributes | string | number); validate(value: any): boolean; } export declare class DecimalMax extends ValueNumberValidator { inclusive: boolean; constructor(attrs: DecimalAttributes | string | number); validate(value: any): boolean; } export declare class Negative extends AbstractValidator { constructor(attrs?: ValidatorAttributes); validate(value: any): boolean; } export declare class NegativeOrZero extends AbstractValidator { constructor(attrs?: ValidatorAttributes); validate(value: any): boolean; } export declare class Positive extends AbstractValidator { constructor(attrs?: ValidatorAttributes); validate(value: any): boolean; } export declare class PositiveOrZero extends AbstractValidator { constructor(attrs?: ValidatorAttributes); validate(value: any): boolean; } export declare class Size extends AbstractValidator { min: number; max: number; constructor(attrs?: SizeAttributes); validate(value: string): boolean; } export declare class Digits extends AbstractValidator { integer: number; fraction: number; constructor(attrs: DigitAttributes); validate(value: any): boolean; } export declare class Past extends AbstractValidator { constructor(attrs?: ValidatorAttributes); validate(value: any): boolean; } export declare class Future extends AbstractValidator { constructor(attrs?: ValidatorAttributes); validate(value: any): boolean; } export declare class Pattern extends AbstractValidator { regexp: RegExp; constructor(attrs: PatternAttributes | string | RegExp); validate(value: any): boolean; } export {}; //# sourceMappingURL=Validators.d.ts.map