import * as i0 from '@angular/core';
import { AfterViewInit, OnChanges, OnDestroy, ElementRef, SimpleChanges } from '@angular/core';
import { NgDocHorizontalAlign, NgDocVerticalAlign } from '@ng-doc/ui-kit/types';
import { Observable } from 'rxjs';

declare class NgDocSelectionComponent implements AfterViewInit {
    private readonly elementRef;
    private readonly selectionHost;
    align: NgDocHorizontalAlign | NgDocVerticalAlign;
    private readonly destroyRef;
    constructor();
    ngAfterViewInit(): void;
    private setStyles;
    private getPosition;
    static ɵfac: i0.ɵɵFactoryDeclaration<NgDocSelectionComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<NgDocSelectionComponent, "ng-doc-selection", never, { "align": { "alias": "align"; "required": false; }; }, {}, never, never, true, never>;
}

declare class NgDocSelectionOriginDirective implements OnChanges, OnDestroy {
    readonly elementRef: ElementRef<HTMLElement>;
    private readonly selectionHost;
    selected: boolean;
    /** Inserted by Angular inject() migration for backwards compatibility */
    constructor(...args: unknown[]);
    ngOnChanges({ selected }: SimpleChanges): void;
    ngOnDestroy(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<NgDocSelectionOriginDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<NgDocSelectionOriginDirective, "[ngDocSelectionOrigin]", never, { "selected": { "alias": "ngDocSelectionOrigin"; "required": false; }; }, {}, never, never, true, never>;
}

declare class NgDocSelectionHostDirective {
    private origins;
    private selected?;
    private selectedChange;
    get selectedChange$(): Observable<HTMLElement | undefined>;
    addOrigin(origin: NgDocSelectionOriginDirective): void;
    removeOrigin(origin: NgDocSelectionOriginDirective): void;
    changeSelected(origin: NgDocSelectionOriginDirective, selected: boolean): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<NgDocSelectionHostDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<NgDocSelectionHostDirective, "[ngDocSelectionHost]", never, {}, {}, never, never, true, never>;
}

export { NgDocSelectionComponent, NgDocSelectionHostDirective, NgDocSelectionOriginDirective };
