import { VegaSlimmer } from '../../../../vega-slimmer/vega-slimmer-core';
import { VegaTable } from '../../vega-table';
/**
 * Controller responsible for building and keeping the ColumnStructureModel in sync
 * with the component's `columns` and `groupColumns` properties.
 *
 * This slimmer maps relevant component fields and lifecycle/watch hooks to
 * automatically rebuild the column structure when inputs change.
 */
export declare class VegaTableColumnStructureModelController extends VegaSlimmer {
  host: VegaTable['host'];
  columns: VegaTable['columns'];
  groupColumns: VegaTable['groupColumns'];
  columnStructureModel: VegaTable['columnStructureModel'];
  /**
   * Component lifecycle hook mapped to the host's componentWillLoad.
   * Initializes the ColumnStructureModel prior to initial render.
   */
  componentWillLoad(): void;
  /**
   * Watch handler mapped to the host's watchColumns.
   * Rebuilds the ColumnStructureModel when `columns` changes.
   */
  watchColumns(): void;
  /**
   * Watch handler mapped to the host's watchGroupColumns.
   * Rebuilds the ColumnStructureModel when `groupColumns` changes.
   */
  watchGroupColumns(): void;
  /**
   * Build and assign the ColumnStructureModel from current `columns` and `groupColumns`.
   * Uses `ColumnStructureModel.from` which returns a root model representing the column tree.
   */
  private setColumnStructureModel;
}
