import { VegaTableColumnBreakpoint, VegaTableDensityType } from '../interface';
import { VegaTableCellStateController } from './slimmers/controllers/vega-table-cell-state-controller';
import { ResponsiveType } from '../../../types/ui.type';
import { BreakpointsTokenType } from '../../../types/design-token.type';
import { PageResizeObserverSlimmer } from '../../../helpers/slimmers/page-resize-observer-slimmer';
import { GlobalSlimmers } from '../../../vega-slimmer/vega-slimmer-core';
import { VegaComponentUsageRuntimeMetricsSlimmer } from '../../../helpers/slimmers/component-usage-runtime-metrics';
import { VegaTableRowStateSubscriber } from './slimmers/controllers/vega-table-row-state-subscriber';
import { ColumnRenderInputModel } from '../slimmers/controllers/dto/column-render-input-model';
import { Nullable } from '../../../types/general';
import { VegaTableChildRenderInputConsumerSlimmer } from '../../../helpers/slimmers/vega-table-child-render-input-consumer-slimmer';
/**
 * @vegaVersion 1.44.0
 */
export declare class VegaTableCell {
  protected readonly globalSlimmers: GlobalSlimmers;
  protected readonly vegaTableCellStateController: VegaTableCellStateController;
  protected readonly vegaTableRowStateSubscriber: VegaTableRowStateSubscriber;
  protected readonly pageResizeObserverSlimmer: PageResizeObserverSlimmer;
  protected vegaComponentUsageRuntimeMetricsSlimmer: VegaComponentUsageRuntimeMetricsSlimmer<HTMLVegaTableCellElement>;
  protected readonly vegaTableRenderInputConsumerSlimmer: VegaTableChildRenderInputConsumerSlimmer;
  host: HTMLVegaTableCellElement;
  currentBreakpoint: BreakpointsTokenType;
  /**
   * Sync from {@link VegaTable.density}
   */
  density?: ResponsiveType<VegaTableDensityType>;
  rowDivider?: boolean;
  columnDivider?: boolean;
  clickable?: boolean;
  checked?: boolean;
  striped?: boolean;
  expanded?: boolean;
  renderInput: Nullable<ColumnRenderInputModel>;
  /**
   * Determines the alignment of text within the cell.
   *
   * @vegaVersion 1.44.0
   */
  textAlign?: 'left' | 'right' | 'center';
  /**
   * Defines the screen width at which the column becomes hidden.
   *    If not set, the column remains visible at all times.
   *
   * @vegaVersion 1.44.0
   */
  breakpoint?: VegaTableColumnBreakpoint;
  /**
   * Determines the text overflow behavior within cells.
   * `ellipsis`: Replaces overflowed text with ellipsis.
   * `scroll`: Enables cell scrolling; scroll bars are displayed only when the content overflows,
   *     remaining hidden by default.
   *
   * @vegaVersion 1.44.0
   */
  overflow?: 'ellipsis' | 'scroll';
  /**
   * Specifies the width of the cell.
   *
   * @vegaVersion 1.44.0
   */
  width?: string;
  render(): VegaTableCell;
  private getCellOverflowClass;
  private onMouseEnter;
  private onMouseLeave;
}
