import { OnInit, OnDestroy, AfterViewInit, TemplateRef, QueryList, ElementRef, Renderer2, EventEmitter } from '@angular/core';
import { Highlightable } from '@angular/cdk/a11y';
import { EuiDropdownItemComponent } from './dropdown-item/eui-dropdown-item.component';
import { EuiDropdownService } from './eui-dropdown.service';
import * as i0 from "@angular/core";
/**
 * @description
 * The eui-dropdown component is composed of a trigger, usually a button, which allows to display the dropdown content specified with the eui-dropdown-content.
 */
export declare class EuiDropdownComponent implements OnInit, OnDestroy, AfterViewInit {
    /**
     * Sets the `data-e2e` attribute for dropodown panel. Default: `eui-dropdown`.
     *
     * @default 'eui-dropdown'
     */
    e2eAttr: string;
    /**
     * Sets the `tabindex` attribute for a dropdown panel.
     *
     * @default -1
     */
    tabIndex: number;
    /**
     * Sets the `width` attribute for the dropdown panel.
     *
     * @default 'auto'
     */
    width: string;
    /**
     * Sets the `height` attribute for the dropdown panel.
     *
     * @default 'auto'
     */
    height: string;
    /**
     * Sets the `position` attribute for the dropdown panel.
     *
     * @default 'bottom'
     */
    position: 'top' | 'right' | 'bottom' | 'left';
    /**
     * Sets the `subDropdownPosition` attribute for a multi-level dropdown.
     *
     * @default 'right'
     */
    subDropdownPosition: 'right' | 'left';
    /**
     * Sets the `isBlock` attribute in order for the dropdown to take the full width of the parent container.
     *
     * @default false
     */
    isBlock: boolean;
    /**
     * Sets the `isDropDownRightAligned` attribute to align the menu panel on the right of the opening element.
     *
     * @default false
     */
    isDropDownRightAligned: boolean;
    /**
     * Sets the `hasClosedOnClickInside` attribute which controls the auto-closing of the menu when clicking inside.
     *
     * @default true
     */
    hasClosedOnClickInside: boolean;
    /**
     * Sets the `isLabelUpdatedFromSelectedItem` attribute which updates the label of the trigger with the selected item.
     *
     * @default false
     */
    isLabelUpdatedFromSelectedItem: boolean;
    /**
     * Sets the `isExpandOnHover` attribute which opens the sub dropdown upon hover.
     *
     * @default false
     */
    isExpandOnHover: boolean;
    /**
     * Sets the `hasTabNavigation` attribute to tab within the dropdown content when there is rich content.
     *
     * @default false
     */
    hasTabNavigation: boolean;
    /**
     * Sets the `isRightClickEnabled` attribute to trigger the menu using the right mouse click.
     *
     * @default false
     */
    isRightClickEnabled: boolean;
    euiDisabled: boolean;
    /**
     * Event emitted when the menu expands.
     */
    expand: EventEmitter<boolean>;
    isDropdownOpen: EventEmitter<boolean>;
    templatePortalContent: TemplateRef<unknown>;
    triggerRef: ElementRef<HTMLElement>;
    euiDropdownItems: QueryList<Highlightable & EuiDropdownItemComponent>;
    trapFocusAutoCapture: boolean;
    parentDropdown: EuiDropdownComponent;
    isOpened: import("@angular/core").WritableSignal<boolean>;
    protected dropdownService: EuiDropdownService;
    private mousePositionX;
    private mousePositionY;
    private initialScrollX;
    private initialScrollY;
    private originX;
    private originY;
    private overlayX;
    private overlayY;
    private templatePortal;
    private overlayRef;
    private destroy$;
    private scrollDispatcherSubscription;
    private keydownListenerSubscription;
    private euiDropdownItemsEventSubscriptions;
    private activeDescendantKeyManagerChangeSubscription;
    private activeDescendantKeyManager;
    private origin;
    private positionStrategy;
    private scrollSubscription;
    private overlay;
    private viewContainerRef;
    private scrollDispatcher;
    private cd;
    protected _renderer: Renderer2;
    protected platformId: Object;
    private document;
    /**
     * @description
     * Computes and returns the CSS classes for the component based on its current state.
     *
     * @returns {string} Space-separated string of CSS class names
     */
    get cssClasses(): string;
    ngOnInit(): void;
    ngAfterViewInit(): void;
    ngOnDestroy(): void;
    /**
     * Whether the eui-dropdown is open.
     *
     * @deprecated This property will be removed in the future. Use `isOpened` signal instead.
     *
     * @usageNotes
     * ```html
     * <eui-dropdown #dropdown>
     *      <my-component *ngIf="dropdown.isOpen"></my-component>
     * </eui-dropdown>
     * ```
     * @returns A boolean with value `true` when open, otherwise `false`.
     */
    get isOpen(): boolean;
    /**
     * Method fired upon clicking the dropdown trigger.
     *
     * @param e Event triggered when the dropdown trigger is clicked.
     */
    onTriggerClicked(e: Event): void;
    /**
     * Method fired upon right clicking the dropdown trigger in case of context menu.
     *
     * @param e Event triggered when the dropdown trigger is right clicked.
     */
    onTriggerRightClicked(e: Event): void;
    /**
     * Method fired upon clicking the dropdown content.
     *
     */
    onClick(): void;
    /**
     * Method fired when the dropdown is opened.
     *
     * @param origin Origin of the dropdown position
     * @param position Position of the dropdown
     * @param position.x X coordinate of the dropdown position
     * @param position.y Y coordinate of the dropdown position
     */
    openDropdown(origin: HTMLElement, position?: {
        x: number;
        y: number;
    }): void;
    /**
     * Close a dropdown
     *
     * @param recursively If true, close the parent dropdown as well
     */
    closeDropdown(recursively?: boolean): void;
    /**
     * Method fired when the dropdown content is changed.
     *
     */
    projectContentChanged(): void;
    /**
     * Handles the keyboard navigation on the menu items upon opening the dropdown.
     *
     */
    createKeyboardHandlerSubscription(): void;
    /**
     * Sets the parent dropdown for a sub-dropdown.
     *
     * @param parentDropdown Parent dropdown component
     */
    setParentDropdown(parentDropdown: EuiDropdownComponent): void;
    /**
     * Checks the existence of focusable elements
     * @param origin The element to check
     */
    private isFocusableElement;
    /**
     * Method that returns the dropdown items.
     *
     * @type {boolean}
     */
    private get hasDropdownItems();
    /**
     * Method that returns the strategy for the overlay position.
     *
     * @type {FlexibleConnectedPositionStrategy}
     */
    private getPositionStrategy;
    /**
     * Method that returns the strategy for the contextual menu position.
     *
     * @type {GlobalPositionStrategy}
     */
    private getContextualMenuPositionStrategy;
    /**
     * Method that checks if the dropdown is visible.
     *
     * @param origin Origin of the dropdown position
     * @param scrollableParent Scrollable parent element
     * @type {boolean}
     */
    private isVisible;
    /**
     * Method that checks if the trigger is focusable upon closing the dropdown panel.
     *
     * @param origin Origin html element
     * @type {boolean}
     */
    private isTriggerFocusableOnClose;
    /**
     * Method that sets the position of the dropdown panel.
     *
     */
    private setPosition;
    static ɵfac: i0.ɵɵFactoryDeclaration<EuiDropdownComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<EuiDropdownComponent, "eui-dropdown", never, { "e2eAttr": { "alias": "e2eAttr"; "required": false; }; "tabIndex": { "alias": "tabIndex"; "required": false; }; "width": { "alias": "width"; "required": false; }; "height": { "alias": "height"; "required": false; }; "position": { "alias": "position"; "required": false; }; "subDropdownPosition": { "alias": "subDropdownPosition"; "required": false; }; "isBlock": { "alias": "isBlock"; "required": false; }; "isDropDownRightAligned": { "alias": "isDropDownRightAligned"; "required": false; }; "hasClosedOnClickInside": { "alias": "hasClosedOnClickInside"; "required": false; }; "isLabelUpdatedFromSelectedItem": { "alias": "isLabelUpdatedFromSelectedItem"; "required": false; }; "isExpandOnHover": { "alias": "isExpandOnHover"; "required": false; }; "hasTabNavigation": { "alias": "hasTabNavigation"; "required": false; }; "isRightClickEnabled": { "alias": "isRightClickEnabled"; "required": false; }; "euiDisabled": { "alias": "euiDisabled"; "required": false; }; }, { "expand": "expand"; "isDropdownOpen": "isDropdownOpen"; }, ["euiDropdownItems"], ["*", "eui-dropdown-content"], true, never>;
    static ngAcceptInputType_isBlock: unknown;
    static ngAcceptInputType_isDropDownRightAligned: unknown;
    static ngAcceptInputType_hasClosedOnClickInside: unknown;
    static ngAcceptInputType_isLabelUpdatedFromSelectedItem: unknown;
    static ngAcceptInputType_isExpandOnHover: unknown;
    static ngAcceptInputType_hasTabNavigation: unknown;
    static ngAcceptInputType_isRightClickEnabled: unknown;
    static ngAcceptInputType_euiDisabled: unknown;
}
//# sourceMappingURL=eui-dropdown.component.d.ts.map