/**
 * 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-selection-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

export {SelectionMixin};

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

interface SelectionMixinConstructor {
  new(...args: any[]): SelectionMixin;
}

export {SelectionMixinConstructor};

interface SelectionMixin {

  /**
   * An array that contains the selected items.
   */
  selectedItems: Array<GridItem|null>|null;
  _isSelected(item: GridItem): boolean;

  /**
   * Selects the given item.
   *
   * @param item The item object
   */
  selectItem(item: GridItem): void;

  /**
   * Deselects the given item if it is already selected.
   *
   * @param item The item object
   */
  deselectItem(item: GridItem): void;

  /**
   * Toggles the selected state of the given item.
   *
   * @param item The item object
   */
  _toggleItem(item: GridItem): void;
}

import {GridItem} from '../@types/interfaces';
