import './stencil.core';
/**
 * This is an autogenerated file created by the Stencil compiler.
 * It contains typing information for all components that exist in this project.
 */

import './stencil.core';

declare global {
  namespace JSX {
    interface Element {}
    export interface IntrinsicElements {}
  }
  namespace JSXElements {}

  interface HTMLElement {
    componentOnReady?: () => Promise<this | null>;
  }

  interface HTMLStencilElement extends HTMLElement {
    componentOnReady(): Promise<this>;

    forceUpdate(): void;
  }

  interface HTMLAttributes {}
}

import '@ionic/core';
import 'ionicons';

import {
  ShopstyleProduct,
} from './interfaces/shopstyle-product.interface';

declare global {

  namespace StencilComponents {
    interface CollectiveWidgetProductCell {
      'imageSize': number;
      'product': ShopstyleProduct;
      'productId': string | number;
      'showBrand': boolean;
      'showInfoOnHover': boolean;
      'showPrice': boolean;
      'showSalePrice': boolean;
    }
  }

  interface HTMLCollectiveWidgetProductCellElement extends StencilComponents.CollectiveWidgetProductCell, HTMLStencilElement {}

  var HTMLCollectiveWidgetProductCellElement: {
    prototype: HTMLCollectiveWidgetProductCellElement;
    new (): HTMLCollectiveWidgetProductCellElement;
  };
  interface HTMLElementTagNameMap {
    'collective-widget-product-cell': HTMLCollectiveWidgetProductCellElement;
  }
  interface ElementTagNameMap {
    'collective-widget-product-cell': HTMLCollectiveWidgetProductCellElement;
  }
  namespace JSX {
    interface IntrinsicElements {
      'collective-widget-product-cell': JSXElements.CollectiveWidgetProductCellAttributes;
    }
  }
  namespace JSXElements {
    export interface CollectiveWidgetProductCellAttributes extends HTMLAttributes {
      'imageSize'?: number;
      'product'?: ShopstyleProduct;
      'productId'?: string | number;
      'showBrand'?: boolean;
      'showInfoOnHover'?: boolean;
      'showPrice'?: boolean;
      'showSalePrice'?: boolean;
    }
  }
}


declare global {

  namespace StencilComponents {
    interface CollectiveProductsChooserButton {
      'value': string[];
    }
  }

  interface HTMLCollectiveProductsChooserButtonElement extends StencilComponents.CollectiveProductsChooserButton, HTMLStencilElement {}

  var HTMLCollectiveProductsChooserButtonElement: {
    prototype: HTMLCollectiveProductsChooserButtonElement;
    new (): HTMLCollectiveProductsChooserButtonElement;
  };
  interface HTMLElementTagNameMap {
    'collective-products-chooser-button': HTMLCollectiveProductsChooserButtonElement;
  }
  interface ElementTagNameMap {
    'collective-products-chooser-button': HTMLCollectiveProductsChooserButtonElement;
  }
  namespace JSX {
    interface IntrinsicElements {
      'collective-products-chooser-button': JSXElements.CollectiveProductsChooserButtonAttributes;
    }
  }
  namespace JSXElements {
    export interface CollectiveProductsChooserButtonAttributes extends HTMLAttributes {
      'onChange'?: (event: CustomEvent) => void;
      'value'?: string[];
    }
  }
}


declare global {

  namespace StencilComponents {
    interface CollectiveProductsChooser {
      'value': string[];
    }
  }

  interface HTMLCollectiveProductsChooserElement extends StencilComponents.CollectiveProductsChooser, HTMLStencilElement {}

  var HTMLCollectiveProductsChooserElement: {
    prototype: HTMLCollectiveProductsChooserElement;
    new (): HTMLCollectiveProductsChooserElement;
  };
  interface HTMLElementTagNameMap {
    'collective-products-chooser': HTMLCollectiveProductsChooserElement;
  }
  interface ElementTagNameMap {
    'collective-products-chooser': HTMLCollectiveProductsChooserElement;
  }
  namespace JSX {
    interface IntrinsicElements {
      'collective-products-chooser': JSXElements.CollectiveProductsChooserAttributes;
    }
  }
  namespace JSXElements {
    export interface CollectiveProductsChooserAttributes extends HTMLAttributes {
      'onChange'?: (event: CustomEvent) => void;
      'value'?: string[];
    }
  }
}


declare global {

  namespace StencilComponents {
    interface CollectiveProducts {
      'columns': number;
      'imageSize': number;
      'pid': string;
      'products': string[];
      'showBrand': boolean;
      'showInfoOnHover': boolean;
      'showPrice': boolean;
      'showRetailer': boolean;
      'showSalePrice': boolean;
    }
  }

  interface HTMLCollectiveProductsElement extends StencilComponents.CollectiveProducts, HTMLStencilElement {}

  var HTMLCollectiveProductsElement: {
    prototype: HTMLCollectiveProductsElement;
    new (): HTMLCollectiveProductsElement;
  };
  interface HTMLElementTagNameMap {
    'collective-products': HTMLCollectiveProductsElement;
  }
  interface ElementTagNameMap {
    'collective-products': HTMLCollectiveProductsElement;
  }
  namespace JSX {
    interface IntrinsicElements {
      'collective-products': JSXElements.CollectiveProductsAttributes;
    }
  }
  namespace JSXElements {
    export interface CollectiveProductsAttributes extends HTMLAttributes {
      'columns'?: number;
      'imageSize'?: number;
      'pid'?: string;
      'products'?: string[];
      'showBrand'?: boolean;
      'showInfoOnHover'?: boolean;
      'showPrice'?: boolean;
      'showRetailer'?: boolean;
      'showSalePrice'?: boolean;
    }
  }
}


declare global {

  namespace StencilComponents {
    interface CollectiveProductCell {
      'product': ShopstyleProduct;
      'selected': boolean;
    }
  }

  interface HTMLCollectiveProductCellElement extends StencilComponents.CollectiveProductCell, HTMLStencilElement {}

  var HTMLCollectiveProductCellElement: {
    prototype: HTMLCollectiveProductCellElement;
    new (): HTMLCollectiveProductCellElement;
  };
  interface HTMLElementTagNameMap {
    'collective-product-cell': HTMLCollectiveProductCellElement;
  }
  interface ElementTagNameMap {
    'collective-product-cell': HTMLCollectiveProductCellElement;
  }
  namespace JSX {
    interface IntrinsicElements {
      'collective-product-cell': JSXElements.CollectiveProductCellAttributes;
    }
  }
  namespace JSXElements {
    export interface CollectiveProductCellAttributes extends HTMLAttributes {
      'product'?: ShopstyleProduct;
      'selected'?: boolean;
    }
  }
}

declare global { namespace JSX { interface StencilJSX {} } }

export declare function defineCustomElements(window: any): void;