import type { FilterFn } from '@tanstack/table-core';
import { DataTableFilterOperatorTypes, DateFilterOperatorType, FilterOperatorTypes, FilterTypes, FilterValueType, MultiSelectFilterOperatorType, NumberFilterOperatorType, SelectFilterOperatorType, StringFilterOperatorType } from '~/types/filters';
import { DataTableFilterValues } from '../data-table.types';
export type FilterFunctionsMap = {
    number: Record<NumberFilterOperatorType, FilterFn<unknown>>;
    string: Record<StringFilterOperatorType, FilterFn<unknown>>;
    date: Record<DateFilterOperatorType, FilterFn<unknown>>;
    select: Record<SelectFilterOperatorType, FilterFn<unknown>>;
    multiselect: Record<MultiSelectFilterOperatorType, FilterFn<unknown>>;
};
export declare const filterOperationsMap: FilterFunctionsMap;
export declare function getFilterFn<T extends keyof FilterFunctionsMap>(type: T, operator: FilterOperatorTypes): any;
export declare const getFilterOperator: ({ value, filterType, operator }: {
    value: any;
    filterType?: "string" | "number" | "select" | "date" | "multiselect" | undefined;
    operator: FilterOperatorTypes;
}) => DataTableFilterOperatorTypes;
export declare const getFilterValue: ({ value, dataType, filterType, operator }: {
    value: any;
    dataType?: FilterValueType | undefined;
    filterType?: "string" | "number" | "select" | "date" | "multiselect" | undefined;
    operator?: "contains" | "empty" | "in" | "eq" | "neq" | "ilike" | "lt" | "lte" | "gt" | "gte" | "starts_with" | "ends_with" | "notin" | undefined;
}) => DataTableFilterValues;
export declare const getDataType: ({ filterType, dataType }: {
    dataType?: FilterValueType | undefined;
    filterType?: "string" | "number" | "select" | "date" | "multiselect" | undefined;
}) => FilterValueType;
//# sourceMappingURL=filter-operations.d.ts.map