import { ColumnConfig, ColumnType } from "./types";
import type { ViewerOption } from "./viewers/types";
interface ValidationResult {
    flag: boolean;
    message?: string;
}
type ValidatorFunction = (value: any, row: any, callback: (res: string | boolean) => void) => void | Promise<void>;
declare class Validator {
    validateKey: string;
    validateTitle: string;
    columnType?: ColumnType;
    type?: 'list' | 'number' | 'date' | 'phone' | 'email';
    options?: ViewerOption[];
    required?: boolean;
    validator?: RegExp | ValidatorFunction;
    operator?: string;
    message?: string;
    descriptor?: any;
    pattern?: string | RegExp;
    min?: number;
    max?: number;
    immediate?: boolean;
    constructor(column: ColumnConfig);
    validate(v: any, row: any): Promise<ValidationResult>;
}
export default Validator;
