import { default as Cell } from '../../core/cell/Cell';
import { default as Column } from '../../core/column/Column';
import { default as Module } from '../../core/Module';
import { default as Row } from '../../core/row/Row';
import { default as Tabulator } from '../../core/Tabulator';

type ValidatorFunction = (cell: any, value: any, parameters: any) => boolean;
type ValidatorConfig = {
    func: ValidatorFunction;
    params: any;
    type: string;
};
export default class Validate extends Module {
    static readonly moduleName = "validate";
    static readonly validators: Record<string, ValidatorFunction>;
    invalidCells: Cell[];
    constructor(table: Tabulator);
    initialize(): void;
    editValidate(cell: Cell, value: any, _previousValue: any): boolean | any;
    editorClear(cell: Cell, cancelled: boolean): void;
    editedClear(cell: Cell): void;
    cellIsValid(cell: Cell): boolean;
    cellValidate(cell: Cell): boolean | any;
    columnValidate(column: Column): any[] | boolean;
    rowValidate(row: Row): any[] | boolean;
    userClearCellValidation(cells?: any): void;
    userValidate(_cells?: any): any[] | boolean;
    initializeColumnCheck(column: Column): void;
    initializeColumn(column: Column): void;
    _extractValidator(value: any): ValidatorConfig | false;
    _buildValidator(type: string | ValidatorFunction, params?: any): ValidatorConfig | false;
    validate(validators: ValidatorConfig[] | false | undefined, cell: Cell, value: any): any[] | boolean;
    getInvalidCells(): any[];
    clearValidation(cell: Cell): void;
}
export {};
