@class NSString, AVHapticPlayer, CHMetrics, AVAudioSession, HapticServerConfig, NSObject, NSArray; @protocol OS_dispatch_source, OS_dispatch_queue; @interface CHHapticEngine : NSObject { NSObject<OS_dispatch_queue> *_dispatchQueue; struct map<unsigned long, std::pair<NSURL *, NSDictionary *>, std::less<unsigned long>, std::allocator<std::pair<const unsigned long, std::pair<NSURL *, NSDictionary *>>>> { struct __tree<std::__value_type<unsigned long, std::pair<NSURL *, NSDictionary *>>, std::__map_value_compare<unsigned long, std::__value_type<unsigned long, std::pair<NSURL *, NSDictionary *>>, std::less<unsigned long>>, std::allocator<std::__value_type<unsigned long, std::pair<NSURL *, NSDictionary *>>>> { void *__begin_node_; struct __compressed_pair<std::__tree_end_node<std::__tree_node_base<void *> *>, std::allocator<std::__tree_node<std::__value_type<unsigned long, std::pair<NSURL *, NSDictionary *>>, void *>>> { struct __tree_end_node<std::__tree_node_base<void *> *> { void *__left_; } __value_; } __pair1_; struct __compressed_pair<unsigned long, std::__map_value_compare<unsigned long, std::__value_type<unsigned long, std::pair<NSURL *, NSDictionary *>>, std::less<unsigned long>>> { unsigned long long __value_; } __pair3_; } __tree_; } _publicAudioResources; AVHapticPlayer *_player; BOOL _autoShutdownEnabled; BOOL _running; double _runTimeout; CHMetrics *_metrics; } @property (readonly) AVHapticPlayer *player; @property BOOL running; @property (readonly) CHMetrics *metrics; @property (nonatomic) BOOL activateAudioSessionOnStart; @property (readonly) AVAudioSession *avAudioSession; @property (readonly) unsigned int audioSessionID; @property (readonly) BOOL sessionIsShared; @property (copy) id /* block */ clientFinishedHandler; @property (retain) NSObject<OS_dispatch_source> *timer; @property unsigned long long currentPlayerBehavior; @property (readonly) BOOL needsAudioPowerBudget; @property (readonly) HapticServerConfig *serverConfig; @property (nonatomic) BOOL muteHapticsWhileRecordingAudio; @property (nonatomic) BOOL followAudioRoute; @property (nonatomic) BOOL highPriority; @property (readonly) NSArray *availableLocalities; @property (readonly) NSString *locality; @property (readonly) NSString *priority; @property (readonly) NSString *hapticPowerUsage; @property (readonly) NSString *audioPowerUsage; @property (readonly) NSString *usageCategory; @property double autoShutdownTimeout; @property (readonly) double currentTime; @property (copy) id /* block */ stoppedHandler; @property (copy) id /* block */ resetHandler; @property (nonatomic) BOOL playsHapticsOnly; @property (nonatomic) BOOL playsAudioOnly; @property (nonatomic) BOOL isMutedForAudio; @property (nonatomic) BOOL isMutedForHaptics; @property (nonatomic, getter=isAutoShutdownEnabled) BOOL autoShutdownEnabled; + (unsigned long long)doRegisterAudioResource:(id)a0 options:(id)a1 fromPattern:(BOOL)a2 player:(id)a3 error:(id *)a4; + (void)lazyInitResourceMap; + (id)capabilitiesForHardware; + (void)initialize; + (void)dispatchOnGlobal:(id /* block */)a0; + (BOOL)resourceIsRegistered:(unsigned long long)a0; + (BOOL)supportsHapticServer; + (BOOL)doUnregisterAudioResource:(unsigned long long)a0 fromPattern:(BOOL)a1 player:(id)a2 error:(id *)a3; + (void)clearResourceMap; + (BOOL)supports1stPartyHaptics; - (id)init; - (void)dealloc; - (BOOL)startAndReturnError:(id *)a0; - (id).cxx_construct; - (void)startWithCompletionHandler:(id /* block */)a0; - (BOOL)resourceIsRegistered:(unsigned long long)a0; - (void)stopWithCompletionHandler:(id /* block */)a0; - (void)stopPrewarm; - (void).cxx_destruct; - (void)stopAndWait; - (id)createPlayerWithPattern:(id)a0 error:(id *)a1; - (id)createPrivilegedPlayerWithPlayable:(id)a0 error:(id *)a1; - (id)initWithAudioSession:(id)a0 sessionIsShared:(BOOL)a1 options:(id)a2 error:(id *)a3; - (void)notifyWhenPlayersFinished:(id /* block */)a0; - (void)prewarmWithCompletionHandler:(id /* block */)a0; - (unsigned long long)registerAudioResource:(id)a0 options:(id)a1 error:(id *)a2; - (id)createAdvancedPlayerWithRingtoneData:(id)a0 error:(id *)a1; - (id)createAdvancedPlayerWithRingtonePattern:(id)a0 error:(id *)a1; - (id)initWithAudioSessionID:(unsigned int)a0 options:(id)a1 error:(id *)a2; - (id)initWithAudioSessionID:(unsigned int)a0 error:(id *)a1; - (void)handleMediaServerDeath:(id)a0; - (void)handleConnectionError; - (id)createAdvancedPlayerWithPattern:(id)a0 error:(id *)a1; - (id)createAdvancedPlayerWithVibePatternDictionary:(id)a0 error:(id *)a1; - (double)getDurationForResource:(unsigned long long)a0; - (BOOL)unregisterAudioResource:(unsigned long long)a0 error:(id *)a1; - (id)initWithOptions:(id)a0 error:(id *)a1; - (id)initAndReturnError:(id *)a0; - (id)initWithAudioSession:(id)a0 sessionIsShared:(BOOL)a1 error:(id *)a2; - (void)releaseChannel:(id)a0; - (void)cancelIdleTimer; - (unsigned int)getSessionIDFromAVAudioSession:(id)a0; - (void)addPublicAudioResourceID:(unsigned long long)a0 withURL:(id)a1 options:(id)a2; - (void)beginIdleTimer; - (BOOL)checkEngineRunning:(id *)a0; - (BOOL)checkEngineStateOnStart:(id *)a0; - (void)connectAudioSession:(id)a0; - (id)createHapticPlayerWithOptions:(id)a0; - (id)createOptionsFromAudioSessionID:(unsigned int)a0 shared:(BOOL)a1; - (void)disconnectAudioSession:(id)a0; - (void)dispatchOnLocal:(id /* block */)a0; - (void)dispatchSyncOnLocal:(id /* block */)a0; - (struct __map_iterator<std::__tree_iterator<std::__value_type<unsigned long, std::pair<NSURL *, NSDictionary *>>, std::__tree_node<std::__value_type<unsigned long, std::pair<NSURL *, NSDictionary *>>, void *> *, long>> { struct __tree_iterator<std::__value_type<unsigned long, std::pair<NSURL *, NSDictionary *>>, std::__tree_node<std::__value_type<unsigned long, std::pair<NSURL *, NSDictionary *>>, void *> *, long> { void *x0; } x0; })doFindPublicAudioResourceID:(unsigned long long)a0; - (BOOL)doInit:(unsigned int)a0 sessionIsShared:(BOOL)a1 options:(id)a2 error:(id *)a3; - (BOOL)doInitWithOptions:(id)a0 error:(id *)a1; - (BOOL)doPlayPattern:(id)a0 error:(id *)a1; - (BOOL)doReferenceAudioResourceByID:(unsigned long long)a0; - (BOOL)doStartEngineAndWait:(id *)a0; - (void)doStartWithCompletionHandler:(id /* block */)a0; - (BOOL)doStopEngineAndWait:(id *)a0; - (void)doStopWithCompletionHandler:(id /* block */)a0; - (void)doUnregisterAllPublicAudioResources; - (BOOL)finishInit:(id *)a0; - (id)getAvailableChannel:(id *)a0; - (id)getMetricsForPlayer:(id)a0; - (long long)getReporterIDFromAVAudioSession:(id)a0; - (id)getUsageCategory:(id)a0; - (void)handleFinish:(id)a0; - (void)handleMediaServerRecovery:(id)a0; - (BOOL)hasPublicAudioResourceID:(unsigned long long)a0; - (unsigned long long)idForPublicAudioResourceURL:(id)a0 withOptions:(id)a1; - (id)initWithAudioSession:(id)a0 error:(id *)a1; - (BOOL)isBehaviorSet:(unsigned long long)a0; - (BOOL)isResourceLoopEnabled:(unsigned long long)a0; - (BOOL)notifyPlayerStarted:(id)a0 atTime:(double)a1; - (void)notifyPlayerStopped:(id)a0 atTime:(double)a1; - (BOOL)playPatternFromData:(id)a0 error:(id *)a1; - (BOOL)playPatternFromURL:(id)a0 error:(id *)a1; - (void)reconfigureAudioSession; - (void)removePublicAudioResourceID:(unsigned long long)a0; - (void)setMetricsTestModeEnabled; - (BOOL)setupEngineWithCategory:(id)a0 session:(id)a1 needsAudioPowerBudget:(BOOL)a2 error:(id *)a3; - (BOOL)setupSystemSoundAudioSession:(id)a0 needsAudioPowerBudget:(BOOL)a1 error:(id *)a2; - (BOOL)setupUnsharedAudioSession:(id)a0 isConstantVolume:(BOOL)a1 needsAudioPowerBudget:(BOOL)a2 error:(id *)a3; - (void)startIdleTimerWithHandler:(id /* block */)a0; - (void)storeOptions:(id)a0; - (void)toggleBehavior:(unsigned long long)a0 set:(BOOL)a1; - (void)updateAudioConfigurations:(id)a0 session:(id)a1; - (void)updateEngineBehavior; - (void)updateEngineBehaviorWithError:(id *)a0; @end