import View from './progress.view';
import { IEventEmitter } from '../../../event-emitter/types';
import { ITooltipService } from '../../core/tooltip/types';
import { IProgressControlAPI, IProgressControl } from './types';
import { ITextMap } from '../../../text-map/types';
import { IPlaybackEngine } from '../../../playback-engine/types';
import { IPreviewThumbnail } from '../../preview-thumbnail/types';
import { IPreviewFullSize } from '../../preview-full-size/types';
import { IThemeService } from '../../core/theme';
export declare const UPDATE_PROGRESS_INTERVAL_DELAY: number;
declare class ProgressControl implements IProgressControl {
    static moduleName: string;
    static View: typeof View;
    static dependencies: string[];
    private _engine;
    private _liveStateEngine;
    private _eventEmitter;
    private _textMap;
    private _tooltipService;
    private _theme;
    private _previewThumbnail;
    private _previewFullSize;
    private _isUserDragging;
    private _shouldPlayAfterDragEnd;
    private _desiredSeekPosition;
    private _interceptor;
    private _updateControlInterval;
    private _timeIndicatorsToAdd;
    private _shouldHidePreviewOnUpdate;
    private _showFullScreenPreview;
    private _unbindEvents;
    view: View;
    isHidden: boolean;
    constructor({ engine, liveStateEngine, eventEmitter, textMap, tooltipService, theme, previewThumbnail, previewFullSize, }: {
        eventEmitter: IEventEmitter;
        engine: IPlaybackEngine;
        liveStateEngine: any;
        textMap: ITextMap;
        tooltipService: ITooltipService;
        theme: IThemeService;
        previewThumbnail: IPreviewThumbnail;
        previewFullSize: IPreviewFullSize;
    });
    getElement(): HTMLElement;
    private _bindEvents;
    private _initUI;
    private _initInterceptor;
    private _destroyInterceptor;
    private _bindCallbacks;
    private _startIntervalUpdates;
    private _stopIntervalUpdates;
    private _convertPlayedPercentToTime;
    private _onChangePlayedPercent;
    private _showTooltipAndPreview;
    private _hideTooltip;
    private _startProcessingUserDrag;
    private _stopProcessingUserDrag;
    private _hidePreview;
    private _processStateChange;
    private _processLiveStateChange;
    private _changeCurrentTimeOfVideo;
    private _pauseVideoOnDragStart;
    private _playVideoOnDragEnd;
    private _updateBufferIndicator;
    private _updatePlayedIndicator;
    private _updateAllIndicators;
    private _initTimeIndicators;
    private _addTimeIndicator;
    private _syncWithLive;
    private _onSyncWithLiveMouseEnter;
    private _onSyncWithLiveMouseLeave;
    private _setPlayed;
    private _setBuffered;
    private _reset;
    /**
     * Player will show full screen preview instead of actual seek on video when user drag the progress control
     * @example
     * player.showPreviewOnProgressDrag();
     */
    showPreviewOnProgressDrag(): void;
    /**
     * Player will seek on video when user drag the progress control
     * @example
     * player.seekOnProgressDrag();
     */
    seekOnProgressDrag(): void;
    /**
     * Add time indicator to progress bar
     */
    addTimeIndicator(time: number): void;
    /**
     * Add time indicators to progress bar
     */
    addTimeIndicators(times: number[]): void;
    /**
     * Delete all time indicators from progress bar
     */
    clearTimeIndicators(): void;
    hide(): void;
    show(): void;
    destroy(): void;
}
export { IProgressControlAPI };
export default ProgressControl;
