import { EventEmitter, VNode } from "../../stencil-public-runtime";
import { LoadableComponent } from "../../utils/loadable";
/**
 * @slot logo - A slot for adding a `calcite-logo` component to the primary navigation level.
 * @slot user - A slot for adding a `calcite-user` component to the primary navigation level.
 * @slot progress - A slot for adding a `calcite-progress` component to the primary navigation level.
 * @slot navigation-action - A slot for adding a `calcite-action` component to the primary navigation level.
 * @slot content-start - A slot for adding a `calcite-menu`, `calcite-action`, or other interactive elements in the start position of any navigation level.
 * @slot content-center - A slot for adding a `calcite-menu`, `calcite-action`, or other interactive elements in the center position of the primary navigation level.
 * @slot content-end - A slot for adding a `calcite-menu`, `calcite-action`, or other interactive elements in the end position of any navigation level.
 * @slot navigation-secondary - A slot for adding a `calcite-navigation` component in the secondary navigation level. Components rendered here will not display `calcite-navigation-logo` or `calcite-navigation-user` components.
 * @slot navigation-tertiary - A slot for adding a `calcite-navigation` component in the tertiary navigation level.  Components rendered here will not display `calcite-navigation-logo` or `calcite-navigation-user` components.
 */
export declare class CalciteNavigation implements LoadableComponent {
  el: HTMLCalciteNavigationElement;
  /**
   * When `navigationAction` is `true`, specifies the label of the `calcite-action`.
   */
  label: string;
  /**
   * When `true`, displays a `calcite-action` and emits a `calciteNavActionSelect` event on selection change.
   */
  navigationAction: boolean;
  logoSlotHasElements: boolean;
  navigationActionSlotHasElements: boolean;
  primaryContentCenterSlotHasElements: boolean;
  primaryContentEndSlotHasElements: boolean;
  primaryContentStartSlotHasElements: boolean;
  progressSlotHasElement: boolean;
  secondarySlotHasElements: boolean;
  tertiarySlotHasElements: boolean;
  userSlotHasElements: boolean;
  navigationActionEl: HTMLCalciteActionElement;
  /** When `navigationAction` is true, emits when the displayed action selection changes.*/
  calciteNavigationActionSelect: EventEmitter<void>;
  /** When `navigation-action` is `true`, sets focus on the component's action element. */
  setFocus(): Promise<void>;
  componentWillLoad(): void;
  componentDidLoad(): void;
  private actionClickHandler;
  private handleUserSlotChange;
  private handleLogoSlotChange;
  private handleContentStartSlotChange;
  private handleContentEndSlotChange;
  private handleContentCenterSlotChange;
  private handleSecondarySlotChange;
  private handleTertiarySlotChange;
  private handleMenuActionSlotChange;
  private handleProgressSlotChange;
  private isPrimaryLevel;
  renderMenuAction(): VNode;
  render(): VNode;
}
