import { type ColumnFilter, type FilterOperator } from './operators.js';
/**
 * Normalizes an operator string to its canonical {@link FilterOperator},
 * resolving SQL-symbol aliases (`=` -> `equals`, `!=` -> `notEquals`, ...).
 * Canonical operators (and unknown strings) pass through unchanged.
 */
export declare function normalizeOperator(operator: string): FilterOperator;
/**
 * Maximum allowed nesting depth for AND/OR filter composition.
 * Prevents stack overflow from maliciously deep payloads (DoS).
 */
export declare const MAX_FILTER_DEPTH = 10;
export declare class InvalidColumnFilterError extends Error {
    constructor(message: string);
}
/**
 * Validates a ColumnFilter at runtime:
 * - field must be a non-empty string with no SQL-unsafe characters
 * - operator must be a known FilterOperator
 * - value is required for non-unary operators
 * - 'between' requires a 2-element array
 * - 'in'/'isAnyOf' require arrays
 * - AND/OR arrays are validated recursively
 */
export declare function validateColumnFilter(filter: ColumnFilter, depth?: number): void;
/**
 * Validates an array of ColumnFilter objects.
 */
export declare function validateColumnFilters(filters: ColumnFilter[]): void;
//# sourceMappingURL=validate-column-filter.d.ts.map