import { Point } from '@angular/cdk/drag-drop';
import { CdkOverlayOrigin } from '@angular/cdk/overlay';
import * as i0 from '@angular/core';
import { OnChanges, OnDestroy, ChangeDetectorRef, ViewContainerRef, NgZone, EventEmitter, SimpleChanges } from '@angular/core';
import { NgDocOverlayHost } from '@ng-doc/ui-kit/classes/overlay-host';
import { NgDocOverlayRef } from '@ng-doc/ui-kit/classes/overlay-ref';
import { NgDocOverlayProperties } from '@ng-doc/ui-kit/interfaces';
import { NgDocOverlayService } from '@ng-doc/ui-kit/services/overlay';
import { NgDocContent, NgDocOverlayPosition } from '@ng-doc/ui-kit/types';

declare class NgDocDropdownComponent implements OnChanges, OnDestroy {
    protected changeDetectorRef: ChangeDetectorRef;
    protected overlayService: NgDocOverlayService;
    protected viewContainerRef: ViewContainerRef;
    protected ngZone: NgZone;
    protected overlayHost: NgDocOverlayHost | null;
    content: NgDocContent;
    origin: CdkOverlayOrigin | Point | null;
    closeIfOutsideClick: boolean;
    closeIfInnerClick: boolean;
    withArrow: boolean;
    borderOffset: number;
    panelClass: string | string[];
    contactBorder: boolean;
    hasBackdrop: boolean;
    positions: NgDocOverlayPosition | NgDocOverlayPosition[];
    minHeight: number | string;
    maxHeight: number | string;
    height: number | string;
    minWidth: number | string;
    maxWidth: number | string;
    width: number | string;
    beforeOpen: EventEmitter<void>;
    afterOpen: EventEmitter<void>;
    beforeClose: EventEmitter<void>;
    afterClose: EventEmitter<void>;
    overlay: NgDocOverlayRef | null;
    overlayProperties: NgDocOverlayProperties;
    constructor();
    ngOnChanges({ origin }: SimpleChanges): void;
    get tabIndex(): number;
    focus(): void;
    get isFocused(): boolean;
    open(): void;
    close(): void;
    toggle(): void;
    get isOpened(): boolean;
    updateOverlayPosition(): void;
    private get currentOrigin();
    private getPositions;
    private getConfig;
    private getOverlayProperties;
    ngOnDestroy(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<NgDocDropdownComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<NgDocDropdownComponent, "ng-doc-dropdown", never, { "content": { "alias": "content"; "required": false; }; "origin": { "alias": "origin"; "required": false; }; "closeIfOutsideClick": { "alias": "closeIfOutsideClick"; "required": false; }; "closeIfInnerClick": { "alias": "closeIfInnerClick"; "required": false; }; "withArrow": { "alias": "withArrow"; "required": false; }; "borderOffset": { "alias": "borderOffset"; "required": false; }; "panelClass": { "alias": "panelClass"; "required": false; }; "contactBorder": { "alias": "contactBorder"; "required": false; }; "hasBackdrop": { "alias": "hasBackdrop"; "required": false; }; "positions": { "alias": "positions"; "required": false; }; "minHeight": { "alias": "minHeight"; "required": false; }; "maxHeight": { "alias": "maxHeight"; "required": false; }; "height": { "alias": "height"; "required": false; }; "minWidth": { "alias": "minWidth"; "required": false; }; "maxWidth": { "alias": "maxWidth"; "required": false; }; "width": { "alias": "width"; "required": false; }; }, { "beforeOpen": "beforeOpen"; "afterOpen": "afterOpen"; "beforeClose": "beforeClose"; "afterClose": "afterClose"; }, never, never, true, never>;
}

export { NgDocDropdownComponent };
