import { SearchService } from "../search.service";
import { DataSourceService } from "./data-source.service";
import { IFilter, IFilterGroup, IFilteringOutputs, IMultiFilterMetadata, INovaFilteringOutputs, INovaFilters } from "./public-api";
/** @ignore */
interface ComparisonItems {
    previousValue: any;
    currentValue: any;
}
/**
 * <example-url>./../examples/index.html#/common/data-source-service/deprecated-client-side</example-url>
 * @deprecated in v11 - use ClientSideDataSource instead - Removal: NUI-5796
 */
export declare class LocalFilteringDataSource<T, F extends INovaFilters = INovaFilters> extends DataSourceService<T, F> {
    protected searchService: SearchService;
    protected _allData: T[];
    protected _allCategoriesResult: IFilteringOutputs;
    protected _searchProps: string[];
    protected virtualScrollData: T[];
    constructor(searchService: SearchService);
    setData(initialData?: T[]): void;
    setSearchProperties(properties: string[]): void;
    getFilteredData(filters: F): Promise<INovaFilteringOutputs>;
    protected prepareData(): T[];
    protected searchHandler(searchTerm: any): any[];
    protected multiFilterHandler(nextChunk: any, multiFiltersArr: any): any;
    protected sortingHandler(filters: any, nextChunk: any): any;
    protected paginationHandler(filters: any, nextChunk: any): any;
    protected virtualScrollHandler(filters: any, nextChunk: any): any;
    /**
     * @deprecated in v11 - Use filtersChanged instead - Removal: NUI-5796
     */
    protected paginationReset(filters: any, itemsToCompare: any): boolean;
    filtersChanged(filters: any, itemsToCompare: any): boolean;
    protected setItemsToCompare(filters: F, nextChunk: T[], searchTerm: string | undefined, multiFiltersArr: IFilterGroup<IFilter<string[], IMultiFilterMetadata>>[]): ComparisonItems[];
    protected extractMultiFilters(filters: F): IFilterGroup<IFilter<string[], IMultiFilterMetadata>>[];
    private getSelectedFilters;
    private countAvailableResults;
    private searchThru;
    private getAllCategories;
    private isValueChanged;
}
export {};
