import { VegaSlimmer } from '../../../../vega-slimmer/vega-slimmer-core';
import { VegaTimePicker } from '../../vega-time-picker';
import { TimeValue } from '../../types';
/** The `VegaTimePickerDropdownSelectedItemsController` class is responsible for managing the selected items in the dropdown of a time picker component. */
export declare class VegaTimePickerDropdownSelectedItemsController extends VegaSlimmer {
  selectedTimeValue: VegaTimePicker['selectedTimeValue'];
  mode: VegaTimePicker['mode'];
  value: VegaTimePicker['value'];
  timeFormat: VegaTimePicker['timeFormat'];
  dropdownSource: VegaTimePicker['dropdownSource'];
  increments: VegaTimePicker['increments'];
  disabled: VegaTimePicker['disabled'];
  singleDropdownRenderer: VegaTimePicker['singleDropdownRenderer'];
  rangeDropdownRenderer: VegaTimePicker['rangeDropdownRenderer'];
  private readonly DROPDOWN_ITEM_DEFAULT_HEIGHT;
  /**
   * The function syncSelectedItemsByValueChange updates the selected items based on a new value, if the value is a valid time string or empty.
   *
   *  @param {string} newValue - The `newValue` parameter is a string value that represents the new value that needs to be synchronized with the selected items.
   */
  syncSelectedItemsByValueChange(newValue: string): void;
  /**
   * The function syncSelectedItemsPositionWhenDropdownShow scrolls the selected element to the top when the dropdown is shown, but only if the dropdown is not disabled.
   *
   * @param {boolean} newValue - A boolean value indicating whether the dropdown is being shown or hidden.
   */
  syncSelectedItemsPositionWhenDropdownShow(newValue: boolean): void;
  /**
   * The function syncSelectedItemsPosition checks if there are selected items and scrolls to the
   * selected element if necessary.
   */
  syncSelectedItemsPosition(): void;
  /**
   * The function setSelectedItems sets the selectedTimeValue to the provided value.
   *
   * @param {TimeValue} value - The value parameter is of type TimeValue.
   */
  setSelectedItems(value: TimeValue): void;
  /**
   * The function "setSelectedItemsToCurrentTime" sets the selectedTimeValue to the current time in the specified time format.
   */
  setSelectedItemsToCurrentTime(): void;
  /**
   * The selected fill time is displayed in the dropdown, increments is set to handle the filled minute mismatch option.
   *
   * @param {string} value time picker value
   */
  initSelectedItemsByString: (value: string) => void;
  /**
   * The getClosetTimeValue function takes a current time string and returns an object with the hour, minute, and amPm values.
   *
   * @param {string} currentTime - The `currentTime` parameter is a string representing the current time. It should be in the format "HH:mm" for 24-hour format or "HH:mm AM/PM" for 12-hour format.
   * @returns {TimeValue} an object of type TimeValue.
   */
  getClosetTimeValue(currentTime: string): TimeValue;
  /**
   * scroll the selected item to top
   *
   * @param {HTMLElement} element the element which should scroll to top
   */
  scrollToSelectedElement: (element: HTMLElement) => void;
  /**
   * It is responsible for finding the closest minute value in the dropdown source that is less than or equal to the current minute value.
   *
   * @param {string} currentMinute minute string
   * @returns {string} the minute string which find in list
   */
  private getClosestMinuteForCurrent;
  /**
   * It is responsible for getting the current time based on the specified time format (either '12-hour' or '24-hour').
   *
   * @param {TimeFormat} timeFormat time format string
   * @returns {TimeValue} time value object
   */
  private getCurrentTime;
  /** The `selectedElementScrollTop` method is responsible for scrolling the selected element to the top of the dropdown list. */
  private selectedElementScrollTop;
}
