@class UIWindow, NSString, RPPGPipViewController, RPBroadcastController, UIView, NSURL, RPPipViewController; @protocol RPScreenRecorderDelegate, RPScreenRecorderPrivateDelegate, RPScreenCaptureKitControlCenterManagerDelegate, RPScreenRecorderScreenCapureKitDelegate, RPScreenCaptureKitContentSharingPickerDelegate, RPScreenRecorderScreenCapureKitPreviewDelegate; @interface RPScreenRecorder : NSObject <RPPreviewViewControllerDelegate, UINavigationControllerDelegate, UIPopoverPresentationControllerDelegate> @property (nonatomic) unsigned long long previousAudioSessionOptions; @property (retain, nonatomic) NSString *previousAudioCategory; @property (nonatomic, getter=isRecording) BOOL recording; @property (nonatomic, getter=isAvailable) BOOL available; @property (retain, nonatomic) UIWindow *windowToRecord; @property (retain, nonatomic) UIView *cameraPreviewView; @property (retain, nonatomic) RPPipViewController *pipViewController; @property (retain, nonatomic) RPPGPipViewController *pgPipViewController; @property (copy, nonatomic) id /* block */ saveVideoToCameraRollCompletionBlock; @property (nonatomic) BOOL hasUserConsentForCamera; @property (nonatomic) BOOL hasUserConsentForMicrophone; @property (copy, nonatomic) id /* block */ captureHandler; @property (retain, nonatomic) RPBroadcastController *activeBroadcastController; @property (nonatomic, getter=isPaused) BOOL paused; @property (nonatomic, setter=updateProcessIDForAudioCapture:) int processIDForAudioCapture; @property (nonatomic) BOOL systemRecording; @property (retain, nonatomic) NSURL *broadcastURL; @property (retain, nonatomic) id<RPScreenRecorderPrivateDelegate> privateDelegate; @property (retain, nonatomic) id<RPScreenRecorderScreenCapureKitDelegate> screenCaptureKitDelegate; @property (retain, nonatomic) id<RPScreenCaptureKitControlCenterManagerDelegate> screenCaptureKitControlCenterManagerDelegate; @property (retain, nonatomic) id<RPScreenCaptureKitContentSharingPickerDelegate> screenCaptureKitContentSharingPickerDelegate; @property (retain, nonatomic) id<RPScreenRecorderScreenCapureKitPreviewDelegate> screenCaptureKitPreviewDelegate; @property (retain, nonatomic) id<RPScreenRecorderDelegate> secondDelegate; @property (weak, nonatomic) id<RPScreenRecorderDelegate> delegate; @property (nonatomic, getter=isMicrophoneEnabled) BOOL microphoneEnabled; @property (nonatomic, getter=isCameraEnabled) BOOL cameraEnabled; @property (nonatomic) long long cameraPosition; @property (readonly) unsigned long long hash; @property (readonly) Class superclass; @property (readonly, copy) NSString *description; @property (readonly, copy) NSString *debugDescription; + (id)sharedRecorder; - (id)init; - (void)dealloc; - (void).cxx_destruct; - (void)startCaptureWithHandler:(id /* block */)a0 completionHandler:(id /* block */)a1; - (void)stopCaptureWithHandler:(id /* block */)a0; - (id)audioQueue; - (id)processQueue; - (void)startSystemRecordingWithMicrophoneEnabled:(BOOL)a0 handler:(id /* block */)a1; - (void)stopSystemRecordingWithURLHandler:(id /* block */)a0; - (id)videoQueue; - (void)startRecordingWithHandler:(id /* block */)a0; - (void)stopRecordingWithHandler:(id /* block */)a0; - (void)stopRecordingWithOutputURL:(id)a0 completionHandler:(id /* block */)a1; - (void)resumeInAppClip; - (void)startInAppBroadcastWithHandler:(id /* block */)a0; - (void)stopSystemBroadcastWithHandler:(id /* block */)a0; - (id)applicationWindow; - (void)captureHandlerWithAudioSample:(id)a0 bufferType:(long long)a1; - (void)captureHandlerWithSample:(id)a0 timingData:(id)a1; - (BOOL)checkContextID:(id)a0 withHandler:(id /* block */)a1; - (void)clientDidUpdateBroadcastServiceInfo:(id)a0; - (id)currentWindowLayerContextID; - (struct CGSize { double x0; double x1; })currentWindowSize; - (void)didStopRecordingWithError:(id)a0 previewViewController:(id)a1; - (void)discardRecordingWithHandler:(id /* block */)a0; - (void)exportClipToURL:(id)a0 duration:(double)a1 completionHandler:(id /* block */)a2; - (id)handleUnavailableState; - (void)instantiatePipView; - (BOOL)isConnectionInterruptedOrInvalid:(id)a0; - (void)isScreenRecordingAvailable; - (void)notifyDelegateOfUpdatedState; - (void)pauseInAppBroadcast; - (void)pauseInAppCapture; - (void)pauseInAppRecording; - (void)recordingDidPause; - (void)recordingDidStopWithError:(id)a0 movieURL:(id)a1; - (void)recordingLockInterrupted:(id)a0; - (void)recordingTimerDidUpdate:(id)a0; - (void)registerAppForStateChangeSetRotationLock:(BOOL)a0; - (void)removePipView; - (void)resumeInAppBroadcast; - (void)resumeInAppCapture; - (void)resumeInAppRecording; - (void)resumeSystemBroadcast; - (void)resumeSystemRecording; - (void)saveClipToCameraRoll:(id)a0 handler:(id /* block */)a1; - (void)saveVideo:(id)a0 handler:(id /* block */)a1; - (void)saveVideoToCameraRoll:(id)a0 handler:(id /* block */)a1; - (BOOL)screenRecordingAllowed; - (BOOL)screenRecordingSupportedOnDevice; - (void)setWindowRotationLocked:(BOOL)a0; - (void)setupSystemBroadcastWithExtension:(id)a0 handler:(id /* block */)a1; - (BOOL)shouldNotifyDidStop; - (void)shouldResumeSessionType:(id)a0; - (void)startClipBufferingWithCompletionHandler:(id /* block */)a0; - (void)startRecordingWithMicrophoneEnabled:(BOOL)a0 handler:(id /* block */)a1; - (void)startSystemBroadcastWithHandler:(id /* block */)a0; - (void)stopClipBufferingWithCompletionHandler:(id /* block */)a0; - (void)stopInAppBroadcastWithHandler:(id /* block */)a0; - (void)stopRecordingWithAdditionalShareFileAttachment:(id)a0 overrideShareMessage:(id)a1 previewViewControllerOverrideTintColor:(id)a2 handler:(id /* block */)a3; - (void)stopRecordingWithVideoURLHandler:(id /* block */)a0; - (void)stopSystemRecording:(id /* block */)a0; - (void)updateRecordingAvailability:(id)a0; - (void)updateScreenRecordingStateWithCurrentState:(id)a0; - (void)updateStateWithActive:(BOOL)a0 error:(id)a1; @end