import { AfterContentInit, AfterViewInit, ElementRef, EventEmitter, OnChanges, OnDestroy, OnInit, SimpleChange } from '@angular/core';
import { SelectionEventsEmitter, RTSelectionEvent } from './providers/selection-events-emitter';
import { RTSelectionEventsHelper } from './providers/selection-events-helper';
import { RTSelectionService } from './providers/selection.service';
import { SelectableDirective } from './selectable.directive';
import { SelectionCheckboxForDirective } from './selection-checkbox-for.directive';
import * as i0 from "@angular/core";
export declare class SelectionAreaDirective implements SelectionEventsEmitter, AfterContentInit, OnChanges, OnInit, AfterViewInit, OnDestroy {
    private parentSelectionArea;
    selectionService: RTSelectionService;
    selectionEventsHelper: RTSelectionEventsHelper;
    private selectableItems;
    private childSelectionCheckboxes;
    private childSelectionAreas;
    private selectablesChangedSubscription;
    private selectablesChangedSubject;
    private childSelectionAreasChangedSubscription;
    private childSelectionAreasChangedSubject;
    tabIndex: number;
    set preventEventsDefaults(value: boolean);
    set stopEventsPropagation(value: boolean);
    set horizontal(value: boolean);
    set multiple(value: boolean);
    set toggleOnly(value: boolean);
    autoSelectFirst: boolean;
    set trackBy(value: (index: number, item: any) => any);
    readonly itemSelected: EventEmitter<RTSelectionEvent>;
    readonly itemDeselected: EventEmitter<RTSelectionEvent>;
    readonly selectionChanged: EventEmitter<RTSelectionEvent>;
    constructor(parentSelectionArea: SelectionAreaDirective, selectionService: RTSelectionService, selectionEventsHelper: RTSelectionEventsHelper);
    ngOnInit(): void;
    ngAfterViewInit(): void;
    ngOnDestroy(): void;
    ngOnChanges(changes: {
        multiple?: SimpleChange;
        autoSelectFirst?: SimpleChange;
    }): void;
    keyDownHandler(ctrlKeyPressed: boolean, shiftKeyPressed: boolean, keyCode: number, preventDefaultFn: () => void, stopPropagationFn: () => void, executionContext: any): void;
    registerSelectable(selectable: SelectableDirective, elementRef: ElementRef): void;
    unregisterSelectable(selectable: SelectableDirective): void;
    registerSelectionCheckbox(checkbox: SelectionCheckboxForDirective, elementRef: ElementRef): void;
    unregisterSelectionCheckbox(checkbox: SelectionCheckboxForDirective): void;
    registerChildSelectionArea(selectionArea: SelectionAreaDirective): void;
    unregisterChildSelectionArea(selectionArea: SelectionAreaDirective): void;
    ngAfterContentInit(): void;
    private buildSelectionSource;
    private buildSelectionServicesList;
    static ɵfac: i0.ɵɵFactoryDeclaration<SelectionAreaDirective, [{ optional: true; skipSelf: true; }, { self: true; }, { self: true; }]>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<SelectionAreaDirective, "[rtSelectionArea]", ["rtSelectionArea"], { "preventEventsDefaults": { "alias": "preventEventsDefaults"; "required": false; }; "stopEventsPropagation": { "alias": "stopEventsPropagation"; "required": false; }; "horizontal": { "alias": "horizontal"; "required": false; }; "multiple": { "alias": "multiple"; "required": false; }; "toggleOnly": { "alias": "toggleOnly"; "required": false; }; "autoSelectFirst": { "alias": "autoSelectFirst"; "required": false; }; "trackBy": { "alias": "trackBy"; "required": false; }; }, { "itemSelected": "itemSelected"; "itemDeselected": "itemDeselected"; "selectionChanged": "selectionChanged"; }, never, never, false, never>;
}
//# sourceMappingURL=selection-area.directive.d.ts.map