@class NSUUID, NSString, NSArray, CMContinuityCaptureConfiguration, NSDate, CMContinuityCaptureState, AVCMediaStreamNegotiator, CMContinuityCaptureStateMachine, NSObject, NSMutableArray, CMContinuityCaptureDeviceCapabilities; @protocol ContinuityCaptureTransportDeviceStream, ContinuityCaptureTransportDevice, CMContinuityCaptureCompositeDeviceDelegate, OS_dispatch_queue; @interface CMContinuityCaptureDeviceBase : NSObject <CMContinuityCaptureDevice> { NSObject<OS_dispatch_queue> *_queue; long long _entity; CMContinuityCaptureDeviceCapabilities *_capabilities; id<CMContinuityCaptureCompositeDeviceDelegate> _compositeDelegate; NSMutableArray *_streamSessionLogs; _Atomic BOOL _streaming; CMContinuityCaptureStateMachine *_stateMachine; CMContinuityCaptureStateMachine *_streamActionStateMachine; CMContinuityCaptureConfiguration *_activeConfiguration; id /* block */ _streamTimeoutBlock; unsigned long long _lastStreamNoOfFramesDispatched; unsigned long long _lastStreamNoOfHighLatencyFrames; NSDate *_lastStreamStartTime; NSDate *_lastStreamFirstFrameDispatchTime; AVCMediaStreamNegotiator *_avcStreamNegotiator; NSMutableArray *_pendingCompletionBlocks; id<ContinuityCaptureTransportDevice> _transportDevice; id<ContinuityCaptureTransportDeviceStream> _transportStream; BOOL _avcStackStarted; BOOL _terminated; id<ContinuityCaptureTransportDevice> _deviceStatusObserverDevice; unsigned long long _cameraCaptureStackStartTime; unsigned long long _avCaptureStackStartTime; _Atomic BOOL _observingStateMachineState; _Atomic BOOL _invalidated; _Atomic BOOL _hasStreamIntent; } @property (readonly, retain) NSObject<OS_dispatch_queue> *queue; @property (readonly) long long entity; @property (readonly, retain) CMContinuityCaptureDeviceCapabilities *capabilities; @property (readonly, weak) id<CMContinuityCaptureCompositeDeviceDelegate> compositeDelegate; @property (readonly, retain) NSArray *controls; @property (readonly, retain) NSUUID *deviceID; @property (readonly, retain) id<ContinuityCaptureTransportDeviceStream> transportStream; @property (readonly) BOOL streaming; @property (readonly, retain) CMContinuityCaptureConfiguration *activeConfiguration; @property (readonly, retain) AVCMediaStreamNegotiator *avcStreamNegotiator; @property (readonly, retain) CMContinuityCaptureStateMachine *streamActionStateMachine; @property (readonly, retain) CMContinuityCaptureState *stateMachineCurrentState; @property (readonly, retain) id<ContinuityCaptureTransportDevice> transportDevice; @property (readonly, nonatomic) unsigned long long currentSessionID; @property (readonly, nonatomic) unsigned long long cameraCaptureStackStartTime; @property (readonly, nonatomic) unsigned long long avCaptureStackStartTime; @property (readonly, nonatomic) BOOL invalidated; @property (nonatomic, getter=hasStreamIntent) BOOL streamIntent; @property (readonly) unsigned long long hash; @property (readonly) Class superclass; @property (readonly, copy) NSString *description; @property (readonly, copy) NSString *debugDescription; + (void)defaultStateEntryTransitionActionForState:(id)a0 onEvent:(id)a1; + (BOOL)defaultStateExitGuard:(id)a0 dstState:(id)a1 onEvent:(id)a2; + (void)defaultStateExitTransitionActionForState:(id)a0 onEvent:(id)a1; + (BOOL)keepRemoteClientAliveForEvent:(id)a0; - (void)dealloc; - (BOOL)activeConnection; - (void)invalidate; - (id)debugInfo; - (void)observeValueForKeyPath:(id)a0 ofObject:(id)a1 change:(id)a2 context:(void *)a3; - (void).cxx_destruct; - (id)_debugInfo; - (void)_startStream:(id)a0 option:(unsigned long long)a1 completion:(id /* block */)a2; - (void)scheduleDeviceBusyNotification:(BOOL)a0; - (void)stateMachineClearDeferredEvents; - (id)_aggregateEventDuplicatesInAnyState:(id)a0 eventName:(id)a1; - (id)_aggregateEventPairInAnyState:(id)a0 entryEventName:(id)a1 exitEventName:(id)a2; - (id)_aggregateStreamEventsInInitState:(id)a0; - (id)_aggregateStreamEventsInStreamState:(id)a0; - (void)_handleAVCNegotiation:(long long)a0 data:(id)a1; - (void)_stopStream:(long long)a0 option:(unsigned long long)a1 completion:(id /* block */)a2; - (id)aggregateEvents:(id)a0; - (void)captureStillImage:(id)a0 entity:(long long)a1 completion:(id /* block */)a2; - (void)connectionInterrupted:(id)a0 forDevice:(id)a1; - (void)didCaptureStillImage:(id)a0 entity:(long long)a1; - (void)dispatchFrame:(struct opaqueCMSampleBuffer { } *)a0 entity:(long long)a1 completion:(id /* block */)a2; - (void)enqueueReactionEffect:(id)a0 entity:(long long)a1; - (void)forceDeviceRemoval; - (void)handleAVCNegotiation:(long long)a0 data:(id)a1; - (void)handleSynchronizeAudioClockCompletion; - (id)initWithCapabilities:(id)a0 compositeDelegate:(id)a1 transportDevice:(id)a2 queue:(id)a3; - (void)logStreamSessionSummary; - (void)postActionCompletionForEventName:(id)a0 eventData:(id)a1 error:(id)a2; - (BOOL)postActionGuardOfType:(unsigned long long)a0 forEventName:(id)a1 option:(unsigned long long)a2; - (void)postActionOfType:(unsigned long long)a0 forEvent:(id)a1 option:(unsigned long long)a2; - (void)postEvent:(id)a0 entity:(long long)a1 data:(id)a2; - (void)printFrameBufferLog:(long long)a0; - (void)resetTransportDevice:(id)a0; - (void)setStreamStateTimeout:(BOOL)a0 forTime:(unsigned int)a1; - (void)setValueForControl:(id)a0 completion:(id /* block */)a1; - (void)setupStateMachine; - (void)setupStreamActionStateMachine; - (BOOL)startAVConferenceStack:(unsigned long long)a0; - (BOOL)startCameraCaptureStack:(unsigned long long)a0; - (void)startStream:(id)a0 option:(unsigned long long)a1 completion:(id /* block */)a2; - (void)startStreamCompletedWithError:(id)a0; - (void)stateMachineNotifyComplete:(id)a0; - (void)stateMachineReStartStreamOnEvent:(id)a0 option:(unsigned long long)a1; - (void)stateMachineStartStreamOnEvent:(id)a0 option:(unsigned long long)a1; - (void)stateMachineStopStreamOnEvent:(id)a0 option:(unsigned long long)a1; - (void)stateMachineStreamSubstateReceiveData:(id)a0; - (void)stateMachineStreamSubstateSendData:(id)a0; - (BOOL)stopCameraCaptureStack:(unsigned long long)a0; - (void)stopCaptureStack:(unsigned long long)a0 completion:(id /* block */)a1; - (void)stopStream:(long long)a0 option:(unsigned long long)a1 completion:(id /* block */)a2; - (void)streamStateMachineNotifyComplete:(id)a0; - (void)synchronizeAudioClockWithSampleTime:(unsigned long long)a0 networkTime:(unsigned long long)a1 clockGrandMasterIdentifier:(unsigned long long)a2; - (void)terminateComplete:(id /* block */)a0; - (void)unconditionalTransitionForState:(id)a0 andDeferringEvent:(id)a1; @end