import { Subject } from 'rxjs';
import { services, filters } from 'typescript-angular-utilities';
import __array = services.array;
import { IDataSourceOld } from './dataSource';
import { IDataSourceProcessorOld, IProcessResult } from './processor/dataSourceProcessorOld.service';
import { ISort } from '../sorts/sort';
import { IDataPagerOld } from '../paging/index';
export declare class DataSourceBaseOld<TDataType> implements IDataSourceOld<TDataType> {
    private dataSourceProcessor;
    protected array: __array.IArrayUtility;
    dataSet: TDataType[];
    filteredDataSet: TDataType[];
    rawDataSet: TDataType[];
    sorts: ISort[];
    filters: filters.IFilter[];
    pager: IDataPagerOld;
    private _count;
    countFilterGroups: boolean;
    loadingDataSet: boolean;
    private _isEmpty;
    countChanges: Subject<number>;
    redrawing: Subject<void>;
    changed: Subject<void>;
    added: Subject<void>;
    removed: Subject<void>;
    replaced: Subject<void>;
    count: number;
    constructor(dataSourceProcessor: IDataSourceProcessorOld, array: __array.IArrayUtility);
    initPager(): void;
    readonly needsRefinedSearch: boolean;
    isEmpty: boolean;
    clear(): void;
    processData(): void;
    processDataNoClientFilters(): void;
    setProcessedData(processedData: IProcessResult<TDataType>): void;
    onSortChange(): void;
    onPagingChange(): void;
    refresh(): void;
    remove(data: TDataType): void;
    push(data: TDataType): void;
    replace(oldData: TDataType, newData: TDataType): void;
}
