import { ApiBase } from './ApiBase';
import { AdaptablePredicateDef, ColumnFilterDef } from '../../AdaptableState/Common/AdaptablePredicate';
import { AdaptableColumn } from '../../AdaptableState/Common/AdaptableColumn';
import { ColumnFilter, ColumnFilterPredicate, InFilterValueInfo, InFilterValue } from '../../types';
import { IAdaptable } from '../../AdaptableInterfaces/IAdaptable';
import { ColumnFilterInternalApi } from '../Internal/ColumnFilterInternalApi';
import { ColumnFilterApi } from '../ColumnFilterApi';
export declare class ColumnFilterApiImpl extends ApiBase implements ColumnFilterApi {
    internalApi: ColumnFilterInternalApi;
    constructor(_adaptable: IAdaptable);
    getFilterPredicateDefsForColumn(column: AdaptableColumn): AdaptablePredicateDef[];
    getFilterPredicateDefsForColumnId(columnId: string): AdaptablePredicateDef[] | undefined;
    showQuickFilterBar(): void;
    hideQuickFilterBar(): void;
    isQuickFilterAvailable(): boolean;
    isQuickFilterVisible(): boolean;
    getColumnFilters(): ColumnFilter[];
    getActiveColumnFilters(): ColumnFilter[];
    getColumnFilterDefs(): ColumnFilterDef[];
    getColumnFiltersForLayout(layoutName: string): ColumnFilter[];
    setColumnFilters(columnFilters: ColumnFilter[]): ColumnFilter[] | null;
    clearColumnFilter(columnFilter: ColumnFilter): void;
    clearColumnFiltersForColumns(columns: string[]): void;
    getColumnFilterForColumn(columnId: string): ColumnFilter | undefined;
    clearColumnFilterForColumn(columnId: string): void;
    clearColumnFilters(): void;
    clearAndSetColumnFilters(columnFilters: ColumnFilter[]): void;
    columnFilterToString(columnFilter: ColumnFilter): string;
    columnFiltersToString(columnFilters: ColumnFilter[]): string;
    private getColumnFilterById;
    isColumnFilterActiveForColumn(columnId: string): boolean;
    /**
     * Checks if a filter is applied. It is applied when:
     * - has no inputs
     * - has inputs and inputs have values
     *
     * @param filter
     */
    isColumnFilterActive(filter: ColumnFilter): boolean;
    setColumnFilterForColumn(columnId: string, columnFilterPredicate: ColumnFilterPredicate): void;
    clearAndSetColumnFilterForColumn(columnId: string, columnFilterPredicate: ColumnFilterPredicate): void;
    suspendColumnFilter(columnFilter: ColumnFilter): void;
    unSuspendColumnFilter(columnFilter: ColumnFilter): void;
    suspendAllColumnFilters(): void;
    unSuspendAllColumnFilters(): void;
    addBlanksToInFilterValues(columnDistinctValues: InFilterValueInfo[]): InFilterValueInfo[];
    refreshFilterValues(columnId: string): Promise<InFilterValue[]>;
    refreshAllFilterValues(): Promise<Record<string, InFilterValue[]>>;
    resetFilterValues(columnId: string): void;
    resetAllFilterValues(): void;
}
