import { ElementRef, EventEmitter, OnDestroy, Renderer2, NgZone, AfterViewInit, AfterContentInit } from '@angular/core';
import { Observable } from 'rxjs';
import { ShortcutService } from './shortcut.service';
import { SelectBox, SelectContainerHost, PredicateFn } from './models';
import { KeyboardEventsService } from './keyboard-events.service';
import * as i0 from "@angular/core";
export declare class SelectContainerComponent implements AfterViewInit, OnDestroy, AfterContentInit {
    private platformId;
    private shortcuts;
    private keyboardEvents;
    private hostElementRef;
    private renderer;
    private ngZone;
    host: SelectContainerHost;
    selectBoxStyles$: Observable<SelectBox<string>>;
    selectBoxClasses$: Observable<{
        [key: string]: boolean;
    }>;
    private $selectBox;
    private $selectableItems;
    selectedItems: any;
    selectOnDrag: boolean;
    disabled: boolean;
    disableDrag: boolean;
    selectOnClick: boolean;
    dragOverItems: boolean;
    disableRangeSelection: boolean;
    selectMode: boolean;
    selectWithShortcut: boolean;
    custom: boolean;
    readonly hostClass = true;
    selectedItemsChange: EventEmitter<any>;
    select: EventEmitter<any>;
    itemSelected: EventEmitter<any>;
    itemDeselected: EventEmitter<any>;
    selectionStarted: EventEmitter<void>;
    selectionEnded: EventEmitter<any[]>;
    private _tmpItems;
    private _selectedItems$;
    private _selectableItems;
    private updateItems$;
    private destroy$;
    private _lastRange;
    private _lastStartIndex;
    private _newRangeStart;
    private _lastRangeSelection;
    constructor(platformId: Record<string, unknown>, shortcuts: ShortcutService, keyboardEvents: KeyboardEventsService, hostElementRef: ElementRef, renderer: Renderer2, ngZone: NgZone);
    ngAfterViewInit(): void;
    ngAfterContentInit(): void;
    selectAll(): void;
    toggleItems<T>(predicate: PredicateFn<T>): void;
    selectItems<T>(predicate: PredicateFn<T>): void;
    deselectItems<T>(predicate: PredicateFn<T>): void;
    clearSelection(): void;
    update(): void;
    ngOnDestroy(): void;
    private _filterSelectableItems;
    private _initSelectedItemsChange;
    private _observeSelectableItems;
    private _observeBoundingRectChanges;
    private _initSelectionOutputs;
    private _calculateBoundingClientRect;
    private _cursorWithinHost;
    private _onMouseUp;
    private _onMouseDown;
    private _selectItems;
    private _isExtendedSelection;
    private _normalSelectionMode;
    private _extendedSelectionMode;
    private _flushItems;
    private _addItem;
    private _removeItem;
    private _toggleItem;
    private _selectItem;
    private _deselectItem;
    private _hasItem;
    private _getClosestSelectItem;
    private _resetRangeStart;
    private _getLastRangeSelection;
    static ɵfac: i0.ɵɵFactoryDeclaration<SelectContainerComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<SelectContainerComponent, "dts-select-container", ["dts-select-container"], { "selectedItems": "selectedItems"; "selectOnDrag": "selectOnDrag"; "disabled": "disabled"; "disableDrag": "disableDrag"; "selectOnClick": "selectOnClick"; "dragOverItems": "dragOverItems"; "disableRangeSelection": "disableRangeSelection"; "selectMode": "selectMode"; "selectWithShortcut": "selectWithShortcut"; "custom": "custom"; }, { "selectedItemsChange": "selectedItemsChange"; "select": "select"; "itemSelected": "itemSelected"; "itemDeselected": "itemDeselected"; "selectionStarted": "selectionStarted"; "selectionEnded": "selectionEnded"; }, ["$selectableItems"], ["*"]>;
}
