/** * Filter strategy pattern — maps column types × filter conditions to predicate functions. * Replaces the 130+ line if-else chain with a declarative lookup table. */ import type { IColumnType, IFilterCondition } from './types'; export interface INormalizedColumn { field: string; type: IColumnType; condition: IFilterCondition; value: string | number | boolean | undefined; filter: boolean; search: boolean; sort: boolean; hide: boolean; title?: string; width?: string; minWidth?: string; maxWidth?: string; headerClass?: string; cellClass?: string; isUnique?: boolean; html?: boolean; cellRenderer?: ((row: Record) => string) | string; } /** * Apply column filters to a row set. * Returns a new array — does not mutate the input. */ export declare const applyColumnFilters: (rows: Array>, columns: INormalizedColumn[]) => Array>; /** * Apply global search across searchable columns. * Returns a new array — does not mutate the input. */ export declare const applyGlobalSearch: (rows: Array>, columns: INormalizedColumn[], search: string) => Array>; /** * Apply sorting to a row set. * Returns a new sorted array — does not mutate the input. */ export declare const applySorting: (rows: Array>, sortColumn: string, sortDirection: string, isNumeric: boolean) => Array>;