import { DoCheck, OnChanges, OnInit, SimpleChanges, TemplateRef } from '@angular/core';
import { SwitchAudio, SwitchAudioOptions } from '../../methods/stream-methods/switch-audio.service';
import { SwitchVideo, SwitchVideoOptions } from '../../methods/stream-methods/switch-video.service';
import { SwitchVideoAlt, SwitchVideoAltOptions } from '../../methods/stream-methods/switch-video-alt.service';
import type { MediaSettingsModalParameters } from '../../components/media-settings-components/media-settings-modal/media-settings-modal.component';
import { ModernRenderMode } from '../utils/render-mode.utils';
import * as i0 from "@angular/core";
export declare class ModernMediaSettingsModalComponent implements OnInit, OnChanges, DoCheck {
    private readonly switchAudioService;
    private readonly switchVideoService;
    private readonly switchVideoAltService;
    isMediaSettingsModalVisible: boolean;
    onMediaSettingsClose: () => void;
    switchCameraOnPress?: (options: SwitchVideoAltOptions) => Promise<void>;
    switchVideoOnPress?: (options: SwitchVideoOptions) => Promise<void>;
    switchAudioOnPress?: (options: SwitchAudioOptions) => Promise<void>;
    parameters: MediaSettingsModalParameters;
    position: string;
    backgroundColor: string;
    overlayStyle?: Partial<CSSStyleDeclaration>;
    contentStyle?: Partial<CSSStyleDeclaration>;
    customTemplate?: TemplateRef<unknown>;
    renderMode: ModernRenderMode;
    showHeader: boolean;
    onOpenBackgroundSidebar?: () => void;
    readonly faCamera: import("@fortawesome/fontawesome-common-types").IconDefinition;
    readonly faCheck: import("@fortawesome/fontawesome-common-types").IconDefinition;
    readonly faMicrophone: import("@fortawesome/fontawesome-common-types").IconDefinition;
    readonly faPhotoFilm: import("@fortawesome/fontawesome-common-types").IconDefinition;
    readonly faSyncAlt: import("@fortawesome/fontawesome-common-types").IconDefinition;
    readonly faTimes: import("@fortawesome/fontawesome-common-types").IconDefinition;
    readonly faVideo: import("@fortawesome/fontawesome-common-types").IconDefinition;
    activeSection: 'video' | 'audio';
    liveParameters: MediaSettingsModalParameters;
    selectedVideoInput: string;
    selectedAudioInput: string;
    prevSelectedVideoInput: string;
    prevSelectedAudioInput: string;
    private lastResolvedSignature;
    constructor(switchAudioService: SwitchAudio, switchVideoService: SwitchVideo, switchVideoAltService: SwitchVideoAlt);
    ngOnInit(): void;
    ngOnChanges(_changes: SimpleChanges): void;
    ngDoCheck(): void;
    isVisible(): boolean;
    isEmbedded(): boolean;
    handleOverlayClick(): void;
    handleSwitchCamera(): Promise<void>;
    handleVideoSwitch(eventOrDeviceId: Event | string): Promise<void>;
    handleAudioSwitch(eventOrDeviceId: Event | string): Promise<void>;
    handleModalClose(): void;
    showVirtual(): void;
    showCameraHint(): boolean;
    getDeviceLabel(device: MediaDeviceInfo, fallback: string, index: number): string;
    getSectionDescription(section: 'video' | 'audio'): string;
    resolvedOverlayStyle(): Record<string, string | number>;
    resolvedContentStyle(): Record<string, string | number>;
    private setupDefaultServices;
    private refreshState;
    private syncLiveParameters;
    private ensureDefaultSelections;
    private resolveParameters;
    private createParameterSignature;
    private resolveSelectedDevice;
    private resolvedCameraHandler;
    private resolvedVideoHandler;
    private resolvedAudioHandler;
    private extractDeviceId;
    private resolvePositionStyle;
    private normalizeStyle;
    static ɵfac: i0.ɵɵFactoryDeclaration<ModernMediaSettingsModalComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<ModernMediaSettingsModalComponent, "app-media-settings-modal", never, { "isMediaSettingsModalVisible": { "alias": "isMediaSettingsModalVisible"; "required": false; }; "onMediaSettingsClose": { "alias": "onMediaSettingsClose"; "required": false; }; "switchCameraOnPress": { "alias": "switchCameraOnPress"; "required": false; }; "switchVideoOnPress": { "alias": "switchVideoOnPress"; "required": false; }; "switchAudioOnPress": { "alias": "switchAudioOnPress"; "required": false; }; "parameters": { "alias": "parameters"; "required": false; }; "position": { "alias": "position"; "required": false; }; "backgroundColor": { "alias": "backgroundColor"; "required": false; }; "overlayStyle": { "alias": "overlayStyle"; "required": false; }; "contentStyle": { "alias": "contentStyle"; "required": false; }; "customTemplate": { "alias": "customTemplate"; "required": false; }; "renderMode": { "alias": "renderMode"; "required": false; }; "showHeader": { "alias": "showHeader"; "required": false; }; "onOpenBackgroundSidebar": { "alias": "onOpenBackgroundSidebar"; "required": false; }; }, {}, never, never, true, never>;
}
