@class NSMutableDictionary, CSPhoneCallStateMonitor, CSAudioCircularBuffer, NSObject, CSOSTransaction, CSAudioRecordDeviceIndicator, CSADPPreventStandbyAssertion, NSMutableArray, CSAudioRecorder, CSStateCapture, CSAudioTimeConverter, NSString, CSAudioRecordContext, NSHashTable, CSMicUsageReporter, CSAudioPreprocessor, NSUUID; @protocol CSAudioAlertProvidingDelegate, CSAudioSessionProvidingDelegate, OS_dispatch_group, OS_dispatch_source, OS_dispatch_queue, CSAudioProviderDelegate; @interface CSAudioProvider : NSObject @property (retain, nonatomic) NSObject *recordQueue; @property (retain, nonatomic) NSObject *loggingQueue; @property (retain, nonatomic) NSObject *streamHandleQueue; @property (retain, nonatomic) CSAudioRecorder *audioRecorder; @property (nonatomic) unsigned long long streamState; @property (retain, nonatomic) NSHashTable *startPendingStreams; @property (retain, nonatomic) NSHashTable *startPendingOnStoppingStreams; @property (retain, nonatomic) NSHashTable *alertPlaybackFinishWaitingStreams; @property (retain, nonatomic) NSHashTable *streams; @property (retain, nonatomic) NSHashTable *stopPendingStreams; @property (retain, nonatomic) NSMutableArray *pendingStartCompletions; @property (retain, nonatomic) NSMutableArray *alertPlaybackFinishWaitingCompletions; @property (retain, nonatomic) NSMutableArray *pendingStopCompletions; @property (retain, nonatomic) NSMutableDictionary *startPendingOnStoppingStreamToCompletionDict; @property (weak, nonatomic) id providerDelegate; @property (weak, nonatomic) id sessionDelegate; @property (retain, nonatomic) NSMutableArray *streamHolders; @property (retain, nonatomic) NSHashTable *historicalBufferRequestStreams; @property (retain, nonatomic) CSAudioCircularBuffer *circularBuffer; @property (weak, nonatomic) id alertDelegate; @property (retain, nonatomic) CSAudioRecordContext *lastAudioRecorderContext; @property (nonatomic) BOOL audioSystemRecovering; @property (retain, nonatomic) CSAudioPreprocessor *audioPreprocessor; @property (retain, nonatomic) CSOSTransaction *recordingTransaction; @property (retain, nonatomic) NSObject *recordingWillStartGroup; @property (nonatomic) BOOL waitingForAlertFinish; @property (nonatomic) unsigned long long audioStreamHandleId; @property (retain, nonatomic) NSUUID *alertPlaybackFinishTimeoutToken; @property (retain, nonatomic) NSUUID *startRecordingWatchDogToken; @property (retain, nonatomic) NSUUID *stopRecordingWatchDogToken; @property (retain, nonatomic) NSObject *audioPacketWatchdog; @property (nonatomic) unsigned long long circularBufferStartHostTime; @property (nonatomic) unsigned long long circularBufferStartSampleCount; @property (retain, nonatomic) CSAudioTimeConverter *audioTimeConverter; @property (nonatomic) unsigned long long estimatedStartHostTime; @property (nonatomic) long long audioStreamType; @property (retain, nonatomic) CSAudioRecordDeviceIndicator *recordDeviceIndicator; @property (retain, nonatomic) CSMicUsageReporter *micUsageReporter; @property (nonatomic) unsigned long long audioPacketDeliveryCount; @property (retain, nonatomic) CSADPPreventStandbyAssertion *adpAssertion; @property (retain, nonatomic) CSPhoneCallStateMonitor *phoneCallStateMonitor; @property (nonatomic) unsigned long long phoneCallState; @property (nonatomic) BOOL currentSessionShouldDuckOnBuiltInSpeaker; @property (retain, nonatomic) NSMutableDictionary *recordModeLocks; @property (retain, nonatomic) NSMutableDictionary *listeningMicIndicatorLocks; @property (retain, nonatomic) CSStateCapture *stateCapture; @property (readonly, nonatomic) NSString *UUID; @property (readonly) unsigned long long hash; @property (readonly) Class superclass; @property (readonly, copy) NSString *description; @property (readonly, copy) NSString *debugDescription; - (BOOL)playRecordStartingAlertAndResetEndpointerWithAlertOverride:(long long)a0; - (void)setMeteringEnabled:(BOOL)a0; - (void)updateMeters; - (void)CSAudioServerCrashMonitorDidReceiveServerRestart:(id)a0; - (id)audioDeviceInfo; - (id)recordSettings; - (id)playbackRoute; - (float)averagePowerForChannel:(unsigned long long)a0; - (float)peakPowerForChannel:(unsigned long long)a0; - (id)recordDeviceInfo; - (void)setDuckOthersOption:(BOOL)a0; - (BOOL)playAlertSoundForType:(long long)a0; - (BOOL)isNarrowBand; - (unsigned long long)alertStartTime; - (BOOL)isRecording; - (void)setAnnounceCallsEnabled:(BOOL)a0 withStreamHandleID:(unsigned long long)a1; - (BOOL)setAlertSoundFromURL:(id)a0 forType:(long long)a1 force:(BOOL)a2; - (unsigned long long)audioStreamId; - (BOOL)activateAudioSessionWithReason:(unsigned long long)a0 dynamicAttribute:(unsigned long long)a1 bundleID:(id)a2 error:(id *)a3; - (BOOL)prewarmAudioSessionWithError:(id *)a0; - (void)dealloc; - (BOOL)supportsDuckingOnCurrentRouteWithError:(id *)a0; - (void)start; - (id)recordRoute; - (void)enableMiniDucking:(BOOL)a0; - (void)triggerInfoForContext:(id)a0 completion:(id /* block */)a1; - (id)holdAudioStreamWithDescription:(id)a0 option:(id)a1; - (void)audioRecorderBufferAvailable:(id)a0 audioStreamHandleId:(unsigned long long)a1 buffer:(id)a2; - (id)audioChunkToEndFrom:(unsigned long long)a0 channelIdx:(unsigned long long)a1; - (void)saveRecordingBufferToEndFrom:(unsigned long long)a0 toURL:(id)a1; - (id)audioChunkToEndFrom:(unsigned long long)a0; - (void)setAudioAlertDelegate:(id)a0; - (void)stopAudioStream:(id)a0 option:(id)a1 completion:(id /* block */)a2; - (id)audioStreamWithRequest:(id)a0 streamName:(id)a1 error:(id *)a2; - (BOOL)_activateAudioSessionWithReason:(unsigned long long)a0 error:(id *)a1; - (void)CSAudioServerCrashMonitorDidReceiveServerCrash:(id)a0; - (void)audioStreamWithRequest:(id)a0 streamName:(id)a1 completion:(id /* block */)a2; - (id)audioChunkFrom:(unsigned long long)a0 to:(unsigned long long)a1 channelIdx:(unsigned long long)a2; - (void)startAudioStream:(id)a0 option:(id)a1 completion:(id /* block */)a2; - (void)prepareAudioStream:(id)a0 request:(id)a1 completion:(id /* block */)a2; - (void)configureAlertBehavior:(id)a0; - (void).cxx_destruct; - (BOOL)setCurrentContext:(id)a0 error:(id *)a1; - (void)audioRecorderWillBeDestroyed:(id)a0; - (void)enableSmartRoutingConsideration:(BOOL)a0; - (void)CSPhoneCallStateMonitor:(id)a0 didRecievePhoneCallStateChange:(unsigned long long)a1; - (id)audioChunkFrom:(unsigned long long)a0 to:(unsigned long long)a1; - (void)attachTandemStream:(id)a0 toPrimaryStream:(id)a1 completion:(id /* block */)a2; - (id)audioMetric; - (void)cancelAudioStreamHold:(id)a0; - (void)setAudioSessionDelegate:(id)a0; - (void)audioRecorderBufferAvailable:(id)a0 audioStreamHandleId:(unsigned long long)a1 buffer:(id)a2 remoteVAD:(id)a3 atTime:(unsigned long long)a4 arrivalTimestampToAudioRecorder:(unsigned long long)a5 numberOfChannels:(int)a6; - (BOOL)prepareAudioStreamSync:(id)a0 request:(id)a1 error:(id *)a2; - (void)saveRecordingBufferFrom:(unsigned long long)a0 to:(unsigned long long)a1 toURL:(id)a2; - (BOOL)deactivateAudioSession:(unsigned long long)a0 error:(id *)a1; - (void)_forceReleaseAllRecordModeLocks; - (id)_acquireListeningMicIndicatorLockFrom:(unsigned long long)a0; - (id)_acquireRecordModeLockFrom:(unsigned long long)a0; - (id)_audioChunkFrom:(unsigned long long)a0 to:(unsigned long long)a1; - (id)_audioChunkFrom:(unsigned long long)a0 to:(unsigned long long)a1 channelIdx:(unsigned long long)a2; - (id)_audioStreamWithRequest:(id)a0 streamName:(id)a1 error:(id *)a2; - (BOOL)_canSetContext; - (void)_cancelAudioPacketWatchDog; - (void)_cancelAudioStreamHold:(id)a0; - (void)_clearDidStartRecordingDelegateWatchDog; - (void)_clearDidStopRecordingDelegateWatchDog; - (BOOL)_clearListeningMicIndicatorProperty; - (void)_clearListeningMicIndicatorPropertyIfNeeded; - (void)_createCircularBufferIfNeededWithNumChannel:(unsigned long long)a0 playbackRoute:(id)a1; - (BOOL)_deactivateAudioSession:(unsigned long long)a0 error:(id *)a1; - (void)_deliverHistoricalAudioToStreamsWithRemoteVAD:(id)a0; - (void)_deliverPostprocessAudioChunk:(id)a0 toStream:(id)a1 lastForwardedSampleCount:(unsigned long long)a2; - (void)_didFireStreamHolderTimeout:(id)a0; - (BOOL)_didPlayStartAlertSoundForSiri:(id)a0 audioStream:(id)a1; - (void)_didReceiveFinishStartAlertPlaybackAt:(unsigned long long)a0; - (void)_fetchHistoricalAudioAndForwardToStream:(id)a0 remoteVAD:(id)a1; - (void)_forceReleaseAllListeningMicIndicatorLocks; - (void)_forceReleaseListeningMicIndicatorLockFrom:(unsigned long long)a0; - (void)_forceReleaseRecordModeLockFrom:(unsigned long long)a0; - (void)_forwardAudioChunk:(id)a0 toStream:(id)a1; - (void)_forwardAudioChunkForTV:(id)a0 toStream:(id)a1; - (void)_handleAudioRecorderStreamHandleIdInvalidated:(unsigned long long)a0; - (void)_handleAudioSystemFailure; - (void)_handleDidStartAudioStreamWithResult:(BOOL)a0 error:(id)a1; - (void)_handleDidStopAudioStreamWithReason:(long long)a0; - (void)_holdAudioStreamWithHolder:(id)a0 option:(id)a1; - (void)_holdRecordingExceptionIfNeeded:(BOOL)a0; - (void)_holdRecordingTransactionIfNeeded; - (BOOL)_isDuckingOnSpeakerOutputSupportedWithCurrentRoute; - (void)_onAudioPacketWatchdogFire; - (void)_postEpilogueAudioStream; - (void)_preEpilogueAudioStream; - (void)_prepareAudioStream:(id)a0 request:(id)a1 completion:(id /* block */)a2; - (BOOL)_prepareAudioStreamSync:(id)a0 request:(id)a1 error:(id *)a2; - (void)_processAudioBuffer:(id)a0 remoteVAD:(id)a1 atTime:(unsigned long long)a2 arrivalTimestampToAudioRecorder:(unsigned long long)a3 numberOfChannels:(int)a4; - (void)_releaseListeningMicIndicatorLock:(id)a0; - (void)_releaseRecordModeLock:(id)a0; - (void)_releaseRecordingTransactionIfNeeded; - (void)_resetCircularBufferStartTime; - (void)_saveRecordingBufferFrom:(unsigned long long)a0 to:(unsigned long long)a1 toURL:(id)a2; - (void)_schduleDidStartRecordingDelegateWatchDogWithToken:(id)a0; - (void)_scheduleAlertFinishTimeout:(double)a0; - (void)_scheduleAudioPacketWatchDog; - (void)_scheduleDidStartRecordingDelegateWatchDog; - (void)_scheduleDidStopRecordingDelegateWatchDog; - (void)_scheduleDidStopRecordingDelegateWatchDog:(id)a0; - (void)_setLatestRecordContext:(id)a0; - (BOOL)_setListeningMicIndicatorProperty; - (void)_setListeningMicIndicatorPropertyIfNeeded; - (BOOL)_shouldDuckOnBuiltInSpeaker; - (BOOL)_shouldHandleStartPendingOnStopping:(unsigned long long)a0 withStopReason:(long long)a1; - (BOOL)_shouldStopRecording; - (void)_startAudioStream:(id)a0 option:(id)a1 completion:(id /* block */)a2; - (void)_stopAudioStream:(id)a0 option:(id)a1 completion:(id /* block */)a2; - (id)_streamStateName:(unsigned long long)a0; - (void)_switchToListeningMode; - (void)_switchToRecordingMode; - (void)_updateRemoteDeviceIdFromAVVCIfNeeded; - (void)audioPreprocessor:(id)a0 hasAvailableBuffer:(id)a1 atTime:(unsigned long long)a2 arrivalTimestampToAudioRecorder:(unsigned long long)a3 numberOfChannels:(int)a4; - (void)audioRecorder:(id)a0 didSetAudioSessionActive:(BOOL)a1; - (void)audioRecorder:(id)a0 willSetAudioSessionActive:(BOOL)a1; - (void)audioRecorderBeginRecordInterruption:(id)a0; - (void)audioRecorderBeginRecordInterruption:(id)a0 withContext:(id)a1; - (void)audioRecorderBuiltInAudioStreamInvalidated:(id)a0 error:(id)a1; - (void)audioRecorderDidFinishAlertPlayback:(id)a0 ofType:(long long)a1 error:(id)a2; - (void)audioRecorderDidStartRecord:(id)a0 audioStreamHandleId:(unsigned long long)a1 successfully:(BOOL)a2 error:(id)a3; - (void)audioRecorderDidStopRecord:(id)a0 audioStreamHandleId:(unsigned long long)a1 reason:(long long)a2; - (void)audioRecorderDisconnected:(id)a0; - (void)audioRecorderEndRecordInterruption:(id)a0; - (void)audioRecorderRecordHardwareConfigurationDidChange:(id)a0 toConfiguration:(long long)a1; - (void)audioRecorderStreamHandleIdInvalidated:(unsigned long long)a0; - (float)circularBufferInputRecordingDuration; - (int)circularBufferNumInputChannel; - (id)initWithAudioStreamHandleId:(unsigned long long)a0 audioStreamType:(long long)a1 audioRecordContext:(id)a2 audioRecorder:(id)a3; - (id)initWithAudioStreamHandleId:(unsigned long long)a0 audioStreamType:(long long)a1 audioRecordContext:(id)a2 audioRecorder:(id)a3 phoneCallStateMonitor:(id)a4; - (void)notifyProviderContextChanged; - (void)setAudioProviderDelegate:(id)a0; - (void)setLatestRecordContext:(id)a0 streamType:(long long)a1; @end