import { EventEmitter, ComponentInterface } from '../../stencil-public-runtime';
import type { NavItemEventDetail } from './nav-item-interface';
/**
 * Nav items provide options or links for the user to pick from a menu or navigation bar.
 *
 * @slot icon-start - an icon at the start of the main control
 * @slot icon-end - an icon at the end of the main control
 * @slot secondary - a content panel in which you can place any html to display on click
 * @slot close-button - a button to close the secondary content panel
 * @slot - use the default slot for either `<a>` or text (if constructing a secondary content panel or using `href` directly)
 *
 * @part trigger - the controlling `<a>` or `<button>` element
 * @part trigger--button - the controlling `<button>` element
 * @part trigger--anchor - the controlling <a> element
 * @part trigger-wrapper - the wrapping div around the control (shadow `<button>` / `<a>` or slotted `<a>`)
 * @part label - the label text of the nav item
 * @part modal - the div that contains the secondary content panel
 * @part modal--open - the div that contains the secondary content panel when open
 * @part modal--close - the div that contains the secondary content panel when closed
 * @part modal-content - the div that contains the secondary content panel content
 * @part modal-content--open - the div that contains the secondary content panel content when open
 * @part modal-mask - the div that covers the screen when the secondary content panel is open
 * @part close-button - the div that contains the close button for the secondary content panel
 * @part close-button-icon - the icon inside the close button for the secondary content panel
 *
 * @version 1.0.0
 * @status stable
 */
export declare class NavItem implements ComponentInterface {
    private secondaryDiv;
    private slotCtrl;
    private controlElement;
    private host;
    didOpen: boolean;
    isInMenuDrawer: boolean;
    /** Href to link to. Alternatively, slot an `<a>` element */
    href: string;
    /** Target to use for links */
    target: '_self' | '_blank' | '_parent' | '_top';
    /** Disable the nav item */
    disabled: boolean;
    /** Whether a secondary menu should be or is currently open */
    open: boolean;
    /** Whether this menu item is currently 'selected' */
    selected: boolean;
    /** Changes behaviour so automatically becomes `selected` onClick */
    checkbox: boolean;
    /** Whether secondary menus should close on blur */
    closeOnBlur: boolean;
    /** Emitted when the nav item closes it's secondary navigation. */
    nanoClose: EventEmitter<NavItemEventDetail>;
    /** Emitted when the nav item opens it's secondary navigation. */
    nanoOpen: EventEmitter<NavItemEventDetail>;
    /** Emitted when the nav item is about to open it's secondary navigation. */
    nanoOpening: EventEmitter<NavItemEventDetail>;
    /** Emitted when the nav item is about to close it's secondary navigation. */
    nanoClosing: EventEmitter<NavItemEventDetail>;
    /**
     * Sets focus on the first button or anchor present. Use this method instead of the global
     * `element.focus()`.
     */
    setFocus(): Promise<void>;
    openChange(): void;
    didOpenChange(): void;
    handleClose(e: KeyboardEvent): void;
    private closeSecondary;
    private openSecondary;
    private toggleSecondary;
    private handleClick;
    private handleDefaultSlotChange;
    /** Closes the secondary nav panel if it is open */
    closeMenu(): Promise<void>;
    /** Opens the secondary nav panel if it is not open */
    openMenu(): Promise<void>;
    connectedCallback(): void;
    componentDidLoad(): void;
    render(): any;
}
