/**
* DevExtreme (ui/grid_core/ui.grid_core.grid_view.d.ts)
* Version: 22.2.4 (build 23058-0308)
* Build date: Mon Feb 27 2023
*
* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED
* Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
*/
import { AdaptiveColumnsController } from './ui.grid_core.adaptivity';
import { DataController } from './ui.grid_core.data_controller';
import { ViewController } from './ui.grid_core.modules';

/**
 * @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 ResizingControllerState {
  _columnHeadersView: any;
  _columnsController: any;
  _devicePixelRatio: any;
  _footerView: any;
  _hasHeight: any;
  _hasWidth: any;
  _lastHeight: any;
  _lastWidth: any;
  _maxWidth: any;
  _refreshSizesHandler: any;
  _resizeDeferred: any;
  _rowsView: any;

  _updateScrollableTimeoutID: any;

  _dataController: DataController;
  _adaptiveColumnsController: AdaptiveColumnsController;
}

/**
 * @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 ResizingController extends ViewController, ResizingControllerState {
  _initPostRenderHandlers: (this: this) => any;

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

  fireContentReadyAction: (this: this) => any;

  _setAriaRowColCount: (this: this) => any;

  _getBestFitWidths: (this: this) => any;

  _setVisibleWidths: (this: this, visibleColumns, widths) => any;

  _toggleBestFitModeForView: (this: this, view, className, isBestFit) => any;

  _toggleBestFitMode: (this: this, isBestFit) => any;

  _toggleContentMinHeight: (this: this, isBestFit) => any;

  _synchronizeColumns: (this: this) => any;

  _needBestFit: (this: this) => any;

  _needStretch: (this: this) => any;

  _getAverageColumnsWidth: (this: this, resultWidths) => any;

  _correctColumnWidths: (this: this, resultWidths, visibleColumns) => any;

  _processStretch: (this: this, resultSizes, visibleColumns) => any;

  _getRealColumnWidth: (this: this, columnIndex, columnWidths, groupWidth?) => any;

  _getTotalWidth: (this: this, widths, groupWidth) => any;

  updateSize: (this: this, rootElement) => any;

  resize: (this: this) => any;

  updateDimensions: (this: this, checkSize?) => any;

  _resetGroupElementHeight: (this: this) => any;

  _checkSize: (this: this, checkSize) => any;

  _setScrollerSpacingCore: (this: this, hasHeight) => any;

  _setScrollerSpacing: (this: this, hasHeight) => any;

  _updateDimensionsCore: (this: this) => any;

  _updateLastSizes: (this: this, $rootElement) => any;
}
