import { ChangeDetectorRef, EventEmitter, NgZone, OnDestroy, ViewContainerRef } from '@angular/core';
import { EvoDropdownOriginDirective } from './evo-dropdown-origin.directive';
import { ConnectedPosition } from '@angular/cdk/overlay';
import { EvoDropdownPositions } from './types/evo-dropdown-positions';
import * as i0 from "@angular/core";
declare type Position = EvoDropdownPositions | ConnectedPosition;
export declare class EvoDropdownComponent implements OnDestroy {
    protected readonly viewContainerRef: ViewContainerRef;
    private readonly ngZone;
    private readonly cdr;
    closeOnOutsideClick: boolean;
    scrollStrategy: 'noop' | 'close';
    dropdownOrigin: EvoDropdownOriginDirective;
    isOpenChange: EventEmitter<boolean>;
    outsideClick: EventEmitter<MouseEvent>;
    connectedPositions: ConnectedPosition[];
    private scrollEventSubscription;
    private destroy$;
    private _isOpen;
    get isOpen(): boolean;
    set isOpen(value: boolean);
    set positions(value: Position[] | Position);
    private get element();
    constructor(viewContainerRef: ViewContainerRef, ngZone: NgZone, cdr: ChangeDetectorRef);
    toggle(): void;
    open(): void;
    close(): void;
    ngOnDestroy(): void;
    onOverlayOutsideClick(event: MouseEvent): void;
    /**
     * Listens to the scroll in the dropdown container and closes it
     */
    private listenScroll;
    static ɵfac: i0.ɵɵFactoryDeclaration<EvoDropdownComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<EvoDropdownComponent, "evo-dropdown", never, { "closeOnOutsideClick": "closeOnOutsideClick"; "scrollStrategy": "scrollStrategy"; "dropdownOrigin": "dropdownOrigin"; "isOpen": "isOpen"; "positions": "positions"; }, { "isOpenChange": "isOpenChange"; "outsideClick": "outsideClick"; }, never, ["*"]>;
}
export {};
