import { VegaSlimmer } from '../../../../../vega-slimmer/vega-slimmer-core';
import { VegaTabGroup } from '../../../vega-tab-group';
/** The `VegaTabGroupPanelController` class is responsible for managing the panels within a tab group component, including initializing the panels, setting the default active panel, and updating the active panel based on user selection. */
export declare class VegaTabGroupPanelController extends VegaSlimmer {
  host: VegaTabGroup['host'];
  selectedTabDataTarget: VegaTabGroup['selectedTabDataTarget'];
  tabItems: VegaTabGroup['tabItems'];
  selectTargetController: VegaTabGroup['vegaTabGroupSelectedTargetController'];
  private tabPanels;
  private tabPanelUpdateObserver;
  /**
   * register the observer when component connected
   */
  connectedCallback(): void;
  /**
   * un-register the observer when component remove, clear the tab panel map
   */
  disconnectedCallback(): void;
  /**
   * initial the select tab data target after tap panel render
   */
  componentDidLoad(): void;
  /**
   * update the panels status when component call watchSelectedTabDataTargetChange method
   */
  watchSelectedTabDataTargetChange(): void;
  /**
   * The function `canAcceptPanelUpdate` checks if a panel update can be accepted based on the payload's type and host.
   *
   * @param {PanelUpdatePayload} payload the panel element and the action type
   * @returns {boolean} a boolean value.
   */
  private canAcceptPanelUpdate;
  /**
   * It is used to handle updates to the tab panels within the tab group component.
   *
   * @param {PanelUpdatePayload} payload the panel element and the action type
   */
  private handlePanelUpdate;
  /**
   * The function initializes the selected tab data target by setting it to the default active panel ID
   * or the first tab item's data target if no default active panel ID is available.
   */
  private initSelectedTabDataTarget;
  /**
   * get the default active panel element if user set
   *
   * @returns {Nullable<string>} the default active panel attribute id
   */
  private getDefaultActivePanelId;
  /**
   * update the active panel by selected panel id
   *
   * @param {string} selectedTabDataTarget selected panel id
   */
  private updateTabPanelsStatus;
}
