import { EventEmitter } from '../../../stencil-public-runtime';
import { GlobalSlimmers } from '../../../vega-slimmer/vega-slimmer-core';
import { Nullable } from '../../../types/general';
import { VegaTableRowRenderer } from './slimmers/renderers/vega-table-row-renderer';
import { VegaTableRowSelectionController } from './slimmers/controllers/vega-table-row-selection-controller';
import { VegaTableRowExpandController } from './slimmers/controllers/vega-table-row-expand-controller';
import { VegaTableRowClickController } from './slimmers/controllers/vega-table-row-click-controller';
import { VegaTableDensityType, VegaTableRowClickEvent, VegaTableRowExpandEvent } from '../interface';
import { VegaTableRowStateController } from './slimmers/controllers/vega-table-row-state-controller';
import { EventEmitSlimmerBase } from '../../../helpers/event-manager/slimmers/event-emit-slimmer';
import { ChildNodesEventPreventSlimmer } from '../../../helpers/event-manager/slimmers/child-nodes-event-prevent-slimmer';
import { ResponsiveType } from '../../../types/ui.type';
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 { SubStateNotifySlimmerBase } from '../../../helpers/slimmers/sub-state/sub-state-notify-slimmer-base';
/**
 * @vegaVersion 1.44.0
 */
export declare class VegaTableRow {
  protected readonly globalSlimmers: GlobalSlimmers;
  protected readonly vegaTableRowRenderer: VegaTableRowRenderer;
  protected readonly vegaTableRowSelectionController: VegaTableRowSelectionController;
  protected readonly vegaTableRowExpandController: VegaTableRowExpandController;
  protected readonly vegaTableRowClickController: VegaTableRowClickController;
  protected readonly vegaTableRowStateController: VegaTableRowStateController;
  protected clickEventEmitter: EventEmitSlimmerBase;
  protected expandEventEmitter: EventEmitSlimmerBase;
  protected checkboxValueChangeEventPrevent: ChildNodesEventPreventSlimmer;
  protected readonly pageResizeObserverSlimmer: PageResizeObserverSlimmer;
  protected vegaComponentUsageRuntimeMetricsSlimmer: VegaComponentUsageRuntimeMetricsSlimmer<HTMLVegaTableRowElement>;
  protected readonly checkedNotifySlimmer: SubStateNotifySlimmerBase;
  protected readonly expandedNotifySlimmer: SubStateNotifySlimmerBase;
  protected readonly stripedNotifySlimmer: SubStateNotifySlimmerBase;
  protected readonly rowDividerNotifySlimmer: SubStateNotifySlimmerBase;
  host: HTMLVegaTableRowElement;
  currentBreakpoint: BreakpointsTokenType;
  clicked?: boolean;
  /**
   * Indicates whether the row is expandable.
   */
  expandable?: boolean;
  /**
   * Indicates whether the row is clickable.
   */
  clickable?: boolean;
  /**
   * Specifies the horizontal padding of the table.
   */
  paddingX?: [string, string];
  /**
   * Configures row selection behavior.
   */
  selectionType?: Nullable<'multiple' | 'single'>;
  watchSelectionType(): void;
  /**
   * Indicates whether the row's checkbox is checked.
   */
  checked?: boolean;
  watchChecked(): void;
  /**
   * Indicates whether the row is expanded.
   */
  expanded?: boolean;
  watchExpanded(): void;
  /**
   * Sync from {@link VegaTable.columnDivider}
   */
  columnDivider?: boolean;
  /**
   * Sync from {@link VegaTable.density}
   */
  density?: ResponsiveType<VegaTableDensityType>;
  /**
   * Defines a unique key for the row.
   *
   * @vegaVersion 1.44.0
   */
  rowKey: string;
  /**
   * Specifies whether alternate colors should be applied to the row.
   *
   * @vegaVersion 2.61.0
   */
  striped: boolean;
  watchStriped(): void;
  /**
   * Specifies whether dividers should be displayed in the row.
   *
   * @vegaVersion 2.61.0
   */
  rowDivider: boolean;
  watchRowDivider(): void;
  /**
   * An event emitter notifying that the row has been clicked.
   *
   * @vegaVersion 1.44.0
   */
  vegaClick: EventEmitter<VegaTableRowClickEvent>;
  /**
   * An event emitter notifying that the row has been clicked.
   *
   * @eventSemantics namespace:native
   * @vegaVersion 2.0.0
   */
  click: EventEmitter<VegaTableRowClickEvent>;
  /**
   * An event emitter notifying that the expand icon has been clicked.
   *
   * @vegaVersion 2.20.0
   */
  vegaExpand: EventEmitter<VegaTableRowExpandEvent>;
  /**
   * An event emitter notifying that the expand icon has been clicked.
   *
   * @eventSemantics namespace:native
   * @vegaVersion 2.20.0
   */
  expand: EventEmitter<VegaTableRowExpandEvent>;
  render(): VegaTableRow;
}
