import { ConfigurationChangeEvent, AudioConfiguration, ValmConfiguration, RecordingConfiguration, ScreenShareConfiguration, VideoConfiguration } from '../../types'; import { ConfigurationService } from '../configuration.service'; import { TranscriptionConfiguration } from '../../transcription/transcription.types'; export type ConfigurationChangeCallback = (event: ConfigurationChangeEvent) => void; export type ConfigurationUpdateCallback = (data: { oldConfig: ValmConfiguration; newConfig: ValmConfiguration; }) => void; export type ConfigurationResetCallback = (data: { oldConfig: ValmConfiguration; newConfig: ValmConfiguration; }) => void; export type ConfigurationImportCallback = (data: { oldConfig: ValmConfiguration; newConfig: ValmConfiguration; }) => void; export declare class ConfigurationController { private configService; private changeCallbacks; private updateCallbacks; private resetCallbacks; private importCallbacks; private videoChangeCallbacks; private audioChangeCallbacks; private screenShareChangeCallbacks; private recordingChangeCallbacks; private transcriptionChangeCallbacks; private unsubscribers; constructor(configService: ConfigurationService); private setupEventListeners; destroy: () => void; getConfig: () => ValmConfiguration; getVideoConfig: () => VideoConfiguration; getAudioConfig: () => AudioConfiguration; getScreenShareConfig: () => ScreenShareConfiguration; getRecordingConfig: () => RecordingConfiguration; getTranscriptionConfig: () => TranscriptionConfiguration; updateVideoConfig: (updates: Partial) => void; updateAudioConfig: (updates: Partial) => void; updateScreenShareConfig: (updates: Partial) => void; updateRecordingConfig: (updates: Partial) => void; updateTranscriptionConfig: (updates: Partial) => void; setVideoResolution: (width: number, height: number) => void; setVideoFrameRate: (frameRate: number) => void; setVideoDevice: (deviceId: string | null) => void; toggleVideoEnabled: () => boolean; setAudioDevice: (deviceId: string | null) => void; setAudioProcessing: (options: { echoCancellation?: boolean; noiseSuppression?: boolean; autoGainControl?: boolean; }) => void; toggleAudioEnabled: () => boolean; setTranscriptionLanguage: (language: string) => void; toggleTranscriptionEnabled: () => boolean; toggleTranscriptionAutoStart: () => boolean; setRecordingFormat: (format: "webm" | "mp4" | "mkv") => void; setRecordingQuality: (quality: "low" | "medium" | "high" | "custom") => void; setRecordingBitrates: (videoBitsPerSecond: number, audioBitsPerSecond: number) => void; setRecordingIncludes: (options: { includeVideo?: boolean; includeAudio?: boolean; includeScreenShare?: boolean; }) => void; setRecordingLimits: (maxDuration: number, maxFileSize: number) => void; toggleRecordingEnabled: () => boolean; resetVideoConfig: () => void; resetAudioConfig: () => void; resetRecordingConfig: () => void; resetTranscriptionConfig: () => void; resetAll: () => void; exportConfig: () => string; importConfig: (configJson: string) => void; onChange: (callback: ConfigurationChangeCallback) => VoidFunction; onUpdate: (callback: ConfigurationUpdateCallback) => VoidFunction; onReset: (callback: ConfigurationResetCallback) => VoidFunction; onImport: (callback: ConfigurationImportCallback) => VoidFunction; onVideoChange: (callback: ConfigurationChangeCallback) => VoidFunction; onAudioChange: (callback: ConfigurationChangeCallback) => VoidFunction; onScreenShareChange: (callback: ConfigurationChangeCallback) => VoidFunction; onRecordingChange: (callback: ConfigurationChangeCallback) => VoidFunction; onTranscriptionChange: (callback: ConfigurationChangeCallback) => VoidFunction; private _withUpdateNotify; private _withResetNotify; private _notifyUpdate; private _notifyChange; private _notifyVideoChange; private _notifyAudioChange; private _notifyScreenShareChange; private _notifyRecordingChange; private _notifyTranscriptionChange; private _notifyReset; private _notifyImport; }