import { GlobalSlimmers } from '../../../vega-slimmer/vega-slimmer-core';
import { Nullable } from '../../../types/general';
import { ColumnRenderInputModel } from '../slimmers/controllers/dto/column-render-input-model';
import { VegaTableHeadRowRenderer } from './slimmers/renderers/vega-table-head-row-renderer';
import { VegaTableHeadRowController } from './slimmers/controllers/vega-table-head-row-controller';
import { VegaTableHeadRowStateController } from './slimmers/controllers/vega-table-head-row-state-controller';
import { ChildNodesEventPreventSlimmer } from '../../../helpers/event-manager/slimmers/child-nodes-event-prevent-slimmer';
import { ResponsiveType } from '../../../types/ui.type';
import { VegaTableDensityType } from '../interface';
import { BreakpointsTokenType } from '../../../types/design-token.type';
import { PageResizeObserverSlimmer } from '../../../helpers/slimmers/page-resize-observer-slimmer';
import { VegaComponentUsageRuntimeMetricsSlimmer } from '../../../helpers/slimmers/component-usage-runtime-metrics';
import { VegaTableChildRenderInputConsumerSlimmer } from '../../../helpers/slimmers/vega-table-child-render-input-consumer-slimmer';
/**
 * @vegaVersion 1.44.0
 */
export declare class VegaTableHeadRow {
  protected readonly globalSlimmers: GlobalSlimmers;
  protected readonly vegaTableHeadRowStateController: VegaTableHeadRowStateController;
  protected readonly vegaTableHeadRowRenderer: VegaTableHeadRowRenderer;
  protected readonly vegaTableHeadRowController: VegaTableHeadRowController;
  protected headCellEventPrevent: ChildNodesEventPreventSlimmer;
  protected readonly pageResizeObserverSlimmer: PageResizeObserverSlimmer;
  protected vegaComponentUsageRuntimeMetricsSlimmer: VegaComponentUsageRuntimeMetricsSlimmer<HTMLVegaTableHeadRowElement>;
  protected readonly vegaTableRenderInputConsumerSlimmer: VegaTableChildRenderInputConsumerSlimmer;
  host: HTMLVegaTableHeadRowElement;
  currentBreakpoint: BreakpointsTokenType;
  /**
   * Indicates whether the table has an expandable row.
   */
  hasExpandableRow: boolean;
  /**
   * Configures row selection behavior.
   */
  selectionType?: 'multiple' | 'single';
  /**
   * Specifies the horizontal padding of the table.
   */
  paddingX?: [string, string];
  /**
   * Indicates whether the row's checkbox is checked.
   */
  checkedAll?: Nullable<boolean>;
  /**
   * Sync from {@link VegaTable.columnDivider}
   */
  columnDivider?: boolean;
  /**
   * Sync from {@link VegaTable.density}
   */
  density?: ResponsiveType<VegaTableDensityType>;
  /**
   * Whether the parent table is empty
   */
  isEmptyTable: boolean;
  /**
   * Whether the parent table is template render mode
   */
  isTemplateRenderMode: boolean;
  renderInput: Nullable<ColumnRenderInputModel[]>;
  /**
   * Sync from {@link VegaTable.rowDraggable}
   */
  draggable?: boolean;
  /**
   * Indicates whether the checkbox is disabled.
   *
   * @vegaVersion 1.44.0
   */
  selectAllDisabled?: boolean;
  /**
   * Determines whether to hide the select all checkbox.
   *
   * @vegaVersion 1.44.0
   */
  hideSelectAll?: boolean;
  render(): VegaTableHeadRow;
}
