/**
 * Utilities for creating a SketchTooltipControls class instance.
 *
 * @internal
 * @internal
 */

/**
 * @internal
 * @internal
 */
export interface VisibleElements {
  /**
   * Whether the direction mode picker is visible.
   *
   * @internal
   */
  directionModePicker?: boolean;
  /**
   * Whether the header is visible.
   *
   * @internal
   */
  header?: boolean;
  /**
   * Whether the labels toggle is visible.
   *
   * @internal
   */
  labelsToggle?: boolean;
  /**
   * Whether the tooltips toggle is visible.
   *
   * @internal
   */
  tooltipsToggle?: boolean;
}

/**
 * @internal
 * @internal
 */
export interface SketchTooltipControlsInterface {
  /** @internal */
  destroy(): void;
}

/**
 * Factory method for creating instances of SketchTooltipControls.
 *
 * @param visibleElements - Determines which elements are visible, such as labels or tooltips.
 * @param sketchOptions - Determines which sketch options to show, such as labels or tooltips.
 * @param viewType - Type of view; determines whether SegmentLabels toggle will be shown (only for 3D)
 * @returns The created SketchTooltipControls instance.
 * @internal
 * @internal
 */
export function createSketchTooltipControls(visibleElements: VisibleElements, sketchOptions: any, viewType?: "2d" | "3d" | null | undefined): SketchTooltipControlsInterface;