@class NSUUID, NSHashTable, CSAudioInjectionEngine, CSAudioInjectionDevice, NSString, NSMutableDictionary, CSAudioRecordContext, NSObject, NSMutableArray; @protocol OS_dispatch_queue; @interface CSAudioInjectionProvider : CSAudioRecorder <CSAudioInjectionEngineDelegate> @property (retain, nonatomic) NSHashTable *observers; @property (retain, nonatomic) NSObject<OS_dispatch_queue> *queue; @property (retain, nonatomic) NSUUID *uuid; @property (retain, nonatomic) NSMutableArray *connectedDevices; @property (retain, nonatomic) CSAudioInjectionDevice *builtInDevice; @property (retain, nonatomic) CSAudioInjectionDevice *bundleTvRemote; @property (retain, nonatomic) CSAudioInjectionEngine *builtInAudioInjectionEngine; @property (retain, nonatomic) NSMutableDictionary *audioInjectionEngines; @property (nonatomic) unsigned long long latestPluginStreamId; @property (nonatomic) unsigned long long activateStartTime; @property (nonatomic) unsigned long long activateEndTime; @property (nonatomic) unsigned long long deactivateStartTime; @property (nonatomic) unsigned long long deactivateEndTime; @property (retain, nonatomic) NSString *atvRemoteDeviceID; @property (retain, nonatomic) CSAudioRecordContext *audioRecordContext; @property (nonatomic) BOOL allowZeroInjection; @property (nonatomic) float didStartDelayInSeconds; @property (readonly) unsigned long long hash; @property (readonly) Class superclass; @property (readonly, copy) NSString *description; @property (readonly, copy) NSString *debugDescription; + (void)createSharedAudioSession; + (id)defaultInjectionProvider; - (void)setMeteringEnabled:(BOOL)a0; - (void)updateMeters; - (float)averagePowerForChannel:(unsigned long long)a0; - (float)peakPowerForChannel:(unsigned long long)a0; - (void)setDuckOthersOption:(BOOL)a0; - (unsigned long long)alertStartTime; - (BOOL)setAlertSoundFromURL:(id)a0 forType:(long long)a1 force:(BOOL)a2; - (id)init; - (void)dealloc; - (void)registerObserver:(id)a0; - (void)start; - (void)enableMiniDucking:(BOOL)a0; - (void)unregisterObserver:(id)a0; - (void)stop; - (id)metrics; - (void).cxx_destruct; - (BOOL)deactivateAudioSession:(unsigned long long)a0 error:(id *)a1; - (void)connectDevice:(id)a0; - (void)disconnectDevice:(id)a0; - (void)setContext:(id)a0 completion:(id /* block */)a1; - (BOOL)isNarrowBandWithStreamHandleId:(unsigned long long)a0; - (void)_connectPluginDevice:(id)a0; - (void)_createSpeechDetectionVADIfNeeded; - (void)_tearDownSpeechDetectionVADIfNeeded; - (BOOL)activateAudioSessionWithReason:(unsigned long long)a0 streamHandleId:(unsigned long long)a1 error:(id *)a2; - (id)audioDeviceInfoWithStreamHandleId:(unsigned long long)a0 recordDeviceIndicator:(id)a1; - (void)audioEngineAudioChunkForTvAvailable:(id)a0 audioChunk:(id)a1; - (void)audioEngineBufferAvailable:(id)a0 audioStreamHandleId:(unsigned long long)a1 buffer:(id)a2 remoteVAD:(id)a3 atTime:(unsigned long long)a4 isFileLoadedBuffer:(BOOL)a5; - (void)audioEngineDidStartRecord:(id)a0 audioStreamHandleId:(unsigned long long)a1 successfully:(BOOL)a2 error:(id)a3; - (void)audioEngineDidStopRecord:(id)a0 audioStreamHandleId:(unsigned long long)a1 reason:(unsigned long long)a2; - (void)configureAlertBehavior:(id)a0 audioStreamHandleId:(unsigned long long)a1; - (BOOL)deactivateAudioSession:(unsigned long long)a0 streamHandleId:(unsigned long long)a1 error:(id *)a2; - (BOOL)duckOthersOption; - (id)fetchGibraltarVoiceTriggerInfoWithRecordDeviceIndicator:(id)a0; - (id)getPlaybackRouteForStreamID:(unsigned long long)a0; - (BOOL)isRecordingWithRecordDeviceIndicator:(id)a0; - (BOOL)isSessionCurrentlyActivated; - (BOOL)playAlertSoundForType:(long long)a0 recordDevideIndicator:(id)a1; - (BOOL)playRecordStartingAlertAndResetEndpointerFromStream:(unsigned long long)a0 withAlertOverride:(long long)a1; - (BOOL)prepareAudioStreamRecord:(id)a0 recordDeviceIndicator:(id)a1 error:(id *)a2; - (BOOL)prewarmAudioSessionWithStreamHandleId:(unsigned long long)a0 error:(id *)a1; - (id)primaryInputDevice; - (id)recordDeviceInfoWithStreamHandleId:(unsigned long long)a0 recordDeviceIndicator:(id)a1; - (id)recordRouteWithRecordDeviceIndicator:(id)a0; - (id)recordSettingsWithStreamHandleId:(unsigned long long)a0; - (float)recordingSampleRateWithStreamHandleId:(unsigned long long)a0; - (void)setAudioSessionEventDelegate:(id)a0; - (BOOL)setCurrentContext:(id)a0 streamHandleId:(unsigned long long)a1 error:(id *)a2; - (BOOL)setRecordMode:(long long)a0 streamHandleId:(unsigned long long)a1 error:(id *)a2; - (BOOL)startAudioStreamWithOption:(id)a0 recordDeviceIndicator:(id)a1 error:(id *)a2; - (BOOL)stopAudioStreamWithRecordDeviceIndicator:(id)a0 error:(id *)a1; - (void)willDestroy; @end