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


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

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

import {FlattenedNodesObserver} from '@polymer/polymer/lib/utils/flattened-nodes-observer.js';

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

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

/**
 * A `<vaadin-grid-column-group>` is used to make groups of columns in `<vaadin-grid>` and
 * to configure additional headers and footers.
 *
 * Groups can be nested to create complex header and footer configurations.
 *
 * The `class` attribute is used to differentiate header and footer templates.
 *
 * #### Example:
 * ```html
 * <vaadin-grid-column-group resizable>
 *  <template class="header">Name</template>
 *
 *  <vaadin-grid-column>
 *    <template class="header">First</template>
 *    <template>[[item.name.first]]</template>
 *  </vaadin-grid-column>
 *  <vaadin-grid-column>
 *    <template class="header">Last</template>
 *    <template>[[item.name.last]]</template>
 *  </vaadin-grid-column>
 * </vaadin-grid-column-group>
 * ```
 */
declare class GridColumnGroupElement extends
  ColumnBaseMixin(
  PolymerElement) {

  /**
   * Flex grow ratio for the column group as the sum of the ratios of its child columns.
   * @attr {number} flex-grow
   */
  readonly flexGrow: number|null|undefined;

  /**
   * Width of the column group as the sum of the widths of its child columns.
   */
  readonly width: string|null|undefined;
  connectedCallback(): void;
  disconnectedCallback(): void;
  _columnPropChanged(path: string, value?: unknown|null): void;
  _updateFlexAndWidth(): void;
  _getChildColumns(el: GridColumnGroupElement): GridColumnElement[];
  _isColumnElement(node: Node): boolean;
}

declare global {

  interface HTMLElementTagNameMap {
    "vaadin-grid-column-group": GridColumnGroupElement;
  }
}

export {GridColumnGroupElement};

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