@class AVOutputDevice, NSString, NSArray, AVOutputContextCommunicationChannel, AVWeakReference, AVOutputContext, NSDictionary, NSObject; @protocol AVFigRoutingContextOutputDeviceTranslator, OS_dispatch_queue, AVFigRoutingContextCommunicationChannelManager; @interface AVFigRoutingContextOutputContextImpl : NSObject <AVOutputContextImpl> { id /* block */ _routingContextCreator; id<AVFigRoutingContextOutputDeviceTranslator> _deviceTranslator; struct OpaqueFigVolumeControllerState { } *_volumeController; id /* block */ _commChannelManagerCreator; id<AVFigRoutingContextCommunicationChannelManager> _commChannelManager; AVWeakReference *_weakObserver; BOOL _usesRouteConfigUpdatedNotification; NSObject<OS_dispatch_queue> *_ivarAccessQueue; NSDictionary *_destinationChangesForRouteChangeIDs; } @property (readonly, nonatomic) struct OpaqueFigRoutingContext { } *figRoutingContext; @property (weak) AVOutputContext *parentOutputContext; @property (readonly, nonatomic) NSString *ID; @property (readonly, nonatomic) NSString *outputContextType; @property (readonly, nonatomic) AVOutputDevice *outputDevice; @property (readonly, copy, nonatomic) NSString *associatedAudioDeviceID; @property (readonly) BOOL supportsMultipleOutputDevices; @property (readonly) BOOL supportsMultipleBluetoothOutputDevices; @property (readonly) NSArray *outputDevices; @property (readonly) AVOutputDevice *predictedOutputDevice; @property (readonly) BOOL providesControlForAllVolumeFeatures; @property (readonly) float volume; @property (readonly) BOOL canSetVolume; @property (readonly) BOOL canMute; @property (getter=isMuted) BOOL muted; @property (readonly) long long volumeControlType; @property (readonly, nonatomic) AVOutputContextCommunicationChannel *outgoingCommunicationChannel; @property (readonly) unsigned long long hash; @property (readonly) Class superclass; @property (readonly, copy) NSString *description; @property (readonly, copy) NSString *debugDescription; + (void)resetOutputDeviceForAllOutputContexts; + (id)outputContextImplForControllingOutputDeviceGroupWithID:(id)a0 options:(id)a1; + (id)sharedSystemScreenContext; + (id)addSharedAudioOutputContextImpl; + (id)routingContextFactory; + (id)defaultSharedOutputContextImpl; + (struct OpaqueFigRoutingContext { } *)copySystemVideoRoutingContext; + (id)sharedSystemAudioContext; + (id)sharedAudioPresentationOutputContext; + (id)iTunesAudioContext; + (id)sharedSystemRemotePoolContext; + (BOOL)outputContextExistsWithRemoteOutputDevice; + (id)allSharedAudioOutputContextImpls; + (id)auxiliaryOutputContext; + (id)platformDependentScreenOrVideoContext; + (id)outputContextImplForID:(id)a0 type:(id)a1; - (void)increaseVolumeByCount:(long long)a0; - (void)resetPredictedOutputDevice; - (void)setVolume:(float)a0; - (id)init; - (void)dealloc; - (void)setOutputDevices:(id)a0 options:(id)a1 completionHandler:(id /* block */)a2; - (void)_routeConfigUpdateEndedWithID:(struct __CFString { } *)a0 reason:(struct __CFString { } *)a1; - (void)_muteDidChangeForRoutingContextWithID:(struct __CFString { } *)a0; - (void)_sendCommand:(struct __CFString { } *)a0 completionHandler:(id /* block */)a1; - (id)initWithFigRoutingContext:(struct OpaqueFigRoutingContext { } *)a0 routingContextReplacementBlock:(id /* block */)a1; - (void)_currentRouteChanged; - (void)_serverConnectionDied; - (void)_canUseForRoutingContextDidChangeForRoutingContextWIthID:(struct __CFString { } *)a0; - (void)decreaseVolumeByCount:(long long)a0; - (void)communicationChannelManager:(id)a0 didReceiveData:(id)a1 fromCommunicationChannel:(id)a2; - (void)_masterVolumeDidChangeForRoutingContextWithID:(struct __CFString { } *)a0; - (void)setOutputDevice:(id)a0 options:(id)a1 completionHandler:(id /* block */)a2; - (void)removeOutputDevice:(id)a0 options:(id)a1 completionHandler:(id /* block */)a2; - (id)openCommunicationChannelWithOptions:(id)a0 error:(id *)a1; - (id)initWithFigRoutingContextCreator:(id /* block */)a0; - (void)communicationChannelManager:(id)a0 didCloseCommunicationChannel:(id)a1; - (void)_routeConfigUpdatedWithID:(struct __CFString { } *)a0 reason:(struct __CFString { } *)a1 initiator:(struct __CFString { } *)a2 endedError:(struct __CFString { } *)a3 deviceID:(struct __CFString { } *)a4 previousDeviceIDs:(struct __CFArray { } *)a5; - (void).cxx_destruct; - (void)_groupConfigurationChanged; - (void)_canMuteDidChangeForRoutingContextWithID:(struct __CFString { } *)a0; - (void)_masterVolumeControlTypeDidChangeForRoutingContextWithID:(struct __CFString { } *)a0; - (void)_routeChangeStartedWithID:(id)a0; - (id)initWithRoutingContextUUID:(id)a0 type:(id)a1; - (void)_routeConfigUpdateStartedWithID:(struct __CFString { } *)a0; - (struct __CFDictionary { } *)_createSelectRouteOptionsForSetOutputDeviceOptions:(id)a0; - (void)outputContextDidChangeApplicationProcessID:(id)a0; - (id)initWithFigRoutingContext:(struct OpaqueFigRoutingContext { } *)a0 routingContextReplacementBlock:(id /* block */)a1 outputDeviceTranslator:(id)a2 volumeController:(struct OpaqueFigVolumeControllerState { } *)a3 communicationChannelManagerCreator:(id /* block */)a4; - (void)_canSetMasterVolumeDidChangeForRoutingContextWithID:(struct __CFString { } *)a0; - (void)_remoteControlChannelAvailabilityChanged; - (BOOL)isEqual:(id)a0; - (void)_predictedSelectedRouteDescriptorChanged; - (void)_routeChangeEndedWithID:(id)a0 reason:(struct __CFString { } *)a1; - (id)routingContextUUID; - (void)_systemPickerVideoRouteChanged; - (void)addOutputDevice:(id)a0 options:(id)a1 completionHandler:(id /* block */)a2; @end