import { EventEmitter, VNode } from "../../stencil-public-runtime";
import { Scale, SelectionMode } from "../interfaces";
import { TreeItemSelectDetail } from "../tree-item/interfaces";
/**
 * @slot - A slot for `calcite-tree-item` elements.
 */
export declare class Tree {
  el: HTMLCalciteTreeElement;
  /** Displays indentation guide lines. */
  lines: boolean;
  /**
   * @internal
   */
  child: boolean;
  /** Specifies the size of the component. */
  scale: Scale;
  /**
   * Specifies the selection mode, where
   * `"ancestors"` displays with a checkbox and allows any number of selections from corresponding parent and child selections,
   * `"children"` allows any number of selections from one parent from corresponding parent and child selections,
   * `"multichildren"` allows any number of selections from corresponding parent and child selections,
   * `"multiple"` allows any number of selections,
   * `"none"` allows no selections,
   * `"single"` allows one selection, and
   * `"single-persist"` allows and requires one selection.
   *
   * @default "single"
   */
  selectionMode: SelectionMode;
  /**
   * Specifies the component's selected items.
   *
   * @readonly
   */
  selectedItems: HTMLCalciteTreeItemElement[];
  componentWillRender(): void;
  render(): VNode;
  onFocus(): void;
  onFocusIn(event: FocusEvent): void;
  onFocusOut(event: FocusEvent): void;
  onClick(event: CustomEvent<TreeItemSelectDetail>): void;
  keyDownHandler(event: KeyboardEvent): void;
  updateAncestorTree(event: CustomEvent<TreeItemSelectDetail>): void;
  /**
   * Fires when the user selects/deselects `calcite-tree-items`.
   */
  calciteTreeSelect: EventEmitter<void>;
  getRootTabIndex(): number;
}
