/// <reference path="../../index.d.ts" />
import type SketchOptions from "@arcgis/core/views/interactive/sketch/SketchOptions.js";
import type { TooltipDirectionMode } from "@arcgis/core/views/interactive/tooltip/types.js";
import type { PublicLitElement as LitElement } from "@arcgis/lumina";
import type { T9nMeta } from "@arcgis/lumina/controllers";

/**
 * The sketch-tooltip-controls component provides a user interface to set specific options within Sketch's [SketchTooltipOptions](https://developers.arcgis.com/javascript/latest/references/core/views/interactive/sketch/SketchTooltipOptions/), [SkechLabelOptions](https://developers.arcgis.com/javascript/latest/references/core/views/interactive/sketch/SketchLabelOptions/), and [SketchValueOptions](https://developers.arcgis.com/javascript/latest/references/core/views/interactive/sketch/SketchValueOptions/) classes.
 *
 * @since 5.1
 * @internal
 */
export abstract class ArcgisSketchTooltipControls extends LitElement {
  /**
   * private
   *
   * @default false
   */
  get _hasContent(): boolean;
  /**
   * Indicates whether the direction (deflection) of the segment being drawn
   * is measured relative to the previous segment or from the main axis of the map
   * (usually north). See [SketchTooltipOptions](https://developers.arcgis.com/javascript/latest/references/core/views/interactive/sketch/SketchTooltipOptions/) and [SketchValueOptions](https://developers.arcgis.com/javascript/latest/references/core/views/interactive/sketch/SketchValueOptions/#directionMode).
   */
  accessor directionMode: TooltipDirectionMode;
  /**
   * Controls whether the labels toggle is shown for this component.
   *
   * > **Note:**  If this component is contained in another component, the parent
   * component is responsible for setting this property based on any
   * known limitations, including properties on the view. Specifically,
   * as of 5.1, if the view is a 2d video or linkchart instead of a map,
   * the parent component should set this property to `true`.
   *
   * @default false
   */
  accessor hideLabelsToggle: boolean;
  /**
   * Controls whether the tooltips toggle is shown for this component.
   *
   * @default false
   */
  accessor hideTooltipsToggle: boolean;
  /** The component's default label. */
  accessor label: string | undefined;
  /**
   * Indicates whether labels are shown next to each segment of the graphic being sketched.
   *
   * @default false
   */
  accessor labelsEnabled: boolean;
  /** @internal */
  protected messages: {
      componentLabel: string;
      directionModePicker: string;
      directionModeAbsolute: string;
      directionModeRelative: string;
      tooltipsToggle: string;
      tooltipsToggleHint: string;
      labelsToggle: string;
      labelsToggleHint: string;
  } & T9nMeta<{
      componentLabel: string;
      directionModePicker: string;
      directionModeAbsolute: string;
      directionModeRelative: string;
      tooltipsToggle: string;
      tooltipsToggleHint: string;
      labelsToggle: string;
      labelsToggleHint: string;
  }>;
  /**
   * Controls whether the direction mode picker is shown for this component.
   *
   * @default false
   */
  accessor showDirectionModePicker: boolean;
  /**
   * Controls whether a header is shown for this component.
   *
   * @default false
   */
  accessor showHeader: boolean;
  /** Controls the sketch labels, tooltips, and values options. */
  accessor sketchOptions: SketchOptions;
  /**
   * Indicates whether tooltips are shown while sketching and editing.
   *
   * @default false
   */
  accessor tooltipsEnabled: boolean;
  /** Emitted when the value of a property is changed. Use this to listen to changes to properties. */
  readonly arcgisPropertyChange: import("@arcgis/lumina").TargetedEvent<this, { name: "tooltipsEnabled" | "labelsEnabled" | "directionMode"; }>;
  readonly "@eventTypes": {
    arcgisPropertyChange: ArcgisSketchTooltipControls["arcgisPropertyChange"]["detail"];
  };
}