/* tslint:disable */
/**
 * This is an autogenerated file created by the Stencil compiler.
 * It contains typing information for all components that exist in this project.
 */


import { HTMLStencilElement, JSXBase } from './stencil.core';
import {
  DrawOptions,
} from './components/draw-controller/interface';
import {
  Color,
} from '@ionic/core';
import {
  FormOptions,
} from './components/form-controller/interface';
import {
  ForwardGeocodeOptions,
  ReverseGeocodeOptions,
} from './components/geocode-controller/geocode-interface';
import {
  LikeProxy,
} from './components/like-controller/like-proxy';
import {
  LikeOptions,
} from './components/like-controller/interface';
import {
  RestOptions,
} from './components/rest-controller/interface';
import {
  TableExportOptions,
} from './components/table-export-controller/interfaces';

export namespace Components {
  interface GlAddressSearch {
    'bbox': [number, number, number, number] | string;
    'jobId': string;
    'limit': number;
    'maxZoom': number;
    'placeholder': string;
    'url': string;
    'zoomPadding': number;
  }
  interface GlApp {
    'label': string;
    'menu': 'custom' | boolean;
    'menuLabel': string;
    'splitPane': boolean;
  }
  interface GlAttributeValues {
    'attributeOptions': string | any[];
    'features': any[];
    'header': string;
    'headerAttribute': string;
    'labelPosition': 'fixed' | 'floating' | 'stacked';
    'limit': number;
    'valueMaxWidth': string;
  }
  interface GlBasemapSwitcher {}
  interface GlBasemaps {}
  interface GlDownloadButton {}
  interface GlDownloadFile {
    'format': string;
    'label': string;
    'size': string;
    'url': string;
  }
  interface GlDownloadList {
    'files': HTMLGlDownloadFileElement[];
  }
  interface GlDrawController {
    'create': (featureCollection: any, options: DrawOptions) => Promise<unknown>;
  }
  interface GlDrawToolbar {
    'cancelText': string;
    'color': Color;
    'confirmText': string;
    'label': string;
    'mapId': string;
    'maxFeatures': number;
    'minFeatures': number;
  }
  interface GlDrawer {
    'drawerTitle': string;
    'mapId': string;
    'open': boolean;
    'toggle': () => Promise<void>;
  }
  interface GlDrawerToggle {
    'buttonTitle': string;
    'icon': string;
  }
  interface GlFacet {
    'detail': boolean;
    'image': string;
    'label': string;
    'value': string;
    'widget': 'header' | 'item';
  }
  interface GlFeatureList {
    'batchSize': number;
    'component': string;
    'componentOptions': any;
    'display': 'all' | 'visible';
    'features': any[];
    'item': boolean;
    'loadingSpinner': string;
    'loadingText': string;
    'mapId': string;
    'order': 'asc' | 'desc' | 'none';
    'orderBy': string;
    'sourceId': string;
    'styleId': string;
  }
  interface GlField {
    'attribute': string;
    'getValue': () => Promise<any>;
    'image': string;
    'isValid': () => Promise<boolean>;
    'label': string;
    'required': boolean;
    'type': any;
    'validate': () => Promise<string>;
    'widget': string;
  }
  interface GlForm {
    'cancel': () => Promise<void>;
    'cancelText': string;
    'feature': any;
    'formId': string;
    'label': string;
    'schema': string;
    'submit': () => Promise<void>;
    'submitText': string;
    'translateText': boolean;
  }
  interface GlFormController {
    'create': (feature: any, options: FormOptions) => Promise<unknown>;
  }
  interface GlFormPage {
    'backText': string;
    'cancelText': string;
    'facets': any[];
    'fields': any[];
    'formFacet': string;
    'label': string;
    'root': boolean;
    'submitText': string;
  }
  interface GlFullscreen {}
  interface GlGeocodeController {
    'defaultClient': string;
    'forward': (options: ForwardGeocodeOptions, clientOptions?: any) => Promise<any>;
    'reverse': (options: ReverseGeocodeOptions, clientOptions?: any) => Promise<any>;
  }
  interface GlLegend {}
  interface GlLegendItem {
    'image': string;
    'layers': string | string[];
    'styleId': string;
    'toggle': boolean;
    'widget': 'divider' | 'item';
  }
  interface GlLikeButton {
    'attribute': string;
    'disabled': boolean;
    'feature': any;
    'iconNo': string;
    'iconYes': string;
    'method': 'GET' | 'POST' | 'PATCH' | 'PUT' | 'DELETE';
    'requestMode': RequestMode;
    'token': string;
    'url': string;
  }
  interface GlLikeController {
    'create': (feature: any, options?: LikeOptions) => Promise<LikeProxy>;
  }
  interface GlMap {
    'draw': any;
    'drawOptions'?: any;
    'drawing': boolean;
    'glyphs': string;
    'latitude': number;
    'longitude': number;
    'map': any;
    'maxzoom': number;
    'minzoom': number;
    'resizeMap': () => Promise<void>;
    'sprite': string;
    'zoom': number;
  }
  interface GlOption {
    'image': string;
    'label': string;
    'value': any;
  }
  interface GlPopup {
    'clickEventDelay': number;
    'closeKey': number;
    'component': string;
    'componentOptions': any;
    'isOpen': () => Promise<any>;
    'layers': string[] | string;
    'maxWidth': string;
    'removePopup': () => Promise<void>;
  }
  interface GlRestController {
    'create': (feature: any, options: RestOptions) => Promise<Response>;
  }
  interface GlShare {
    'popupHeight': number;
    'popupWidth': number;
    'shareHashtags': string;
    'shareTitle': string;
    'shareUrl': string;
    'shareUser': string;
  }
  interface GlShareButton {
    'icon': string;
  }
  interface GlStyle {
    'basemap': boolean;
    'clickableLayers': string[] | string;
    'enabled': boolean;
    'json': any;
    'name': string;
    'thumbnail': string;
    'token': string;
    'url': string;
  }
  interface GlTable {
    'disableDefaultSort': boolean;
    'features': any[];
    'getCellContents': (feature: any, column: any, format: "pdf" | "text") => Promise<any>;
    'getSortedFeatures': () => Promise<any[]>;
    'rowClassAttribute': string;
    'sortAttribute': string;
    'sortOrder': 'asc' | 'desc';
  }
  interface GlTableColumn {
    'attribute': string;
    'cellClassAttribute': string;
    'component': string;
    'componentProps': any;
    'csv': boolean;
    'format': string | any;
    'label': string;
    'pdf': boolean;
    'sortable': boolean;
    'visible': boolean;
  }
  interface GlTableColumnVisibility {
    'label': string;
    'tableId': string;
  }
  interface GlTableColumnVisibilityButton {
    'label': string;
    'tableId': string;
  }
  interface GlTableColumnVisibilityToggle {
    'column': HTMLGlTableColumnElement;
    'enabled': boolean;
  }
  interface GlTableExportButton {
    'author'?: string;
    'filename': string;
    'format': 'csv' | 'pdf';
    'pageOrientation'?: 'landscape' | 'portrait';
    'pageSubtitle'?: string;
    'pageTitle'?: string;
    'tableId'?: string;
    'url'?: string;
  }
  interface GlTableExportController {
    'create': (options: TableExportOptions) => Promise<void>;
  }
}

declare global {


  interface HTMLGlAddressSearchElement extends Components.GlAddressSearch, HTMLStencilElement {}
  var HTMLGlAddressSearchElement: {
    prototype: HTMLGlAddressSearchElement;
    new (): HTMLGlAddressSearchElement;
  };

  interface HTMLGlAppElement extends Components.GlApp, HTMLStencilElement {}
  var HTMLGlAppElement: {
    prototype: HTMLGlAppElement;
    new (): HTMLGlAppElement;
  };

  interface HTMLGlAttributeValuesElement extends Components.GlAttributeValues, HTMLStencilElement {}
  var HTMLGlAttributeValuesElement: {
    prototype: HTMLGlAttributeValuesElement;
    new (): HTMLGlAttributeValuesElement;
  };

  interface HTMLGlBasemapSwitcherElement extends Components.GlBasemapSwitcher, HTMLStencilElement {}
  var HTMLGlBasemapSwitcherElement: {
    prototype: HTMLGlBasemapSwitcherElement;
    new (): HTMLGlBasemapSwitcherElement;
  };

  interface HTMLGlBasemapsElement extends Components.GlBasemaps, HTMLStencilElement {}
  var HTMLGlBasemapsElement: {
    prototype: HTMLGlBasemapsElement;
    new (): HTMLGlBasemapsElement;
  };

  interface HTMLGlDownloadButtonElement extends Components.GlDownloadButton, HTMLStencilElement {}
  var HTMLGlDownloadButtonElement: {
    prototype: HTMLGlDownloadButtonElement;
    new (): HTMLGlDownloadButtonElement;
  };

  interface HTMLGlDownloadFileElement extends Components.GlDownloadFile, HTMLStencilElement {}
  var HTMLGlDownloadFileElement: {
    prototype: HTMLGlDownloadFileElement;
    new (): HTMLGlDownloadFileElement;
  };

  interface HTMLGlDownloadListElement extends Components.GlDownloadList, HTMLStencilElement {}
  var HTMLGlDownloadListElement: {
    prototype: HTMLGlDownloadListElement;
    new (): HTMLGlDownloadListElement;
  };

  interface HTMLGlDrawControllerElement extends Components.GlDrawController, HTMLStencilElement {}
  var HTMLGlDrawControllerElement: {
    prototype: HTMLGlDrawControllerElement;
    new (): HTMLGlDrawControllerElement;
  };

  interface HTMLGlDrawToolbarElement extends Components.GlDrawToolbar, HTMLStencilElement {}
  var HTMLGlDrawToolbarElement: {
    prototype: HTMLGlDrawToolbarElement;
    new (): HTMLGlDrawToolbarElement;
  };

  interface HTMLGlDrawerElement extends Components.GlDrawer, HTMLStencilElement {}
  var HTMLGlDrawerElement: {
    prototype: HTMLGlDrawerElement;
    new (): HTMLGlDrawerElement;
  };

  interface HTMLGlDrawerToggleElement extends Components.GlDrawerToggle, HTMLStencilElement {}
  var HTMLGlDrawerToggleElement: {
    prototype: HTMLGlDrawerToggleElement;
    new (): HTMLGlDrawerToggleElement;
  };

  interface HTMLGlFacetElement extends Components.GlFacet, HTMLStencilElement {}
  var HTMLGlFacetElement: {
    prototype: HTMLGlFacetElement;
    new (): HTMLGlFacetElement;
  };

  interface HTMLGlFeatureListElement extends Components.GlFeatureList, HTMLStencilElement {}
  var HTMLGlFeatureListElement: {
    prototype: HTMLGlFeatureListElement;
    new (): HTMLGlFeatureListElement;
  };

  interface HTMLGlFieldElement extends Components.GlField, HTMLStencilElement {}
  var HTMLGlFieldElement: {
    prototype: HTMLGlFieldElement;
    new (): HTMLGlFieldElement;
  };

  interface HTMLGlFormElement extends Components.GlForm, HTMLStencilElement {}
  var HTMLGlFormElement: {
    prototype: HTMLGlFormElement;
    new (): HTMLGlFormElement;
  };

  interface HTMLGlFormControllerElement extends Components.GlFormController, HTMLStencilElement {}
  var HTMLGlFormControllerElement: {
    prototype: HTMLGlFormControllerElement;
    new (): HTMLGlFormControllerElement;
  };

  interface HTMLGlFormPageElement extends Components.GlFormPage, HTMLStencilElement {}
  var HTMLGlFormPageElement: {
    prototype: HTMLGlFormPageElement;
    new (): HTMLGlFormPageElement;
  };

  interface HTMLGlFullscreenElement extends Components.GlFullscreen, HTMLStencilElement {}
  var HTMLGlFullscreenElement: {
    prototype: HTMLGlFullscreenElement;
    new (): HTMLGlFullscreenElement;
  };

  interface HTMLGlGeocodeControllerElement extends Components.GlGeocodeController, HTMLStencilElement {}
  var HTMLGlGeocodeControllerElement: {
    prototype: HTMLGlGeocodeControllerElement;
    new (): HTMLGlGeocodeControllerElement;
  };

  interface HTMLGlLegendElement extends Components.GlLegend, HTMLStencilElement {}
  var HTMLGlLegendElement: {
    prototype: HTMLGlLegendElement;
    new (): HTMLGlLegendElement;
  };

  interface HTMLGlLegendItemElement extends Components.GlLegendItem, HTMLStencilElement {}
  var HTMLGlLegendItemElement: {
    prototype: HTMLGlLegendItemElement;
    new (): HTMLGlLegendItemElement;
  };

  interface HTMLGlLikeButtonElement extends Components.GlLikeButton, HTMLStencilElement {}
  var HTMLGlLikeButtonElement: {
    prototype: HTMLGlLikeButtonElement;
    new (): HTMLGlLikeButtonElement;
  };

  interface HTMLGlLikeControllerElement extends Components.GlLikeController, HTMLStencilElement {}
  var HTMLGlLikeControllerElement: {
    prototype: HTMLGlLikeControllerElement;
    new (): HTMLGlLikeControllerElement;
  };

  interface HTMLGlMapElement extends Components.GlMap, HTMLStencilElement {}
  var HTMLGlMapElement: {
    prototype: HTMLGlMapElement;
    new (): HTMLGlMapElement;
  };

  interface HTMLGlOptionElement extends Components.GlOption, HTMLStencilElement {}
  var HTMLGlOptionElement: {
    prototype: HTMLGlOptionElement;
    new (): HTMLGlOptionElement;
  };

  interface HTMLGlPopupElement extends Components.GlPopup, HTMLStencilElement {}
  var HTMLGlPopupElement: {
    prototype: HTMLGlPopupElement;
    new (): HTMLGlPopupElement;
  };

  interface HTMLGlRestControllerElement extends Components.GlRestController, HTMLStencilElement {}
  var HTMLGlRestControllerElement: {
    prototype: HTMLGlRestControllerElement;
    new (): HTMLGlRestControllerElement;
  };

  interface HTMLGlShareElement extends Components.GlShare, HTMLStencilElement {}
  var HTMLGlShareElement: {
    prototype: HTMLGlShareElement;
    new (): HTMLGlShareElement;
  };

  interface HTMLGlShareButtonElement extends Components.GlShareButton, HTMLStencilElement {}
  var HTMLGlShareButtonElement: {
    prototype: HTMLGlShareButtonElement;
    new (): HTMLGlShareButtonElement;
  };

  interface HTMLGlStyleElement extends Components.GlStyle, HTMLStencilElement {}
  var HTMLGlStyleElement: {
    prototype: HTMLGlStyleElement;
    new (): HTMLGlStyleElement;
  };

  interface HTMLGlTableElement extends Components.GlTable, HTMLStencilElement {}
  var HTMLGlTableElement: {
    prototype: HTMLGlTableElement;
    new (): HTMLGlTableElement;
  };

  interface HTMLGlTableColumnElement extends Components.GlTableColumn, HTMLStencilElement {}
  var HTMLGlTableColumnElement: {
    prototype: HTMLGlTableColumnElement;
    new (): HTMLGlTableColumnElement;
  };

  interface HTMLGlTableColumnVisibilityElement extends Components.GlTableColumnVisibility, HTMLStencilElement {}
  var HTMLGlTableColumnVisibilityElement: {
    prototype: HTMLGlTableColumnVisibilityElement;
    new (): HTMLGlTableColumnVisibilityElement;
  };

  interface HTMLGlTableColumnVisibilityButtonElement extends Components.GlTableColumnVisibilityButton, HTMLStencilElement {}
  var HTMLGlTableColumnVisibilityButtonElement: {
    prototype: HTMLGlTableColumnVisibilityButtonElement;
    new (): HTMLGlTableColumnVisibilityButtonElement;
  };

  interface HTMLGlTableColumnVisibilityToggleElement extends Components.GlTableColumnVisibilityToggle, HTMLStencilElement {}
  var HTMLGlTableColumnVisibilityToggleElement: {
    prototype: HTMLGlTableColumnVisibilityToggleElement;
    new (): HTMLGlTableColumnVisibilityToggleElement;
  };

  interface HTMLGlTableExportButtonElement extends Components.GlTableExportButton, HTMLStencilElement {}
  var HTMLGlTableExportButtonElement: {
    prototype: HTMLGlTableExportButtonElement;
    new (): HTMLGlTableExportButtonElement;
  };

  interface HTMLGlTableExportControllerElement extends Components.GlTableExportController, HTMLStencilElement {}
  var HTMLGlTableExportControllerElement: {
    prototype: HTMLGlTableExportControllerElement;
    new (): HTMLGlTableExportControllerElement;
  };
  interface HTMLElementTagNameMap {
    'gl-address-search': HTMLGlAddressSearchElement;
    'gl-app': HTMLGlAppElement;
    'gl-attribute-values': HTMLGlAttributeValuesElement;
    'gl-basemap-switcher': HTMLGlBasemapSwitcherElement;
    'gl-basemaps': HTMLGlBasemapsElement;
    'gl-download-button': HTMLGlDownloadButtonElement;
    'gl-download-file': HTMLGlDownloadFileElement;
    'gl-download-list': HTMLGlDownloadListElement;
    'gl-draw-controller': HTMLGlDrawControllerElement;
    'gl-draw-toolbar': HTMLGlDrawToolbarElement;
    'gl-drawer': HTMLGlDrawerElement;
    'gl-drawer-toggle': HTMLGlDrawerToggleElement;
    'gl-facet': HTMLGlFacetElement;
    'gl-feature-list': HTMLGlFeatureListElement;
    'gl-field': HTMLGlFieldElement;
    'gl-form': HTMLGlFormElement;
    'gl-form-controller': HTMLGlFormControllerElement;
    'gl-form-page': HTMLGlFormPageElement;
    'gl-fullscreen': HTMLGlFullscreenElement;
    'gl-geocode-controller': HTMLGlGeocodeControllerElement;
    'gl-legend': HTMLGlLegendElement;
    'gl-legend-item': HTMLGlLegendItemElement;
    'gl-like-button': HTMLGlLikeButtonElement;
    'gl-like-controller': HTMLGlLikeControllerElement;
    'gl-map': HTMLGlMapElement;
    'gl-option': HTMLGlOptionElement;
    'gl-popup': HTMLGlPopupElement;
    'gl-rest-controller': HTMLGlRestControllerElement;
    'gl-share': HTMLGlShareElement;
    'gl-share-button': HTMLGlShareButtonElement;
    'gl-style': HTMLGlStyleElement;
    'gl-table': HTMLGlTableElement;
    'gl-table-column': HTMLGlTableColumnElement;
    'gl-table-column-visibility': HTMLGlTableColumnVisibilityElement;
    'gl-table-column-visibility-button': HTMLGlTableColumnVisibilityButtonElement;
    'gl-table-column-visibility-toggle': HTMLGlTableColumnVisibilityToggleElement;
    'gl-table-export-button': HTMLGlTableExportButtonElement;
    'gl-table-export-controller': HTMLGlTableExportControllerElement;
  }
}

declare namespace LocalJSX {
  interface GlAddressSearch extends JSXBase.HTMLAttributes<HTMLGlAddressSearchElement> {
    'bbox'?: [number, number, number, number] | string;
    'jobId'?: string;
    'limit'?: number;
    'maxZoom'?: number;
    'placeholder'?: string;
    'url'?: string;
    'zoomPadding'?: number;
  }
  interface GlApp extends JSXBase.HTMLAttributes<HTMLGlAppElement> {
    'label'?: string;
    'menu'?: 'custom' | boolean;
    'menuLabel'?: string;
    'splitPane'?: boolean;
  }
  interface GlAttributeValues extends JSXBase.HTMLAttributes<HTMLGlAttributeValuesElement> {
    'attributeOptions'?: string | any[];
    'features'?: any[];
    'header'?: string;
    'headerAttribute'?: string;
    'labelPosition'?: 'fixed' | 'floating' | 'stacked';
    'limit'?: number;
    'valueMaxWidth'?: string;
  }
  interface GlBasemapSwitcher extends JSXBase.HTMLAttributes<HTMLGlBasemapSwitcherElement> {}
  interface GlBasemaps extends JSXBase.HTMLAttributes<HTMLGlBasemapsElement> {}
  interface GlDownloadButton extends JSXBase.HTMLAttributes<HTMLGlDownloadButtonElement> {}
  interface GlDownloadFile extends JSXBase.HTMLAttributes<HTMLGlDownloadFileElement> {
    'format'?: string;
    'label'?: string;
    'size'?: string;
    'url'?: string;
  }
  interface GlDownloadList extends JSXBase.HTMLAttributes<HTMLGlDownloadListElement> {
    'files'?: HTMLGlDownloadFileElement[];
  }
  interface GlDrawController extends JSXBase.HTMLAttributes<HTMLGlDrawControllerElement> {}
  interface GlDrawToolbar extends JSXBase.HTMLAttributes<HTMLGlDrawToolbarElement> {
    'cancelText'?: string;
    'color'?: Color;
    'confirmText'?: string;
    'label'?: string;
    'mapId'?: string;
    'maxFeatures'?: number;
    'minFeatures'?: number;
    'onGlDrawCancel'?: (event: CustomEvent<any>) => void;
    'onGlDrawConfirm'?: (event: CustomEvent<any>) => void;
  }
  interface GlDrawer extends JSXBase.HTMLAttributes<HTMLGlDrawerElement> {
    'drawerTitle'?: string;
    'mapId'?: string;
    'open'?: boolean;
  }
  interface GlDrawerToggle extends JSXBase.HTMLAttributes<HTMLGlDrawerToggleElement> {
    'buttonTitle'?: string;
    'icon'?: string;
  }
  interface GlFacet extends JSXBase.HTMLAttributes<HTMLGlFacetElement> {
    'detail'?: boolean;
    'image'?: string;
    'label'?: string;
    'onGlFormFacet'?: (event: CustomEvent<any>) => void;
    'value'?: string;
    'widget'?: 'header' | 'item';
  }
  interface GlFeatureList extends JSXBase.HTMLAttributes<HTMLGlFeatureListElement> {
    'batchSize'?: number;
    'component'?: string;
    'componentOptions'?: any;
    'display'?: 'all' | 'visible';
    'features'?: any[];
    'item'?: boolean;
    'loadingSpinner'?: string;
    'loadingText'?: string;
    'mapId'?: string;
    'order'?: 'asc' | 'desc' | 'none';
    'orderBy'?: string;
    'sourceId'?: string;
    'styleId'?: string;
  }
  interface GlField extends JSXBase.HTMLAttributes<HTMLGlFieldElement> {
    'attribute'?: string;
    'image'?: string;
    'label'?: string;
    'onGlFieldValueChanged'?: (event: CustomEvent<any>) => void;
    'required'?: boolean;
    'type'?: any;
    'widget'?: string;
  }
  interface GlForm extends JSXBase.HTMLAttributes<HTMLGlFormElement> {
    'cancelText'?: string;
    'feature'?: any;
    'formId'?: string;
    'label'?: string;
    'onGlFormCancel'?: (event: CustomEvent<any>) => void;
    'onGlFormFeatureChanged'?: (event: CustomEvent<any>) => void;
    'onGlFormSubmit'?: (event: CustomEvent<any>) => void;
    'schema'?: string;
    'submitText'?: string;
    'translateText'?: boolean;
  }
  interface GlFormController extends JSXBase.HTMLAttributes<HTMLGlFormControllerElement> {}
  interface GlFormPage extends JSXBase.HTMLAttributes<HTMLGlFormPageElement> {
    'backText'?: string;
    'cancelText'?: string;
    'facets'?: any[];
    'fields'?: any[];
    'formFacet'?: string;
    'label'?: string;
    'root'?: boolean;
    'submitText'?: string;
  }
  interface GlFullscreen extends JSXBase.HTMLAttributes<HTMLGlFullscreenElement> {}
  interface GlGeocodeController extends JSXBase.HTMLAttributes<HTMLGlGeocodeControllerElement> {
    'defaultClient'?: string;
    'onGlForwardGeocode'?: (event: CustomEvent<any>) => void;
    'onGlReverseGeocode'?: (event: CustomEvent<any>) => void;
  }
  interface GlLegend extends JSXBase.HTMLAttributes<HTMLGlLegendElement> {}
  interface GlLegendItem extends JSXBase.HTMLAttributes<HTMLGlLegendItemElement> {
    'image'?: string;
    'layers'?: string | string[];
    'styleId'?: string;
    'toggle'?: boolean;
    'widget'?: 'divider' | 'item';
  }
  interface GlLikeButton extends JSXBase.HTMLAttributes<HTMLGlLikeButtonElement> {
    'attribute'?: string;
    'disabled'?: boolean;
    'feature'?: any;
    'iconNo'?: string;
    'iconYes'?: string;
    'method'?: 'GET' | 'POST' | 'PATCH' | 'PUT' | 'DELETE';
    'onGlLike'?: (event: CustomEvent<any>) => void;
    'requestMode'?: RequestMode;
    'token'?: string;
    'url'?: string;
  }
  interface GlLikeController extends JSXBase.HTMLAttributes<HTMLGlLikeControllerElement> {}
  interface GlMap extends JSXBase.HTMLAttributes<HTMLGlMapElement> {
    'draw'?: any;
    'drawOptions'?: any;
    'drawing'?: boolean;
    'glyphs'?: string;
    'latitude'?: number;
    'longitude'?: number;
    'map'?: any;
    'maxzoom'?: number;
    'minzoom'?: number;
    'onGlDrawCreate'?: (event: CustomEvent<any>) => void;
    'onGlDrawDelete'?: (event: CustomEvent<any>) => void;
    'onGlDrawEnter'?: (event: CustomEvent<any>) => void;
    'onGlDrawExit'?: (event: CustomEvent<any>) => void;
    'onGlStyleUpdated'?: (event: CustomEvent<any>) => void;
    'sprite'?: string;
    'zoom'?: number;
  }
  interface GlOption extends JSXBase.HTMLAttributes<HTMLGlOptionElement> {
    'image'?: string;
    'label'?: string;
    'onGlOptionChanged'?: (event: CustomEvent<any>) => void;
    'value'?: any;
  }
  interface GlPopup extends JSXBase.HTMLAttributes<HTMLGlPopupElement> {
    'clickEventDelay'?: number;
    'closeKey'?: number;
    'component'?: string;
    'componentOptions'?: any;
    'layers'?: string[] | string;
    'maxWidth'?: string;
  }
  interface GlRestController extends JSXBase.HTMLAttributes<HTMLGlRestControllerElement> {}
  interface GlShare extends JSXBase.HTMLAttributes<HTMLGlShareElement> {
    'popupHeight'?: number;
    'popupWidth'?: number;
    'shareHashtags'?: string;
    'shareTitle'?: string;
    'shareUrl'?: string;
    'shareUser'?: string;
  }
  interface GlShareButton extends JSXBase.HTMLAttributes<HTMLGlShareButtonElement> {
    'icon'?: string;
  }
  interface GlStyle extends JSXBase.HTMLAttributes<HTMLGlStyleElement> {
    'basemap'?: boolean;
    'clickableLayers'?: string[] | string;
    'enabled'?: boolean;
    'json'?: any;
    'name'?: string;
    'onGlFeatureClick'?: (event: CustomEvent<any>) => void;
    'onGlStyleElementAdded'?: (event: CustomEvent<any>) => void;
    'onGlStyleElementModified'?: (event: CustomEvent<any>) => void;
    'onGlStyleElementRemoved'?: (event: CustomEvent<any>) => void;
    'thumbnail'?: string;
    'token'?: string;
    'url'?: string;
  }
  interface GlTable extends JSXBase.HTMLAttributes<HTMLGlTableElement> {
    'disableDefaultSort'?: boolean;
    'features'?: any[];
    'onGlTableSort'?: (event: CustomEvent<any>) => void;
    'rowClassAttribute'?: string;
    'sortAttribute'?: string;
    'sortOrder'?: 'asc' | 'desc';
  }
  interface GlTableColumn extends JSXBase.HTMLAttributes<HTMLGlTableColumnElement> {
    'attribute'?: string;
    'cellClassAttribute'?: string;
    'component'?: string;
    'componentProps'?: any;
    'csv'?: boolean;
    'format'?: string | any;
    'label'?: string;
    'onGlTableColumnChanged'?: (event: CustomEvent<any>) => void;
    'pdf'?: boolean;
    'sortable'?: boolean;
    'visible'?: boolean;
  }
  interface GlTableColumnVisibility extends JSXBase.HTMLAttributes<HTMLGlTableColumnVisibilityElement> {
    'label'?: string;
    'tableId'?: string;
  }
  interface GlTableColumnVisibilityButton extends JSXBase.HTMLAttributes<HTMLGlTableColumnVisibilityButtonElement> {
    'label'?: string;
    'tableId'?: string;
  }
  interface GlTableColumnVisibilityToggle extends JSXBase.HTMLAttributes<HTMLGlTableColumnVisibilityToggleElement> {
    'column'?: HTMLGlTableColumnElement;
    'enabled'?: boolean;
  }
  interface GlTableExportButton extends JSXBase.HTMLAttributes<HTMLGlTableExportButtonElement> {
    'author'?: string;
    'filename'?: string;
    'format'?: 'csv' | 'pdf';
    'pageOrientation'?: 'landscape' | 'portrait';
    'pageSubtitle'?: string;
    'pageTitle'?: string;
    'tableId'?: string;
    'url'?: string;
  }
  interface GlTableExportController extends JSXBase.HTMLAttributes<HTMLGlTableExportControllerElement> {}

  interface IntrinsicElements {
    'gl-address-search': GlAddressSearch;
    'gl-app': GlApp;
    'gl-attribute-values': GlAttributeValues;
    'gl-basemap-switcher': GlBasemapSwitcher;
    'gl-basemaps': GlBasemaps;
    'gl-download-button': GlDownloadButton;
    'gl-download-file': GlDownloadFile;
    'gl-download-list': GlDownloadList;
    'gl-draw-controller': GlDrawController;
    'gl-draw-toolbar': GlDrawToolbar;
    'gl-drawer': GlDrawer;
    'gl-drawer-toggle': GlDrawerToggle;
    'gl-facet': GlFacet;
    'gl-feature-list': GlFeatureList;
    'gl-field': GlField;
    'gl-form': GlForm;
    'gl-form-controller': GlFormController;
    'gl-form-page': GlFormPage;
    'gl-fullscreen': GlFullscreen;
    'gl-geocode-controller': GlGeocodeController;
    'gl-legend': GlLegend;
    'gl-legend-item': GlLegendItem;
    'gl-like-button': GlLikeButton;
    'gl-like-controller': GlLikeController;
    'gl-map': GlMap;
    'gl-option': GlOption;
    'gl-popup': GlPopup;
    'gl-rest-controller': GlRestController;
    'gl-share': GlShare;
    'gl-share-button': GlShareButton;
    'gl-style': GlStyle;
    'gl-table': GlTable;
    'gl-table-column': GlTableColumn;
    'gl-table-column-visibility': GlTableColumnVisibility;
    'gl-table-column-visibility-button': GlTableColumnVisibilityButton;
    'gl-table-column-visibility-toggle': GlTableColumnVisibilityToggle;
    'gl-table-export-button': GlTableExportButton;
    'gl-table-export-controller': GlTableExportController;
  }
}

export { LocalJSX as JSX };


declare module "@stencil/core" {
  export namespace JSX {
    interface IntrinsicElements extends LocalJSX.IntrinsicElements {}
  }
}


