@class AVAudioSession, NSString, NSArray, AXDispatchTimer, TTSSpeechAction, NSLock, NSMutableArray, TTSSpeechSynthesizer, TTSSpeechThread, NSNumber, NSObject; @protocol OS_dispatch_queue; @interface TTSSpeechManager : NSObject <TTSSpeechSynthesizerDelegate> { NSMutableArray *_speechQueue; TTSSpeechSynthesizer *_synthesizer; TTSSpeechThread *_runThread; NSObject<OS_dispatch_queue> *_propertyQueue; BOOL _isSpeaking; BOOL _audioSessionObserversEnabled; BOOL _speechThreadFinished; NSLock *_speechThreadQueueLock; } @property (retain, nonatomic) NSNumber *originalSpeechRateForJobOverride; @property (nonatomic) BOOL isPaused; @property (retain, nonatomic) AXDispatchTimer *audioDeactivatorTimer; @property (nonatomic) BOOL wasSpeakingBeforeAudioInterruption; @property (nonatomic) BOOL didRequestStartSpeakingDuringAudioInterruption; @property (nonatomic) BOOL didRequestPauseSpeakingDuringAudioInterruption; @property (nonatomic) BOOL didRequestResumeSpeakingDuringAudioInterruption; @property (nonatomic) double audioInterruptionStartedTime; @property (retain, nonatomic) AVAudioSession *audioSession; @property (nonatomic) BOOL isInAudioInterruption; @property (retain, nonatomic) TTSSpeechAction *requestedActionDuringAudioInterruption; @property (nonatomic) BOOL shouldHandleAudioInterruptions; @property (nonatomic) BOOL speechEnabled; @property (retain, nonatomic) NSString *speechSource; @property (readonly, nonatomic) BOOL showControlCenterControls; @property (readonly, nonatomic) BOOL isSpeaking; @property (nonatomic) unsigned int audioQueueFlags; @property (nonatomic) BOOL usesAuxiliarySession; @property (nonatomic) unsigned long long setActiveOptions; @property (retain, nonatomic) NSString *audioSessionCategory; @property (nonatomic) unsigned long long audioSessionCategoryOptions; @property (retain, nonatomic) NSArray *outputChannels; @property (nonatomic) double audioSessionInactiveTimeout; @property (copy, nonatomic) id /* block */ requestWillStart; @property (nonatomic) BOOL supportsAccurateWordCallbacks; @property (nonatomic) BOOL skipLuthorRules; @property (readonly) unsigned long long hash; @property (readonly) Class superclass; @property (readonly, copy) NSString *description; @property (readonly, copy) NSString *debugDescription; + (id)availableLanguageCodes; + (id)audioFileSettingsForVoice:(id)a0; + (id)currentLanguageCode; + (id)availableVoices; + (id)languageCodeForVoiceIdentifier:(id)a0; + (BOOL)_isCharacterNativelySpeakable:(unsigned short)a0 languageCode:(id)a1; + (id)_resetAvailableVoices; + (id)_resetAvailableVoices:(BOOL)a0; + (id)avSpeechVoicesForTTSSpeechVoices:(id)a0; + (id)availableSuperCompactVoices; + (id)availableVoices:(BOOL)a0; + (struct URegularExpression { } *)createRegularExpressionFromString:(id)a0; + (BOOL)currentProcessAllowedToSaveVoiceInfo; + (id)literalStringMarkup:(id)a0 string:(id)a1 speakCap:(BOOL)a2; + (id)matchedRangesForString:(id)a0 withRegularExpression:(struct URegularExpression { } *)a1; + (id)pauseMarkupString:(id)a0; + (id)remapLanguageCode:(id)a0; + (id)spellOutLetterCaseMarkupString:(id)a0 string:(id)a1; + (id)spellOutMarkupString:(id)a0 string:(id)a1; + (void)test_actionStartTap:(id /* block */)a0; + (void)test_setAvailableVoices:(id)a0; + (void)test_setUnitTestMode:(BOOL)a0; - (id)init; - (void)_tearDown; - (void)dealloc; - (void)tearDown; - (void)pauseSpeaking:(long long)a0; - (BOOL)isSpeaking; - (void)observeValueForKeyPath:(id)a0 ofObject:(id)a1 change:(id)a2 context:(void *)a3; - (void).cxx_destruct; - (void)_initialize; - (void)continueSpeaking; - (void)stopSpeaking:(long long)a0; - (void)speechSynthesizer:(id)a0 didContinueSpeakingRequest:(id)a1; - (void)speechSynthesizer:(id)a0 didPauseSpeakingRequest:(id)a1; - (void)speechSynthesizer:(id)a0 didStartSpeakingRequest:(id)a1; - (void)stopSpeaking; - (void)_didBeginInterruption; - (void)_pauseSpeaking:(id)a0; - (id)_phonemeSubstitutionsForAction:(id)a0; - (id)voiceIdentifierUsedForLanguage:(id)a0; - (void)__speechJobFinished:(id)a0; - (void)_clearSpeechQueue; - (void)_continueSpeaking; - (void)_didEndInterruption; - (void)_dispatchSpeechAction:(id)a0; - (BOOL)_enqueueSelectorOnSpeechThread:(SEL)a0 object:(id)a1 waitUntilDone:(BOOL)a2; - (void)_handleAudioInterruption:(id)a0; - (void)_handleMediaServicesWereLost:(id)a0; - (void)_handleMediaServicesWereReset:(id)a0; - (void)_isSpeaking:(id)a0; - (void)_processAudioBufferCallback:(id)a0; - (void)_processDidContinueCallback:(id)a0; - (void)_processDidEncounterMarker:(id)a0; - (void)_processDidPauseCallback:(id)a0; - (void)_processDidStartCallback:(id)a0; - (void)_processWillSpeechRange:(id)a0; - (void)_resetInterruptionTracking; - (void)_speechJobFinished:(BOOL)a0 action:(id)a1; - (void)_startNextSpeechJob; - (void)_stopSpeaking:(id)a0; - (void)_updateAudioSessionProperties; - (void)_updateAuxiliarySession; - (void)_updateUserSubstitutions; - (void)clearSpeechQueue; - (void)dispatchSpeechAction:(id)a0; - (id)externalVoiceIdentifierUsedForLanguage:(id)a0; - (void)handleAudioSessionObservers:(BOOL)a0; - (void)speechSynthesizer:(id)a0 didEncounterMarker:(id)a1 forRequest:(id)a2; - (void)speechSynthesizer:(id)a0 didFinishSpeakingRequest:(id)a1 successfully:(BOOL)a2 withError:(id)a3; @end