import { ComponentInterface, Event, EventEmitter } from '../../stencil-public-runtime';
import type HLS from 'hls.js';
export declare class Video implements ComponentInterface {
  private videoRef;
  private controlsRef;
  private danmuRef;
  private toastProgressRef;
  private toastProgressTitleRef;
  private toastVolumeRef;
  private toastVolumeBarRef;
  private currentTime;
  private lastClickedTime;
  private lastTouchScreenX;
  private lastTouchScreenY;
  private isDraggingProgress;
  private lastVolume;
  private lastPercentage;
  private nextPercentage;
  private gestureType;
  private HLS;
  private hls;
  el: HTMLTaroVideoCoreElement;
  /**
   * 要播放视频的资源地址
   */
  src: string;
  /**
   * 指定视频时长
   */
  duration: number;
  /**
   * 是否显示默认播放控件（播放/暂停按钮、播放进度、时间）
   */
  controls: boolean;
  /**
   * 是否自动播放
   */
  autoplay: boolean;
  /**
   * 是否循环播放
   */
  loop: boolean;
  /**
   * 是否静音播放
   */
  muted: boolean;
  /**
   * 指定视频初始播放位置
   */
  initialTime: number;
  /**
   * 视频封面的图片网络资源地址或云文件ID（2.3.0）。若 controls 属性值为 false 则设置 poster 无效
   */
  poster: string;
  /**
   * 当视频大小与 video 容器大小不一致时，视频的表现形式
   */
  objectFit: 'contain' | 'fill' | 'cover';
  /**
   * 若不设置，宽度大于 240 时才会显示
   */
  showProgress: boolean;
  /**
   * 是否显示全屏按钮
   */
  showFullscreenBtn: boolean;
  /**
   * 是否显示视频底部控制栏的播放按钮
   */
  showPlayBtn: boolean;
  /**
   * 是否显示视频中间的播放按钮
   */
  showCenterPlayBtn: boolean;
  /**
   * 是否显示静音按钮
   */
  showMuteBtn: boolean;
  /**
   * 弹幕列表
   */
  danmuList: [];
  /**
   * 是否显示弹幕按钮
   */
  danmuBtn: boolean;
  /**
   * 是否展示弹幕
   */
  enableDanmu: boolean;
  /**
   * 是否开启播放手势，即双击切换播放/暂停
   */
  enablePlayGesture: boolean;
  /**
   * 是否开启控制进度的手势
   */
  enableProgressGesture: boolean;
  /**
   * 在非全屏模式下，是否开启亮度与音量调节手势
   */
  vslideGesture: boolean;
  /**
   * 在全屏模式下，是否开启亮度与音量调节手势
   */
  vslideGestureInFullscreen: boolean;
  nativeProps: {};
  _duration: number;
  _enableDanmu: boolean;
  isPlaying: boolean;
  isFirst: boolean;
  isFullScreen: boolean;
  fullScreenTimestamp: number;
  isMute: boolean;
  onPlay: EventEmitter;
  onPause: EventEmitter;
  onEnded: EventEmitter;
  onTimeUpdate: EventEmitter;
  onError: EventEmitter;
  onFullScreenChange: EventEmitter;
  onProgress: EventEmitter;
  onLoadedMetaData: EventEmitter;
  componentWillLoad(): void;
  componentDidLoad(): void;
  componentDidRender(): void;
  disconnectedCallback(): void;
  watchEnableDanmu(newVal: any): void;
  watchSrc(): void;
  analyzeGesture: (e: TouchEvent) => {
    type: string;
    dataX?: number | undefined;
    dataY?: number | undefined;
  };
  onDocumentTouchMove(e: TouchEvent): Promise<void>;
  onDocumentTouchEnd(): void;
  loadNativePlayer: () => void;
  init: () => void;
  handlePlay: () => void;
  handlePause: () => void;
  handleEnded: () => void;
  handleTimeUpdate: (...args: any[]) => void;
  handleError: (e: any) => void;
  handleDurationChange: () => void;
  handleProgress: () => void;
  handleLoadedMetaData: (e: Event) => void;
  getHlsObject(): Promise<HLS>;
  /** 播放视频 */
  play(): Promise<void>;
  _play: () => Promise<void>;
  /** 暂停视频 */
  pause(): Promise<void>;
  _pause: () => void;
  /** 停止视频 */
  stop(): Promise<void>;
  _stop: () => void;
  /** 跳转到指定位置 */
  seek(position: number): Promise<void>;
  _seek: (position: number) => void;
  /** 进入全屏。若有自定义内容需在全屏时展示，需将内容节点放置到 video 节点内。 */
  requestFullScreen(): Promise<void>;
  /** 退出全屏 */
  exitFullScreen(): Promise<void>;
  onTouchStartContainer: (e: TouchEvent) => void;
  onClickContainer: () => void;
  onClickFullScreenBtn: (e: MouseEvent) => void;
  handleFullScreenChange: (e: any) => void;
  toggleFullScreen: (isFullScreen?: boolean) => void;
  toggleMute: (e: MouseEvent) => void;
  toggleDanmu: (e: MouseEvent) => void;
  render(): any;
}
