/**
 * 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-active-item-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 {ActiveItemMixin};

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

interface ActiveItemMixinConstructor {
  new(...args: any[]): ActiveItemMixin;
}

export {ActiveItemMixinConstructor};

interface ActiveItemMixin {

  /**
   * The item user has last interacted with. Turns to `null` after user deactivates
   * the item by re-interacting with the currently active item.
   */
  activeItem: GridItem|null;
  ready(): void;

  /**
   * We need to listen to click instead of tap because on mobile safari, the
   * document.activeElement has not been updated (focus has not been shifted)
   * yet at the point when tap event is being executed.
   */
  _onClick(e: MouseEvent): void;
  _isFocusable(target: Element): boolean;
}

export {isFocusable};

declare function isFocusable(target: Element): boolean;

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