import type { Column, FilterConfig, FilterLogic, FilterOperator, FilterType } from './Table.types';
import type { SelectOption } from '../../forms/Select/Select.types';
/**
 * Human-readable labels for filter operators
 */
export declare const operatorLabels: Record<FilterOperator, string>;
/**
 * Infer the filter type for a column based on its configuration and data.
 * Priority: explicit filterType > filterOptions presence > data sampling
 */
export declare function inferFilterType<T>(column: Column<T>, data?: T[]): FilterType;
/**
 * Get the valid operators for a given filter type
 */
export declare function getOperatorsForFilterType(filterType: FilterType): SelectOption<FilterOperator>[];
/**
 * Get the default operator for a given filter type
 */
export declare function getDefaultOperator(filterType: FilterType): FilterOperator;
/**
 * Returns true if the operator requires no value input (unary operators)
 */
export declare function isUnaryOperator(operator: FilterOperator): boolean;
/**
 * Returns true if the operator needs two value inputs (between)
 */
export declare function isBetweenOperator(operator: FilterOperator): boolean;
/**
 * Pure filtering function — filters data based on columns, filter configs, and logic.
 * Returns filtered data array.
 */
export declare function filterData<T>(data: T[], columns: Column<T>[], filters: FilterConfig[], logic?: FilterLogic): T[];
