import { ConfigurationController } from './configuration'; import { DiagnosticsService } from './diagnostics'; import { AudioOutputController, CameraController, DevicesController, MicrophoneController } from './media-stream'; import { ValmEvents } from './media-stream/manager-events.types'; import { PermissionsService } from './permissions'; import { IMediaPlugin } from './plugin.types'; import { RecordingController } from './recording'; import { ScreenShareController } from './screen-share'; import { TranscriptionController } from './transcription'; import { TypedEventEmitter } from './utils'; import { ValmConfig, ValmConfiguration, LocalMediaState } from './types'; import { EffectsController } from '../effects'; export interface ValmSnapshot { initializationState: 'idle' | 'initializing' | 'ready' | 'error'; error: any; isIOS: boolean; iosPermissionsGranted: boolean; } export declare class Valm extends TypedEventEmitter { private readonly configurationService; private readonly mediaStreamService; private readonly screenShareService; private readonly recordingService; private readonly transcriptionService; private readonly permissionsService; private readonly plugins; readonly configurationController: ConfigurationController; readonly cameraController: CameraController; readonly microphoneController: MicrophoneController; readonly screenShareController: ScreenShareController; readonly devicesController: DevicesController; readonly audioOutputController: AudioOutputController; readonly recordingController: RecordingController; readonly transcriptionController: TranscriptionController; readonly diagnostics: DiagnosticsService; private initializationState; private error; private iosPermissionsGranted; private readonly listeners; private snapshot; private unsubscribes; constructor(config?: ValmConfig); get effectsController(): EffectsController; use(plugin: T): this; getPlugin(name: string): T | undefined; hasPlugin(name: string): boolean; subscribe(listener: VoidFunction): VoidFunction; getSnapshot(): ValmSnapshot; initializeMedia(initConfig?: Partial): Promise; initialize(): Promise; updateConfiguration(updates: Partial): Promise; resetMedia(): Promise; get permissions(): PermissionsService; getConfiguration(): ValmConfiguration; getState(): LocalMediaState; destroy(): Promise; private setupEventListeners; private buildSnapshot; private notify; }