import { IconDefinition } from '@fortawesome/fontawesome-svg-core';
import { FilterConfig } from '../../../shared/types/table';
/**
 * Tipos de operadores de filtro disponibles
 */
export type FilterOperator = FilterConfig['operator'];
/**
 * Tipos de datos de columnas para determinar qué operadores mostrar
 */
export type ColumnDataType = 'text' | 'number' | 'date' | 'list';
/**
 * Tipo de compuerta lógica entre filtros
 */
export type LogicOperator = 'and' | 'or';
/**
 * Configuración extendida de filtro con metadata adicional
 */
export interface AdvancedFilterConfig {
    id: string;
    columnId: string;
    columnLabel: string;
    operator: FilterOperator;
    value: string | number | boolean | Date | (string | number)[] | null;
    value2?: string | number | boolean | Date | null;
    dataType?: ColumnDataType;
    label?: string;
    logicOperator?: LogicOperator;
}
/**
 * Opción de operador para el dropdown
 */
export interface FilterOperatorOption {
    value: FilterOperator;
    label: string;
    requiresValue: boolean;
    requiresSecondValue?: boolean;
    requiresOptions?: boolean;
    dataTypes: ColumnDataType[];
}
/**
 * Opciones de columna para el dropdown de selección
 */
export interface FilterColumnOption {
    value: string;
    label: string;
    dataType: ColumnDataType;
    options?: Array<{
        value: string | number;
        label: string;
    }>;
    icon?: IconDefinition;
}
/**
 * Configuración de filtros disponibles por columna
 */
export declare const FILTER_OPERATORS: FilterOperatorOption[];
//# sourceMappingURL=filter.d.ts.map