/**-----------------------------------------------------------------------------------------
* Copyright © 2026 Progress Software Corporation. All rights reserved.
* Licensed under commercial license. See LICENSE.md in the project root for more information
*-------------------------------------------------------------------------------------------*/
import { EventEmitter } from '@angular/core';
import { DisabledItemsService } from '../disabled-items/disabled-items.service';
import * as i0 from "@angular/core";
/**
 * @hidden
 */
export interface SelectionEvent {
    indices: number[];
    added?: number | number[];
    removed?: number | number[];
    newSelection?: boolean;
    preventClosingPopup?: boolean;
    isMultipleSelection?: boolean;
}
/**
 * @hidden
 */
export declare class SelectionService {
    private disabledItemsService;
    onSelect: EventEmitter<SelectionEvent>;
    onChange: EventEmitter<SelectionEvent>;
    onFocus: EventEmitter<number>;
    total: number;
    lastClickedIndex: number;
    private selectedIndices;
    private focusedIndex;
    constructor(disabledItemsService: DisabledItemsService);
    getTotal(): number;
    isSelected(index: number): boolean;
    isFocused(index: number): boolean;
    focus(index: number): void;
    select(index: number): void;
    add(index: number, preventClosingPopup?: boolean): void;
    private indicesToBeRemoved;
    private indicesToBeAdded;
    emitMultipleAddedRemoved(): void;
    addMultiple(indices: number[]): void;
    deselect(index: number, preventClosingPopup?: boolean): void;
    unselectMultiple(indices: number[]): void;
    change(index: number): void;
    resetSelection(index: number | number[]): void;
    get selected(): number[];
    get focused(): number;
    set focused(index: number);
    selectFromTo(from: number, to: number): void;
    unselectFromTo(from: number, to: number): void;
    unselectNotNeededIndices(startOfSelection: number, endOfSelection: number, totalItems: number): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<SelectionService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<SelectionService>;
}
