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 {
  AnimationPreset,
  QRCodeAnimation,
} from './components/qr-code/animations';

declare global {

  namespace StencilComponents {
    interface QrCode {
      'animateQRCode': (animation?: AnimationPreset | QRCodeAnimation) => void;
      'contents': string;
      'getModuleCount': () => number;
      'maskXToYRatio': number;
      'moduleColor': string;
      'positionCenterColor': string;
      'positionRingColor': string;
      'protocol': string;
      'squares': boolean;
    }
  }

  interface HTMLQrCodeElement extends StencilComponents.QrCode, HTMLStencilElement {}

  var HTMLQrCodeElement: {
    prototype: HTMLQrCodeElement;
    new (): HTMLQrCodeElement;
  };
  interface HTMLElementTagNameMap {
    'qr-code': HTMLQrCodeElement;
  }
  interface ElementTagNameMap {
    'qr-code': HTMLQrCodeElement;
  }
  namespace JSX {
    interface IntrinsicElements {
      'qr-code': JSXElements.QrCodeAttributes;
    }
  }
  namespace JSXElements {
    export interface QrCodeAttributes extends HTMLAttributes {
      'contents'?: string;
      'maskXToYRatio'?: number;
      'moduleColor'?: string;
      'onCodeRendered'?: (event: CustomEvent) => void;
      'positionCenterColor'?: string;
      'positionRingColor'?: string;
      'protocol'?: string;
      'squares'?: boolean;
    }
  }
}

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

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