/**
* DevExtreme (ui/grid_core/ui.grid_core.column_headers.d.ts)
* Version: 22.2.4
* Build date: Thu Jan 19 2023
*
* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED
* Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
*/
import { ColumnsView } from './ui.grid_core.columns_view';

/**
 * @deprecated Attention! This type is for internal purposes only. If you used it previously, please submit a ticket to our {@link https://supportcenter.devexpress.com/ticket/create Support Center}. We will check if there is an alternative solution.
 */
interface State {
  _isGroupingChanged: any;
  _lastActionElement: any;
  _hasRowElements: any;
  resizeCompleted: any;
}

/**
 * @deprecated Attention! This type is for internal purposes only. If you used it previously, please submit a ticket to our {@link https://supportcenter.devexpress.com/ticket/create Support Center}. We will check if there is an alternative solution.
 */
interface ColumnHeadersView extends ColumnsView, State {
  _createTable: (this: this) => any;

  _isLegacyKeyboardNavigation: (this: this) => any;

  _getDefaultTemplate: (this: this, column) => any;

  _getHeaderTemplate: (this: this, column) => any;

  _processTemplate: (this: this, template, options) => any;

  _handleDataChanged: (this: this, e) => any;

  _renderCell: (this: this, $row, options) => any;

  _setCellAriaAttributes: (this: this, $cell, cellOptions) => any;

  _createRow: (this: this, row) => any;

  _handleActionKeyDown: (this: this, args) => any;

  _renderCore: (this: this) => any;

  _renderRows: (this: this) => any;

  _getRowVisibleColumns: (this: this, rowIndex) => any;

  _renderRow: (this: this, $table, options) => any;

  _createCell: (this: this, options) => any;

  _getRows: (this: this) => any;

  _getCellTemplate: (this: this, options) => any;

  _isElementVisible: (this: this, elementOptions) => any;

  _alignCaptionByCenter: (this: this, $cell) => any;

  _updateCell: (this: this, $cell, options) => any;

  _updateIndicator: (this: this, $cell, column, indicatorName) => any;

  _getIndicatorContainer: (this: this, $cell, returnAll?) => any;

  _isSortableElement: (this: this) => any;

  getHeadersRowHeight: (this: this) => any;

  getHeaderElement: (this: this, index) => any;

  getColumnElements: (this: this, index?, bandColumnIndex?) => any;

  getColumnIndexByElement: (this: this, $cell) => any;

  getVisibleColumnIndex: (this: this, columnIndex, rowIndex) => any;

  getColumnWidths: (this: this) => any;

  allowDragging: (this: this, column, sourceLocation, draggingPanels) => any;

  getBoundingRect: (this: this) => any;

  getColumnCount: (this: this) => any;

  getHeight: (this: this) => any;

  getContextMenuItems: (this: this, options) => any;

  getRowCount: (this: this) => any;

  setRowsOpacity: (this: this, columnIndex, value, rowIndex) => any;

  _processHeaderAction: (this: this, ...args: any[]) => any;
}
