import { type DataFrame, type FilterQuery, type Pagination, type QueryCombinator } from '../../types';
import type { ColumnTypeHint, DataResponse } from './tabular-variable';
export declare enum ColumnType {
    CATEGORICAL = "categorical",
    DATETIME = "datetime",
    NUMERICAL = "numerical"
}
/**
 * Combine filters with a given combinator
 *
 * @param combinator combinator to use
 * @param queries any number of queries to combine
 */
export declare function combineFilters(combinator: QueryCombinator, queries: Array<FilterQuery | null>): FilterQuery | null;
/**
 * Infer column type from a value and optional type hints
 *
 * @param value sample value from the column
 * @param hint optional type hint from column definition
 */
export declare function inferColumnType(value: any, hint?: ColumnTypeHint): ColumnType;
/**
 * Apply filters and pagination to tabular data
 *
 * @param data array of data rows
 * @param filters optional filter query
 * @param pagination optional pagination settings
 * @param columnHints optional column type hints
 */
export declare function applyFilters(data: DataFrame, filters?: FilterQuery | null, pagination?: Pagination | null, columnHints?: Record<string, ColumnTypeHint>): DataResponse;
export declare function createFetcher(df: DataFrame): (filters: FilterQuery | null, pagination: Pagination | null) => Promise<DataResponse>;
//# sourceMappingURL=filtering.d.ts.map