/**
 * 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-scroller.js
 */


// tslint:disable:variable-name Describing an API that's defined elsewhere.

import {afterNextRender} from '@polymer/polymer/lib/utils/render-status.js';

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

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

import {PolymerIronList} from './iron-list.js';

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

/**
 * This Element is used internally by vaadin-grid.
 */
declare class GridScrollerElement extends PolymerIronList {
  readonly _firstVisibleIndex: number;
  readonly _lastVisibleIndex: number;
  size: number|null|undefined;
  _vidxOffset: number;
  connectedCallback(): void;
  _updateScrollerItem(item: HTMLTableRowElement, index: number): void;
  _afterScroll(): void;
  _getRowTarget(): void;
  _createScrollerRows(): void;
  _canPopulate(): void;
  scrollToIndex(index: number): void;
  _positionItems(): void;
  _increasePoolIfNeeded(count: number): void;

  /**
   * Assigns the data models to a given set of items.
   */
  _assignModels(itemSet?: number[]): void;
  _scrollHandler(): void;
  _render(): void;
  _itemsChanged(): void;
  _scrollToIndex(index: number): void;
  _resizeHandler(): void;
}

declare global {

  interface HTMLElementTagNameMap {
    "vaadin-grid-scroller": GridScrollerElement;
  }
}

export {GridScrollerElement as ScrollerElement};
