import { OnInit, EventEmitter, AfterViewInit, OnDestroy, TemplateRef } from '@angular/core';
import { MenuTemplateType, MenuItem } from '../menu/menu.component';
import { ButtonType } from '../button/button.component';
import { DisplayStatus } from '../../shared/display';
import { PopupStatus } from '../../shared/directives/popup/popup-container.directive';
export declare class DropdownComponent implements OnInit, AfterViewInit, OnDestroy {
    /**
     * Base id for the component's sub-elements
     */
    id?: string;
    /**
     * Automatically focus the dropdown toggle button
     */
    autofocus: boolean;
    /**
     * Controls the display status overlay for the menu
     */
    status?: DisplayStatus;
    /**
     * Disable the button to prevent the menu from being opened
     */
    disabled: boolean;
    /**
     * Optional label for the button
     */
    label?: string;
    /**
     * Optional icon for the button
     */
    icon?: string;
    /**
     * The button type, defaults to icon
     */
    buttonType?: ButtonType;
    /**
     * Optionally align the label of the button to the left or right. If not set,
     * will be centered.
     */
    buttonAlignment?: 'left' | 'right';
    /**
     * Adds a tooltip to the dropdown toggle button. Should only be used when
     * the toggle buttonType is 'icon'
     */
    buttonTitle: string;
    /**
     * The tabindex of the button
     */
    tabindex?: number;
    /**
     * Display a caret with the button label or icon
     */
    showArrow: boolean;
    /**
     * Items to display in the menu
     */
    items: MenuItem[];
    /**
     * The menu item template
     */
    menuTemplateType: MenuTemplateType;
    /**
     * Display a header on the menu
     */
    menuTitle?: string;
    /**
     * Set a fixed height for the menu, auto by default
     */
    menuHeight?: number;
    /**
     * Set a fixed width in pixels for the menu, auto by default
     */
    menuWidth?: number;
    /**
     * Set a min-width in pixels on the menu. It will expand if the content is greater than the min-width
     */
    menuMinWidth?: number;
    /**
     * Pin the menu to the left or right of the button. Right by default
     */
    menuPosition?: 'left' | 'right';
    /**
     * Sticky footer to display at the bottom of the popup menu
     */
    menuFooter?: string;
    /**
     * Fix position the menu instead of absolute. Useful when the dropdown is in a
     * dialog
     */
    popupFixed: boolean;
    /**
     * Pass a custom template to the toggle button
     */
    buttonCustomTemplate?: TemplateRef<any>;
    /**
     * Emits an event when a menu item is selected
     */
    itemSelected: EventEmitter<MenuItem>;
    /**
     * Emits an event when the popup menu opens
     */
    popupOpened: EventEmitter<void>;
    /**
     * The status of the menu
     */
    menuStatus: PopupStatus;
    /** Item to highlight when the menu is opened, used when the user
     *  opens the menu via the keyboard
     */
    highlightedItem: MenuItem | null;
    /** Used to know if the menu was toggled via the keyboard */
    private isKeyboardEvent;
    /**
     * Internal reference to the menu element
     */
    private menuEl;
    /**
     * Internal reference to the popup directive
     */
    private popup;
    /**
     * Internal reference to the toggle button component
     */
    private toggleButton;
    /**
     * Unsubscribe any active subscriptions when the component is destroyed
     */
    private componentDestroyed;
    constructor();
    /**
     * Subscribe to changes to the menu status
     */
    ngOnInit(): void;
    /**
     * Set up the popup
     */
    ngAfterViewInit(): void;
    /**
     * Unsubscribe to any active subscriptions
     */
    ngOnDestroy(): void;
    /**
     * Open and close the menu
     */
    toggleMenu(event?: Event): void;
    /**
     * Emit the selected item when it changes and close the menu
     */
    selectedChanged(item: MenuItem): void;
    /**
     * Closes the menu if the tab key is pressed
     */
    keyNavigate(event: KeyboardEvent): void;
}
