/* 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 {
  PlayMode,
} from './utils/player-mode';
import {
  PlayerState,
} from './utils/player-state';

export namespace Components {
  interface LottiePlayer {
    /**
    * Autoplay animation on load
    */
    'autoplay': boolean;
    /**
    * Background color.
    */
    'background'?: string;
    /**
    * Show controls.
    */
    'controls': boolean;
    /**
    * Number of times to loop animation.
    */
    'count'?: number;
    /**
    * Player state.
    */
    'currentState': PlayerState;
    /**
    * Direction of animation
    */
    'direction': number;
    'getLottie': () => Promise<any>;
    /**
    * Whether to play on mouse hover
    */
    'hover': boolean;
    'intermission': number;
    /**
    * Whether to loop animation
    */
    'loop': boolean;
    /**
    * Play mode.
    */
    'mode': PlayMode;
    /**
    * Stop playing animation.
    */
    'pause': () => Promise<void>;
    /**
    * Start playing animation.
    */
    'play': () => Promise<void>;
    /**
    * Renderer to use.
    */
    'renderer': 'svg';
    /**
    * Seek to a given frame.
    */
    'seek': (value: string | number) => Promise<void>;
    'seeker': any;
    /**
    * Animation play direction.
    * @param value Direction values.
    */
    'setDirection': (value: number) => Promise<void>;
    /**
    * Sets the looping of the animation.
    * @param value Whether to enable looping. Boolean true enables looping.
    */
    'setLooping': (value: boolean) => Promise<void>;
    /**
    * Sets animation play speed
    * @param value Playback speed.
    */
    'setSpeed': (value?: number) => Promise<void>;
    /**
    * Animation speed.
    */
    'speed': number;
    /**
    * Bodymovin JSON data or URL to json.
    */
    'src'?: string;
    /**
    * Stops animation play.
    */
    'stop': () => Promise<void>;
    /**
    * Toggles animation looping.
    */
    'toggleLooping': () => Promise<void>;
    /**
    * Toggle playing state.
    */
    'togglePlay': () => Promise<void>;
  }
}

declare global {


  interface HTMLLottiePlayerElement extends Components.LottiePlayer, HTMLStencilElement {}
  var HTMLLottiePlayerElement: {
    prototype: HTMLLottiePlayerElement;
    new (): HTMLLottiePlayerElement;
  };
  interface HTMLElementTagNameMap {
    'lottie-player': HTMLLottiePlayerElement;
  }
}

declare namespace LocalJSX {
  interface LottiePlayer {
    /**
    * Autoplay animation on load
    */
    'autoplay'?: boolean;
    /**
    * Background color.
    */
    'background'?: string;
    /**
    * Show controls.
    */
    'controls'?: boolean;
    /**
    * Number of times to loop animation.
    */
    'count'?: number;
    /**
    * Player state.
    */
    'currentState'?: PlayerState;
    /**
    * Direction of animation
    */
    'direction'?: number;
    /**
    * Whether to play on mouse hover
    */
    'hover'?: boolean;
    'intermission'?: number;
    /**
    * Whether to loop animation
    */
    'loop'?: boolean;
    /**
    * Play mode.
    */
    'mode'?: PlayMode;
    'onComplete'?: (event: CustomEvent<any>) => void;
    'onError'?: (event: CustomEvent<any>) => void;
    'onFrame'?: (event: CustomEvent<any>) => void;
    'onFreezed'?: (event: CustomEvent<any>) => void;
    'onLoaded'?: (event: CustomEvent<any>) => void;
    'onLooped'?: (event: CustomEvent<any>) => void;
    'onPaused'?: (event: CustomEvent<any>) => void;
    'onPlaying'?: (event: CustomEvent<any>) => void;
    'onReady'?: (event: CustomEvent<any>) => void;
    'onStopped'?: (event: CustomEvent<any>) => void;
    /**
    * Renderer to use.
    */
    'renderer'?: 'svg';
    'seeker'?: any;
    /**
    * Animation speed.
    */
    'speed'?: number;
    /**
    * Bodymovin JSON data or URL to json.
    */
    'src'?: string;
  }

  interface IntrinsicElements {
    'lottie-player': LottiePlayer;
  }
}

export { LocalJSX as JSX };


declare module "@stencil/core" {
  export namespace JSX {
    interface IntrinsicElements {
      'lottie-player': LocalJSX.LottiePlayer & JSXBase.HTMLAttributes<HTMLLottiePlayerElement>;
    }
  }
}


