/**
* DevExtreme (ui/grid_core/ui.grid_core.editor_factory.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 { 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 {
  _isFocusOverlay: any;
  _updateFocusTimeoutID: any;
  _updateFocusHandler: any;
  _$focusedElement: any;
  _focusTimeoutID: any;
  _$focusOverlay: any;

  focused: 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.
 */
export interface EditorFactory extends ViewController, State {
  _getFocusedElement: (this: this, $dataGridElement) => any;

  _getFocusCellSelector: (this: this) => any;

  _updateFocusCore: (this: this) => any;

  _needHideBorder: (this: this, $element) => boolean;

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

  _updateFocusOverlaySize: (this: this, $element, position) => any;

  callbackNames: (this: this) => any;

  focus: (this: this, $element?, hideBorder?) => any;

  refocus: (this: this) => any;

  renderFocusOverlay: (this: this, $element, hideBorder) => any;

  resize: (this: this) => any;

  loseFocus: (this: this) => any;

  init: (this: this) => any;

  _getContainerRoot: (this: this) => any;

  _attachContainerEventHandlers: (this: this) => any;

  dispose: (this: this) => any;

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

  _getRevertTooltipsSelector: (this: this) => string;
}
