/**
 * DO NOT EDIT
 *
 * This file was automatically generated by
 *   https://github.com/Polymer/tools/tree/master/packages/gen-typescript-declarations
 *
 * To modify these typings, edit the source file(s):
 *   src/vaadin-grid-scroll-mixin.js
 */


// tslint:disable:variable-name Describing an API that's defined elsewhere.
// tslint:disable:no-any describes the API as best we are able today

import {Debouncer} from '@polymer/polymer/lib/utils/debounce.js';

import {animationFrame, timeOut, microTask} from '@polymer/polymer/lib/utils/async.js';

export {ScrollMixin};

declare function ScrollMixin<T extends new (...args: any[]) => {}>(base: T): T & ScrollMixinConstructor;

interface ScrollMixinConstructor {
  new(...args: any[]): ScrollMixin;
}

export {ScrollMixinConstructor};

interface ScrollMixin {
  ready(): void;

  /**
   * Scroll to a specific row index in the virtual list. Note that the row index is
   * not always the same for any particular item. For example, sorting/filtering/expanding
   * or collapsing hierarchical items can affect the row index related to an item.
   *
   * @param index Row index to scroll to
   */
  scrollToIndex(index: number): void;
  _frozenCellsChanged(): void;
  _updateScrollerMeasurements(): void;
  _updateLastFrozen(): void;
}
