import { TrackByFunction } from "@angular/core";
import { LoggerService } from "../../services/log-service";
import { ISelection, ISelectorState } from "../../services/public-api";
import { RepeatSelectionMode } from "../repeat/types";
import { SelectionType } from "./public-api";
import * as i0 from "@angular/core";
/**
 * @ignore
 */
export declare class SelectorService {
    private logger?;
    /**
     * Map if SelectionType to internationalized selector options
     */
    i18nTitleMap: Record<string, string>;
    constructor(logger?: LoggerService | undefined);
    /**
     * Allows to react on changes of a selector component.
     * If user has selected one of the options in a selector (Select all items pages, Select all items on all pages),
     * the new selection object should be created.
     * @param {ISelection} currentSelection
     * @param {any[]} currentItems Items on current page
     * @param {SelectionType} selectorValue
     * @param {number} totalItems
     * @param trackBy
     * @param {boolean} virtualScroll Enables virtual scroll selection behavior
     * @returns {ISelection} New selection object
     */
    applySelector(currentSelection: ISelection, currentItems: any[], selectorValue: SelectionType, totalItems: number, trackBy?: TrackByFunction<any>, virtualScroll?: boolean): ISelection;
    /**
     * You may need to obtain the set of items that are selected given selection object and some set of items.
     * @param {ISelection} selection
     * @param {any[]} items
     * @returns {any[]} Set of items
     */
    getSelectedItems(selection: ISelection, items: any[]): any[];
    /**
     * Allows to react on changes of selected items (for selector).
     * If user selects some items directly in a list, selector state may change
     * @param {ISelection} currentSelection
     * @param {number} totalOnCurrentPage
     * @param {number} selectedOnCurrentPage
     * @param totalItems
     * @param selectedOnAllPages
     * @param {boolean} virtualScroll Enables virtual scroll selection behavior
     * @returns {ISelectorState}
     */
    getSelectorState(currentSelection: ISelection, totalOnCurrentPage: number, selectedOnCurrentPage: number, totalItems?: number, selectedOnAllPages?: number, virtualScroll?: boolean): ISelectorState;
    /**
     * Allows to react on selection.
     * @param {ISelection} prevSelection Previous selection
     * @param {any[]} selectedItems Selected items on the current page
     * @param {any[]} items Items on the current page
     * @param {RepeatSelectionMode} selectionMode One of possible repeater selection modes
     * @param {number} totalItems Deprecated in v9 - Unused - Removal: NUI-5809
     * @returns {ISelection} New selection
     */
    selectItems(prevSelection: ISelection, selectedItems: any[], items: any[], selectionMode: RepeatSelectionMode, totalItems?: number): ISelection;
    private getIncludedItems;
    private getExcludedItems;
    private getFlatSelectorItems;
    static ɵfac: i0.ɵɵFactoryDeclaration<SelectorService, [{ optional: true; }]>;
    static ɵprov: i0.ɵɵInjectableDeclaration<SelectorService>;
}
