import { Marker } from '../../Plugins/Markers';
import * as shaka from 'shaka-player/dist/shaka-player.ui';
type seekBarChapter = shaka.extern.Chapter & {
    element?: HTMLDivElement;
};
type seekBarMarker = Marker & {
    element?: HTMLDivElement;
    id: string;
};
/**
 * Custom Seek bar
 * With markers and chapters
 */
export declare class CustomSeekBarFactory {
    create(rootElement: HTMLElement, controls: shaka.ui.Controls): CustomSeekBar;
}
export default class CustomSeekBar extends shaka.ui.SeekBar {
    #private;
    custumSeekBarActive: boolean;
    isChaptersEnabled: boolean;
    isMarkersEnabled: boolean;
    isThumbnailEnabled: boolean;
    chapters: seekBarChapter[];
    markers: seekBarMarker[];
    thumbnailWrapper: HTMLDivElement;
    thumbnailMarkerContainer: HTMLElement;
    thumbnailMarkerText: HTMLElement;
    thumbnailMarkerImage: HTMLImageElement;
    thumbnailMarkerTime: HTMLElement;
    markerContainer: HTMLElement;
    chapterContainer: HTMLElement;
    chapterContainerText: HTMLElement;
    preloadedMarkerImages: Map<number, HTMLImageElement>;
    hideChapters: shaka.util.Timer;
    hideMarkers: shaka.util.Timer;
    thumbnailContainer: HTMLDivElement | null;
    eventManager: shaka.util.EventManager;
    controlsContainer: HTMLElement;
    constructor(parent: HTMLElement, controls: shaka.ui.Controls);
    /**
     * @override
     */
    update(): void;
    /**
     * Called by the base class when user interaction with the input element
     * ends.
     *
     * @override
     */
    onChangeEnd(): void;
    /**
     * Update the video element's state to match the input element's state.
     * Called by the base class when the input element changes.
     *
     * @override
     */
    onChange(): void;
    changeTo(value: number): void;
    updateChapters(): void;
    onChangeChapters(): void;
    setChapters(chapters: seekBarChapter[]): void;
    calcFrac(chapter: shaka.extern.Chapter, seekRange: shaka.extern.BufferedRange, seekRangeSize: number): {
        startFrac: number;
        endFrac: number;
    };
    /**
     * @param {string} color
     * @param {number} fract
     * @return {string}
     * @private
     */
    makeColor_(color: string, fract: number): string;
    setMarkers(markers: seekBarMarker[]): void;
    /**
     * Preload image
     * @param {string} url
     * @param {number} time
     */
    preloadImage(url: string, time: number): Promise<void>;
    /**
     * Load image
     * @param {string} url
     * @param {string} alt
     */
    loadImage(url: string, alt: string): Promise<boolean>;
    /**
     * @param {number} totalSeconds
     * @private
     */
    timeFormatter_(totalSeconds: number): string;
    hideChapters_(): void;
    hideMarkers_(): void;
    registerChapters(chapters: shaka.extern.Chapter[]): void;
    registerMarkers(markers: shaka.extern.Chapter[]): Promise<void>;
}
export {};
