import type { IFilter } from '../../types/query';
import type { Column } from "./models/column";
export declare enum FILTER_TYPES {
    STRING = "string",
    NUMERIC = "numeric",
    BOOLEAN = "boolean",
    DATE = "date",
    LIST = "list"
}
export declare enum FILTER_COMPONENTS {
    NONE = "none",
    INPUT = "input",
    NUMBER = "number",
    RANGE = "range",
    DATE = "date",
    DATE_RANGE = "date range",
    SELECT = "select",
    CHECKBOX = "checkbox"
}
export interface IFilterOperator {
    value: string;
    title: string;
    field: FILTER_COMPONENTS;
    comparator: <T extends object = object>(row: T, filters: IFilter, column?: Column) => boolean;
}
export declare const FILTER_OPERATORS: Record<string, IFilterOperator>;
export declare const FILTER_OPERATORS_BY_TYPES: Record<FILTER_TYPES, IFilterOperator[]>;
