/**
* DevExtreme (ui/grid_core/ui.grid_core.focus.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 { 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 State {
  _dataController: import('./ui.grid_core.data_controller').DataController;
  _keyboardController: import('./ui.grid_core.keyboard_navigation').KeyboardNavigationController;
}

/**
 * @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 FocusController extends ViewController, State {
  _triggerFocusedRowChangedIfNeed: (this: this, ...args: any[]) => any;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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