import { Disposable } from 'aurelia-framework';
import { DateUtils } from '../../../utils/date-utils';
interface IDataSourceOptions {
    rootProperty?: string;
    dataProperty?: string;
    pageProperty?: string;
    countProperty?: string;
    sortProperty?: string;
    orderProperty?: string;
    perPageProperty?: string;
    paginated?: boolean;
    recordsPerPage?: number;
    defaultSortProperty?: string;
    defaultSortOrder?: "asc" | "desc";
    filter?: (record: KeyValue) => boolean;
}
export declare class UIDataSource implements Disposable {
    private dateUtils;
    isPaginated: boolean;
    sortByProperty: string;
    sortByOrder: "asc" | "desc";
    filter: (record: KeyValue) => boolean;
    data: KeyValue[];
    private original;
    private options;
    private disposables;
    constructor(data: KeyValue[], options: IDataSourceOptions, dateUtils: DateUtils);
    listenForDataReordering(): void;
    dispose(): void;
    sortBy(property: string, order?: "desc" | "asc"): void;
    deboucePerformFilter: () => void;
    private performFilter;
    private sortData;
    private isDateValue;
    private isNumberValue;
}
export {};
