import { VegaSlimmer } from '../../../../vega-slimmer/vega-slimmer-core';
import { VegaTable } from '../../vega-table';
import { MutationObserverSlimmer } from '../../../../helpers/slimmers/mutation-observer/mutation-observer-slimmer';
/**
 * The controller for the table children components.
 */
export declare class VegaTableChildrenController extends VegaSlimmer {
  host: VegaTable['host'];
  columns: VegaTable['columns'];
  dataSource: VegaTable['dataSource'];
  currentData: VegaTable['currentData'];
  rowSelection: VegaTable['rowSelection'];
  striped: VegaTable['striped'];
  rowDivider: VegaTable['rowDivider'];
  vegaTableDataSourceController: VegaTable['vegaTableDataSourceController'];
  vegaTableRenderer: VegaTable['vegaTableRenderer'];
  isTemplateRenderMode: VegaTable['isTemplateRenderMode'];
  protected currentDataObserver: MutationObserverSlimmer;
  protected rowStripedObserver: MutationObserverSlimmer;
  /**
   * Used by rowStripedObserver{@link rowStripedObserver} and currentDataObserver{@link currentDataObserver}
   */
  connectedCallback(): void;
  /**
   * Used by rowStripedObserver{@link rowStripedObserver} and currentDataObserver{@link currentDataObserver}
   */
  disconnectedCallback(): void;
  /**
   * Component lifecycle - [componentWillLoad]{@link VegaTable.componentWillLoad}
   */
  componentWillLoad(): void;
  /**
   * Component lifecycle - [componentDidLoad]{@link VegaTable.componentDidLoad}
   */
  componentDidLoad(): void;
  /**
   * The callback to handle [clearSelection]{@link VegaTable.clearSelection}
   */
  clearSelection(): void;
  /**
   * The callback to handle [watchCurrentData]{@link VegaTable.watchCurrentData}
   */
  watchCurrentData(): void;
  /**
   * {@link VegaTable.watchStriped}
   */
  watchStriped(): void;
  /**
   * {@link VegaTable.watchRowDivider}
   */
  watchRowDivider(): void;
  /**
   * Syncs up the properties of vega-table-row
   */
  private syncUpTableCurrentData;
  /**
   * Sync up the properties of vega-table-expand-row
   */
  private syncRowStates;
  /**
   * Syncs up the properties of vega-table-head-row
   */
  private syncUpTableHeadRowProps;
  /**
   * Update the row striped attr
   *
   * @param {HTMLElement} row - row or expand row element
   * @param {number} index - index of the row
   */
  private updateRowStriped;
  /**
   * Update the row striped attr
   *
   * @param {HTMLElement} row - row or expand row element
   * @param {boolean} isLastRow - Is last row
   */
  private updateRowDivider;
  /**
   * Sync up the visibility of table foot based on current data
   */
  private syncUpTableFootVisibility;
}
