import { ApiBase } from './ApiBase';
import { PredicateApi } from '../PredicateApi';
import { AdaptableColumnPredicate, AdaptablePredicate, AdaptablePredicateDef, PredicateDefHandlerContext, PredicateModuleScope } from '../../types';
import { IAdaptable } from '../../AdaptableInterfaces/IAdaptable';
import { PredicateInternalApi } from '../Internal/PredicateInternalApi';
import { TreeSelectionState } from '@infinite-table/infinite-react';
export declare const clearPredicateDefMapMemo: () => void;
export declare const getTreeSelectionStateForPredicateInputs: (inputs: any[], cache?: WeakMap<any[], TreeSelectionState>) => TreeSelectionState<any>;
export declare class PredicateApiImpl extends ApiBase implements PredicateApi {
    internalApi: PredicateInternalApi;
    constructor(_adaptable: IAdaptable);
    getPredicateDefs(): AdaptablePredicateDef<string>[];
    getSystemPredicateDefs(): AdaptablePredicateDef<string>[];
    getSystemPredicateDefsByModuleScope<PREDICATE_TYPE extends string = string>(moduleScope: PredicateModuleScope): AdaptablePredicateDef<PREDICATE_TYPE>[];
    getCustomPredicateDefs(): AdaptablePredicateDef[];
    getPredicateDefsByModuleScope(moduleScope: PredicateModuleScope): AdaptablePredicateDef[];
    getPredicateDefById(predicateId: string): AdaptablePredicateDef;
    getSystemPredicateDefById(predicateId: string): AdaptablePredicateDef;
    getCustomPredicateDefById(predicateId: string): AdaptablePredicateDef;
    predicateToString(predicate: AdaptableColumnPredicate): string | undefined;
    predicatesToString(predicates: AdaptableColumnPredicate[], logicalOperator?: string): string;
    isValidPredicate(predicate: AdaptableColumnPredicate | undefined): boolean;
    isEveryPredicateValid(predicates: AdaptablePredicate[]): boolean;
    handleColumnPredicate(predicate: AdaptableColumnPredicate | undefined, context: Omit<PredicateDefHandlerContext, 'adaptableApi' | 'inputs'>, defaultReturn: boolean): boolean;
    handleColumnPredicates(predicates: AdaptableColumnPredicate[], context: Omit<PredicateDefHandlerContext, 'adaptableApi' | 'inputs'>, defaultReturn: boolean): boolean;
    handlePredicate(predicate: AdaptablePredicate | undefined, context: Omit<PredicateDefHandlerContext, 'adaptableApi' | 'inputs'>, defaultReturn: boolean): boolean;
    handlePredicates(predicates: AdaptablePredicate[], params: Omit<PredicateDefHandlerContext, 'adaptableApi' | 'inputs'>, defaultReturn: boolean): boolean;
    useCaseSensitivity(columnId: string): boolean;
}
