import { ArchbaseActiveFilter, ArchbaseFilterOperator, FilterValue, ApiFilterFormat } from './ArchbaseCompositeFilters.types';
/**
 * Converte um filtro ativo para o formato RSQL
 *
 * @param filter - O filtro ativo a converter
 * @returns Uma string RSQL representando o filtro
 *
 * @example
 * ```ts
 * const filter: ArchbaseActiveFilter = {
 *   id: '1',
 *   key: 'nome',
 *   label: 'Nome',
 *   type: 'text',
 *   operator: 'contains',
 *   value: 'João',
 *   displayValue: 'João'
 * };
 * const rsql = convertFilterToRSQL(filter); // "nome=like=*João*"
 * ```
 */
export declare function convertFilterToRSQL(filter: ArchbaseActiveFilter): string;
/**
 * Converte uma lista de filtros ativos para uma query RSQL completa
 *
 * @param filters - Array de filtros ativos
 * @returns Uma string RSQL com todos os filtros combinados com AND ( ; )
 *
 * @example
 * ```ts
 * const filters: ArchbaseActiveFilter[] = [
 *   { id: '1', key: 'nome', label: 'Nome', type: 'text', operator: 'contains', value: 'João', displayValue: 'João' },
 *   { id: '2', key: 'idade', label: 'Idade', type: 'integer', operator: '>', value: 18, displayValue: '18' }
 * ];
 * const rsql = convertToRSQL(filters); // "nome=like=*João*;idade>18"
 * ```
 */
export declare function convertToRSQL(filters: ArchbaseActiveFilter[]): string | undefined;
/**
 * Converte um filtro para o formato de API
 */
export declare function convertToApiFormat(filter: ArchbaseActiveFilter): ApiFilterFormat;
/**
 * Converte uma lista de filtros para o formato de API
 */
export declare function convertToApiFormatList(filters: ArchbaseActiveFilter[]): ApiFilterFormat[];
/**
 * Obtém o valor de exibição formatado para um filtro
 */
export declare function getDisplayValue(value: FilterValue, type: string, operator: ArchbaseFilterOperator, options?: Array<{
    value: string;
    label: string;
}>): string;
/**
 * Obtém os operadores disponíveis para um tipo de dado
 */
export declare function getOperatorsForType(type: string): ArchbaseFilterOperator[];
/**
 * Obtém o operador padrão para um tipo de dado
 */
export declare function getDefaultOperatorForType(type: string): ArchbaseFilterOperator;
/**
 * Valida se um valor é válido para um operador e tipo
 */
export declare function validateFilterValue(value: FilterValue, type: string, operator: ArchbaseFilterOperator): boolean;
/**
 * Gera um ID único para um filtro
 */
export declare function generateFilterId(): string;
