import React from 'react';
import { Messages } from '../../../../../validators/types';
export declare type Validator = (message: string) => Validation;
export interface Validation {
    validator: (value: string | number) => boolean;
    message: string;
}
export declare class ValidatorModel {
    readonly validations: Validation[];
    readonly message: string;
    constructor(validations: Validation[], message: string);
}
export declare function validator<O extends {
    messages: Messages;
}>(validator: Validator): (Component: React.ComponentType<Pick<O, Exclude<keyof O, "messages">> & {
    validator: ValidatorModel;
}>) => (props: O) => React.ReactElement<Pick<O, Exclude<keyof O, "messages">> & {
    validator: ValidatorModel;
}, string | ((props: any) => React.ReactElement<any, string | any | (new (props: any) => React.Component<any, any, any>)> | null) | (new (props: any) => React.Component<any, any, any>)>;
//# sourceMappingURL=validator.d.ts.map