import { VegaSlimmer } from '../../../../vega-slimmer/vega-slimmer-core';
import { VegaDropdown } from '../../vega-dropdown';
/**
 * The `VegaDropdownScrollableController` class in TypeScript manages the behavior of a scrollable dropdown component,
 * adjusting list container height and scrolling to specific indexes based on render mode and selected source key.
 */
export declare class VegaDropdownScrollableController extends VegaSlimmer {
  static readonly actionButtonContentHeight: number;
  static readonly dropdownLayoutSpaceHeight: number;
  isDropdownShow: VegaDropdown['isDropdownShow'];
  renderModeController: VegaDropdown['renderModeController'];
  sourceForRender: VegaDropdown['sourceForRender'];
  selectType: VegaDropdown['selectType'];
  selectedSourceKey: VegaDropdown['selectedSourceKey'];
  searchable: VegaDropdown['searchable'];
  listRenderer: VegaDropdown['listRenderer'];
  renderer: VegaDropdown['renderer'];
  resettable: VegaDropdown['resettable'];
  /**
   * The function `watchIsDropdownShow` adjusts the list container height and scrolls to a specific index
   * if the dropdown is shown in a certain render mode.
   */
  watchIsDropdownShow(): Promise<void>;
  /**
   * While resettable, we should listen selected key to decide adjust max height of list container.
   *
   * @param {string[] | string} newValue - new value.
   * @param {string[] | string} oldValue - old value.
   */
  watchSelectedSourceKey(newValue: VegaDropdown['selectedSourceKey'], oldValue: VegaDropdown['selectedSourceKey']): void;
  /**
   * Listen scrolling of dropdown content
   */
  onScroll: () => void;
  /**
   * The function scrollToSelected asynchronously scrolls to a selected index based on the render mode.
   */
  private scrollToSelectedIndex;
  /**
   * The function scrollToVirtualIndex asynchronously scrolls to a specific index in a virtual list based
   * on the selected key.
   */
  private scrollToVirtualIndex;
  /**
   * The function scrollToTemplateIndex scrolls the dropdown content box to the selected item key.
   */
  private scrollToTemplateIndex;
  /**
   * The function `getSelectedKey` returns the selected key based on the `selectType` condition.
   *
   * @returns {string} The `getSelectedKey` method returns a string value. If `this.selectType` is equal to
   * 'multiple', it returns the first element of the `selectedSourceKey` array as a string. Otherwise, it
   * returns the `selectedSourceKey` value as a string.
   */
  private getSelectedKey;
  /**
   * we only calculate surplus space of bottom, we should calculate maxHeight more accurately here.
   * such as minus the gap of dropdown, the dropdown padding top and bottom, the gap of bottom.
   * if with searchable, we should minus the height of searchable.
   * if the dropdown in the top of host, we should only minus top of distance from vega-dropdown to vega-dropdown-container.
   */
  private adjustListContainerMaxHeight;
  /**
   * The function `setItemsContainerMaxHeight` adjusts the maximum height of the items container based on
   * the render mode.
   *
   * @param {number} maxHeight - The `maxHeight` parameter is a number that represents the maximum height
   * in pixels that the items container should have.
   */
  private setItemsContainerMaxHeight;
}
