import { ReactNode } from 'react';
import { Moment } from 'moment';
import ValidationResult from '../ValidationResult';
import { FieldType } from '../../data-set/enum';
import DataSet from '../../data-set/DataSet';
import Record from '../../data-set/Record';
import Form from '../../form/Form';
import { CustomValidator, ValidationMessages } from '../Validator';
import { TimeStep } from '../../date-picker/DatePicker';
export declare type methodReturn = ValidationResult | true;
export declare type validationRule = (value: any, props: any) => methodReturn | PromiseLike<methodReturn>;
declare const validationRules: validationRule[];
export default validationRules;
export interface ValidatorProps {
    type?: FieldType;
    required?: boolean;
    pattern?: string | RegExp;
    min?: number | Moment | null;
    max?: number | Moment | null;
    step?: number | TimeStep;
    nonStrictStep?: boolean;
    minLength?: number;
    maxLength?: number;
    dataSet?: DataSet;
    record?: Record;
    name?: string;
    unique?: boolean | string;
    label?: ReactNode;
    customValidator?: CustomValidator;
    multiple?: boolean;
    range?: boolean | [string, string];
    form?: Form;
    format?: string;
    defaultValidationMessages: ValidationMessages;
    attachmentCount?: number;
}
