export declare enum PlayerChromingTheme {
    Default = "DEFAULT",
    Stamp = "STAMP",
    Chromeless = "CHROMELESS",
    Custom = "CUSTOM",
    Audio = "AUDIO",
    Omakase = "OMAKASE"
}
export declare enum ControlBarVisibility {
    Enabled = "ENABLED",
    Disabled = "DISABLED",
    FullscreenOnly = "FULLSCREEN_ONLY"
}
export declare enum OmakaseControlBarVisibility {
    Enabled = "ENABLED",
    Disabled = "DISABLED",
    AlwaysOn = "ALWAYS_ON"
}
export declare enum DefaultThemeControl {
    Play = "PLAY",
    FrameForward = "FRAME_FORWARD",
    TenFramesForward = "TEN_FRAMES_FORWARD",
    FrameBackward = "FRAME_BACKWARD",
    TenFramesBackward = "TEN_FRAMES_BACKWARD",
    Bitc = "BITC",
    Fullscreen = "FULLSCREEN",
    Captions = "CAPTIONS",
    Volume = "VOLUME",
    Scrubber = "SCRUBBER",
    Trackselector = "TRACKSELECTOR",
    PlaybackRate = "PLAYBACK_RATE",
    Detach = "DETACH"
}
export declare enum AudioThemeControl {
    Play = "PLAY",
    Volume = "VOLUME",
    PlaybackRate = "PLAYBACK_RATE",
    Trackselector = "TRACKSELECTOR",
    Scrubber = "SCRUBBER",
    Time = "TIME"
}
export declare enum DefaultThemeFloatingControl {
    Trackselector = "TRACKSELECTOR",
    HelpMenu = "HELP_MENU",
    PlaybackControls = "PLAYBACK_CONTROLS",
    Time = "TIME"
}
export declare enum StampThemeFloatingControl {
    ProgressBar = "PROGRESS_BAR",
    Time = "TIME",
    PlaybackControls = "PLAYBACK_CONTROLS",
    ActionIcons = "ACTION_ICONS"
}
export declare enum StampThemeActionIcon {
    AudioToggle = "AUDIO_TOGGLE",
    Fullscreen = "FULLSCREEN"
}
export declare enum AudioThemeFloatingControl {
    PlaybackControls = "PLAYBACK_CONTROLS",
    HelpMenu = "HELP_MENU"
}
export declare enum ChromelessThemeFloatingControl {
    Time = "TIME"
}
export declare enum OmakaseThemeControl {
    Play = "PLAY",
    FrameForward = "FRAME_FORWARD",
    TenFramesForward = "TEN_FRAMES_FORWARD",
    FrameBackward = "FRAME_BACKWARD",
    TenFramesBackward = "TEN_FRAMES_BACKWARD",
    Fullscreen = "FULLSCREEN",
    Volume = "VOLUME",
    Trackselector = "TRACKSELECTOR",
    PlaybackRate = "PLAYBACK_RATE",
    Detach = "DETACH",
    Time = "TIME",
    Close = "CLOSE"
}
export declare enum OmakaseThemeFloatingControl {
    ProgressBar = "PROGRESS_BAR",
    Time = "TIME",
    PlaybackControls = "PLAYBACK_CONTROLS",
    ActionIcons = "ACTION_ICONS"
}
export declare enum OmakaseThemeActionIcon {
    HelpMenu = "HELP_MENU",
    Fullscreen = "FULLSCREEN",
    AudioToggle = "AUDIO_TOGGLE",
    Volume = "VOLUME",
    ControlBarToggle = "CONTROL_BAR_TOGGLE"
}
export declare enum StampThemeScale {
    Fill = "FILL",
    Fit = "FIT"
}
export declare enum TimeFormat {
    Timecode = "TIMECODE",
    CountdownTimer = "COUNTDOWN_TIMER",
    MediaTime = "MEDIA_TIME"
}
export declare enum WatermarkVisibility {
    AlwaysOn = "ALWAYS_ON",
    AutoHide = "AUTO_HIDE"
}
export declare enum AudioPlayerSize {
    Full = "FULL",
    Compact = "COMPACT"
}
export declare enum FullscreenChroming {
    Enabled = "ENABLED",
    Disabled = "DISABLED"
}
export declare enum OmakaseProgressBarPosition {
    OverVideo = "OVER_VIDEO",
    UnderVideo = "UNDER_VIDEO"
}
export declare enum AudioVisualization {
    Disabled = "DISABLED",
    Enabled = "ENABLED"
}
interface BasePlayerChroming<T extends PlayerChromingTheme> {
    /**
     * Chroming theme determines how the player will be chromed.
     */
    readonly theme: T;
    /**
     * URL for the thumbnails (used for preview in media chrome time range)
     */
    thumbnailUrl?: string;
    /**
     * Function that allows custom handler for getting a thumbnail for given time
     * @param time time in seconds
     * @returns thumbnail url
     */
    thumbnailSelectionFn?: (time: number) => string;
    /**
     * Watermark text or svg
     */
    watermark?: string;
    /**
     * Specifies if watermark is shown when the video is playing
     */
    watermarkVisibility?: WatermarkVisibility;
    /**
     * Specifies if chroming is enabled in fullscreen
     */
    fullscreenChroming?: FullscreenChroming;
    /**
     * CSS file url(s) for player chroming styling
     */
    styleUrl?: string | string[];
}
export interface DefaultThemeConfig {
    /**
     * Specifies controls visibility
     */
    controlBarVisibility: ControlBarVisibility;
    /**
     * Specifies list of enabled controls in control bar
     */
    controlBar: DefaultThemeControl[];
    /**
     * Specifies list of enabled floating controls
     */
    floatingControls: DefaultThemeFloatingControl[];
    /**
     * Specifies list of enabled floating controls
     */
    alwaysOnFloatingControls: DefaultThemeFloatingControl[];
    /**
     * Sets the available playback rates in menu
     */
    playbackRates: number[];
    /**
     * If false, track selection menu will keep open until explicitly closed.
     * If true it will close on track selection or when clicking outside of the menu
     */
    trackSelectorAutoClose: boolean;
    /**
     * Specifies which time format will be used in the timer control
     */
    timeFormat: TimeFormat;
    /**
     * Id of the custom web component used for Player chroming
     */
    htmlTemplateId?: string;
}
export interface CustomThemeConfig {
    /**
     * Id of the custom web component used for Player chroming
     */
    htmlTemplateId: string;
}
export interface DefaultChroming extends BasePlayerChroming<PlayerChromingTheme.Default> {
    themeConfig?: Partial<DefaultThemeConfig>;
}
export interface CustomChroming extends BasePlayerChroming<PlayerChromingTheme.Custom> {
    themeConfig?: Partial<CustomThemeConfig>;
}
export interface StampThemeConfig {
    /**
     * Specifies list of enabled floating controls
     */
    floatingControls: StampThemeFloatingControl[];
    /**
     * Specifies list of floating controls that are shown when the video is playing
     */
    alwaysOnFloatingControls: StampThemeFloatingControl[];
    /**
     * Specifies list of enabled action icons
     */
    actionIcons: StampThemeActionIcon[];
    /**
     * Specifies how the video will fill the container
     */
    stampScale: StampThemeScale;
    /**
     * Specifies which time format will be used in the timer control
     */
    timeFormat: TimeFormat;
    /**
     * Id of the custom web component used for Player chroming
     */
    htmlTemplateId?: string;
}
export interface AudioVisualizationConfig {
    /**
     * Hex value for the stroke color
     */
    strokeColor: string;
    /**
     * Hex values for the fill gradient colors
     */
    fillColors: string[];
}
export interface AudioThemeConfig {
    /**
     * Specifies controls visibility
     */
    controlBarVisibility: Omit<ControlBarVisibility, ControlBarVisibility.FullscreenOnly>;
    /**
     * Specifies list of enabled controls in control bar
     */
    controlBar: AudioThemeControl[];
    /**
     * Specifies list of enabled floating controls
     */
    floatingControls: AudioThemeFloatingControl[];
    /**
     * Sets the available playback rates in menu
     */
    playbackRates: number[];
    /**
     * Specifies the audio player size
     */
    playerSize: AudioPlayerSize;
    /**
     * Enables/disables the audio visualization
     */
    visualization: AudioVisualization;
    /**
     * Configures the audio visualization
     */
    visualizationConfig: AudioVisualizationConfig;
    /**
     * Specifies which time format will be used in the timer control
     */
    timeFormat: TimeFormat;
    /**
     * Id of the custom web component used for Player chroming
     */
    htmlTemplateId?: string;
}
export interface OmakaseThemeConfig {
    /**
     * Specifies the list of enabled floating controls
     */
    floatingControls: OmakaseThemeFloatingControl[];
    /**
     * Specifies the list of floating controls that are shown when the video is playing
     */
    alwaysOnFloatingControls: OmakaseThemeFloatingControl[];
    /**
     * Specifies the list of enabled action icons
     */
    actionIcons: OmakaseThemeActionIcon[];
    /**
     * Specifies which time format will be used in the timer control
     */
    timeFormat: TimeFormat;
    /**
     * Specifies controls visibility
     */
    controlBarVisibility: OmakaseControlBarVisibility;
    /**
     * Specifies list of enabled controls in control bar
     */
    controlBar: OmakaseThemeControl[];
    /**
     * Specifies control bar position
     */
    progressBarPosition: OmakaseProgressBarPosition;
    /**
     * Sets the available playback rates in menu
     */
    playbackRates: number[];
    /**
     * Id of the custom web component used for Player chroming
     */
    htmlTemplateId?: string;
}
export interface ChromelessThemeConfig {
    /**
     * Specifies which time format will be used in the timer control
     */
    timeFormat: TimeFormat;
    /**
     * Specifies the list of enabled floating controls
     */
    floatingControls: ChromelessThemeFloatingControl[];
    /**
     * Specifies the list of floating controls that are shown when the video is playing
     */
    alwaysOnFloatingControls: ChromelessThemeFloatingControl[];
}
export interface StampChroming extends BasePlayerChroming<PlayerChromingTheme.Stamp> {
    themeConfig?: Partial<StampThemeConfig>;
}
export interface AudioChroming extends BasePlayerChroming<PlayerChromingTheme.Audio> {
    themeConfig?: Partial<AudioThemeConfig>;
}
export interface OmakaseChroming extends BasePlayerChroming<PlayerChromingTheme.Omakase> {
    themeConfig?: Partial<OmakaseThemeConfig>;
}
export interface ChromelessChroming extends BasePlayerChroming<PlayerChromingTheme.Chromeless> {
    themeConfig?: Partial<ChromelessThemeConfig>;
}
export type PlayerChroming = DefaultChroming | StampChroming | CustomChroming | ChromelessChroming | AudioChroming | OmakaseChroming;
export declare const DEFAULT_PLAYER_CHROMING_CONFIG: DefaultThemeConfig;
export declare const DEFAULT_STAMP_PLAYER_CHROMING_CONFIG: StampThemeConfig;
export declare const DEFAULT_AUDIO_PLAYER_CHROMING_CONFIG: AudioThemeConfig;
export declare const DEFAULT_OMAKASE_PLAYER_CHROMING_CONFIG: OmakaseThemeConfig;
export declare const DEFAULT_CHROMELESS_PLAYER_CHROMING_CONFIG: ChromelessThemeConfig;
export declare const DEFAULT_PLAYER_CHROMING: DefaultChroming;
export {};
