import type { SlickGrid } from '../core/slickGrid.js';
import { type FilterMultiplePassType } from './../enums/index.js';
import type { CollectionFilterBy, CollectionSortBy, Column } from './../interfaces/index.js';
import type { TranslaterService } from './translater.service.js';
interface ParsingDateDetails {
    columnId: number | string;
    dateFormat: string;
    queryFieldName: string;
}
export declare class CollectionService<T = any> {
    protected readonly translaterService?: TranslaterService | undefined;
    constructor(translaterService?: TranslaterService | undefined);
    /**
     * Filter 1 or more items from a collection
     * @param collection
     * @param filterByOptions
     */
    filterCollection(collection: T[], filterByOptions: CollectionFilterBy | CollectionFilterBy[], filterResultBy?: FilterMultiplePassType | null): T[];
    /** Pre-parse date items as `Date` object to improve Date Sort considerably */
    preParseByMutationDateItems(items: any[], grid: SlickGrid, preParseDateColumns: boolean | string): void;
    parseSingleDateItem(item: any, grid: SlickGrid, preParseDateColumns: boolean | string): void;
    /**
     * Filter an item from a collection
     * @param collection
     * @param filterBy
     */
    singleFilterCollection(collection: T[], filterBy: CollectionFilterBy): T[];
    /**
     * Sort 1 or more items in a collection
     * @param column definition
     * @param collection
     * @param sortByOptions
     * @param enableTranslateLabel
     */
    sortCollection(columnDef: Column, collection: T[], sortByOptions: CollectionSortBy | CollectionSortBy[], enableTranslateLabel?: boolean): T[];
    protected getParseDateInfo(col: Column, preParseDateColumns: boolean | string): ParsingDateDetails | void;
    protected reassignDateWhenValid(item: any, columnId: number | string, dateFormat: string, queryFieldName: string): void;
}
export {};
//# sourceMappingURL=collection.service.d.ts.map