import React, { Component, SyntheticEvent } from 'react'; interface ProgressBarForwardRefProps { audio: HTMLAudioElement; progressUpdateInterval: number; showDownloadProgress: boolean; showFilledProgress: boolean; } interface ProgressBarProps extends ProgressBarForwardRefProps { progressBar: React.RefObject; } interface ProgressBarState { isDraggingProgress: boolean; currentTimePos: string; hasDownloadProgressAnimation: boolean; downloadProgressArr: DownloadProgress[]; } interface DownloadProgress { left: string; width: string; } interface TimePosInfo { currentTime: number; currentTimePos: string; } declare class ProgressBar extends Component { audio?: HTMLAudioElement; timeOnMouseMove: number; hasAddedAudioEventListener: boolean; downloadProgressAnimationTimer?: number; state: ProgressBarState; getCurrentProgress: (event: MouseEvent | TouchEvent) => TimePosInfo; handleContextMenu: (event: SyntheticEvent) => void; handleMouseDownOrTouchStartProgressBar: (event: React.MouseEvent | React.TouchEvent) => void; handleWindowMouseOrTouchMove: (event: TouchEvent | MouseEvent) => void; handleWindowMouseOrTouchUp: (event: MouseEvent | TouchEvent) => void; handleAudioTimeUpdate: (arg: Event) => void; handleAudioDownloadProgressUpdate: (e: Event) => void; componentDidUpdate(): void; componentWillUnmount(): void; render(): React.ReactNode; } declare const ProgressBarForwardRef: (props: ProgressBarForwardRefProps, ref: React.Ref) => React.ReactElement; declare const _default: React.ForwardRefExoticComponent>; export default _default; export { ProgressBar, ProgressBarForwardRef };