import { ComponentInterface, EventEmitter } from '../../stencil-public-runtime';
import { PopoverPlacement } from '../../utils/popover';
/**
 * Dropdowns expose additional content that “drops down” in a panel.
 *
 * @slot trigger - The dropdown's trigger.
 * @slot - The dropdown's content.
 *
 * @part base - The base element of the dropdown.
 * @part trigger - The trigger wrapper of the dropdown.
 * @part panel - The wrapper around the dropdown content.
 *
 * @version 1.0.0
 * @status stable
 */
export declare class Dropdown implements ComponentInterface {
    private dropdownId;
    private labelId;
    private ignoreOpenWatcher;
    private panel;
    private popover;
    private trigger;
    private positioner;
    private accessibleTrigger;
    private didLoad;
    private focusFirstEle;
    private get menu();
    host: HTMLNanoDropdownElement;
    /** Determines if the dropdown should open automatically when the trigger is clicked */
    autoOpen: boolean;
    /** Indicates whether or not the dropdown is open. You can use this in lieu of the show/hide methods. */
    open: boolean;
    handleOpenChange(): void;
    /**
     * Determines whether the dropdown should hide when a menu item is selected.
     */
    closeOnSelect: boolean;
    /**
     * The dropdown will close when the user interacts outside of this element (e.g. clicking).
     */
    containingElement: HTMLElement;
    /**
     * If you don't want to use the trigger slot, you can use this to 'tether' the dropdown to another element.
     * And you will still need to control when the component is opened (using show() / hide() or the `open` prop)
     */
    tetherTo: HTMLElement;
    handleTetherToChange(): void;
    /**
     * The preferred placement of the dropdown panel. Note that the actual placement may vary as needed to keep the panel
     * inside of the viewport.
     */
    placement: PopoverPlacement;
    /**
     * The distance in pixels from which to offset the panel away from its trigger.
     */
    distance: number;
    /**
     * The distance in pixels from which to offset the panel along its trigger.
     */
    skidding: number;
    /**
     * Enable this option to prevent the panel from being clipped when the component is placed inside a container with
     * `overflow: auto|scroll`.
     */
    hoist: boolean;
    handlePopoverOptionsChange(): void;
    /**
     * Title used to describe the dropdown content for accessibility
     */
    dialogTitle: string;
    /**
     * Emitted when the dropdown opens. Calling `event.preventDefault()` will prevent it from being opened.
     */
    nanoShow: EventEmitter;
    /**
     * Emitted after the dropdown opens and all transitions are complete.
     */
    nanoAfterShow: EventEmitter;
    /**
     * Emitted when the dropdown closes. Calling `event.preventDefault()` will prevent it from being closed.
     */
    nanoHide: EventEmitter;
    /**
     * Emitted after the dropdown closes and all transitions are complete.
     */
    nanoAfterHide: EventEmitter;
    /** @internal */
    eventType: EventEmitter;
    secondaryOpen(ev: CustomEvent): void;
    secondaryClose(ev: CustomEvent): void;
    handlePanelSelect(event: CustomEvent): void;
    /** Shows the dropdown panel */
    show(): Promise<void>;
    /** Hides the dropdown panel */
    hide(): Promise<void>;
    private afterHide;
    private togglePanel;
    private updateAccessibleTrigger;
    private handleDocumentKeyDown;
    private handleDocumentMouseDown;
    private handleTriggerKeyDown;
    private handleTriggerSlotChange;
    private createPopover;
    private isOverflowing;
    connectedCallback(): void;
    componentDidLoad(): void;
    disconnectedCallback(): void;
    render(): any;
}
