/**
 * 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-dynamic-columns-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 {FlattenedNodesObserver} from '@polymer/polymer/lib/utils/flattened-nodes-observer.js';

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

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

import {PolymerElement} from '@polymer/polymer/polymer-element.js';

export {DynamicColumnsMixin};

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

interface DynamicColumnsMixinConstructor {
  new(...args: any[]): DynamicColumnsMixin;
}

export {DynamicColumnsMixinConstructor};

interface DynamicColumnsMixin {
  ready(): void;
  _getChildColumns(el: GridColumnGroupElement): GridColumnElement[];
  _updateColumnTree(): void;
  _checkImports(): void;
  _updateFirstAndLastColumn(): void;
  _updateFirstAndLastColumnForRow(row: HTMLElement): void;
  _isColumnElement(node: Node): boolean;
}

import {GridColumnGroupElement} from './vaadin-grid-column-group.js';

import {GridColumnElement} from './vaadin-grid-column.js';
