import { services, filters } from 'typescript-angular-utilities';
import __object = services.object;
import { ISort } from '../../sorts/sort';
import { IDataPagerOld } from '../../paging/index';
import { Sorter } from '../../sorts/sorter/sorter.service';
export interface IProcessResult<TDataType> {
    count: number;
    filteredDataSet: TDataType[];
    dataSet: TDataType[];
}
export interface IWrappedItem<TItemType> {
    data: TItemType;
    filterData: any;
}
export interface IDataSourceProcessorOld {
    process<TDataType>(sorts: ISort[], filters: filters.IFilter[], pager: IDataPagerOld, data: TDataType[]): IProcessResult<TDataType>;
    processAndCount<TDataType>(sorts: ISort[], filters: filters.IFilterWithCounts[], pager: IDataPagerOld, data: TDataType[]): IProcessResult<TDataType>;
    sort<TDataType>(data: TDataType[], sorts: ISort[]): TDataType[];
    page<TDataType>(data: TDataType[], pager: IDataPagerOld): TDataType[];
}
export declare class DataSourceProcessorOld implements IDataSourceProcessorOld {
    private object;
    private sorter;
    constructor(object: __object.ObjectUtility, sorter: Sorter);
    process<TDataType>(sorts: ISort[], filters: filters.IFilter[], pager: IDataPagerOld, data: TDataType[]): IProcessResult<TDataType>;
    processAndCount<TDataType>(sorts: ISort[], filters: filters.IFilterWithCounts[], pager: IDataPagerOld, data: TDataType[]): IProcessResult<TDataType>;
    sort<TDataType>(data: TDataType[], sorts: ISort[]): TDataType[];
    page<TDataType>(data: TDataType[], pager: IDataPagerOld): TDataType[];
    private wrapData<TDataType>(data);
    private unwrapData<TDataType>(data);
}
