/**
 * THIS IS GENERATED CODE!
 * PLEASE DO NOT MODIFY - ALL YOUR WORK WOULD BE LOST!
 */
export declare const typescriptDeclarationFixConstant = 1;
import { UiEvent } from "./UiEvent";
import { TeamAppsEvent } from "../modules/util/TeamAppsEvent";
import { UiComponentConfig } from "./UiComponentConfig";
import { UiWaitingVideoInfoConfig } from "./UiWaitingVideoInfoConfig";
import { UiAudioInputDeviceInfoConfig } from "./UiAudioInputDeviceInfoConfig";
import { UiVideoInputDeviceInfoConfig } from "./UiVideoInputDeviceInfoConfig";
import { UiPageDisplayMode } from "./UiPageDisplayMode";
import { UiComponentCommandHandler } from "./UiComponentConfig";
export interface UiLiveStreamComponentConfig extends UiComponentConfig {
    _type?: string;
    backgroundImage?: string;
    backgroundImageDisplayMode?: UiPageDisplayMode;
    volume?: number;
}
export interface UiLiveStreamComponentCommandHandler extends UiComponentCommandHandler {
    showWaitingVideos(videoInfos: UiWaitingVideoInfoConfig[], offsetSeconds: number, stopLiveStream: boolean): void;
    stopWaitingVideos(): void;
    startHttpLiveStream(url: string): void;
    startLiveStreamComLiveStream(url: string): void;
    startYouTubeLiveStream(url: string): void;
    startCustomEmbeddedLiveStreamPlayer(playerEmbedHtml: string, embedContainerId: string): void;
    stopLiveStream(): void;
    displayImageOverlay(imageUrl: string, displayMode: UiPageDisplayMode, useVideoAreaAsFrame: boolean): void;
    removeImageOverlay(): void;
    displayInfoTextOverlay(text: string): void;
    removeInfoTextOverlay(): void;
    setVolume(volume: number): void;
}
export interface UiLiveStreamComponentEventSource {
    onResultOfRequestInputDeviceAccess: TeamAppsEvent<UiLiveStreamComponent_ResultOfRequestInputDeviceAccessEvent>;
    onResultOfRequestInputDeviceInfo: TeamAppsEvent<UiLiveStreamComponent_ResultOfRequestInputDeviceInfoEvent>;
}
export interface UiLiveStreamComponent_ResultOfRequestInputDeviceAccessEvent extends UiEvent {
    microphoneAccessGranted: boolean;
    cameraAccessGranted: boolean;
}
export interface UiLiveStreamComponent_ResultOfRequestInputDeviceInfoEvent extends UiEvent {
    audioInputDeviceInfo: UiAudioInputDeviceInfoConfig;
    videoInputDeviceInfo: UiVideoInputDeviceInfoConfig;
}
