luxlabs header browser preview


@class NSMutableDictionary, IMHandle, NSDate, NSDictionary, NSObject, IMAccount, IMAVChatParticipant, NSMutableArray, IMTimingCollection, NSString, NSTimer, NSArray, NSData, NSNumber, NSError;
@protocol OS_dispatch_queue;

@interface IMAVChat : NSObject <IMSystemMonitorListener> {
    NSMutableDictionary *_conferenceStateCache;
    NSDate *_dateStartedConnecting;
    NSDate *_dateReceivedRelayInitiate;
    NSDate *_dateReceivedRelayUpdate;
    IMTimingCollection *_timingCollection;
    NSError *_error;
    unsigned int _lastPostedState;
    double _connectionTimeoutTime;
    double _invitationTimeoutTime;
    BOOL _hasGatheredInfo;
    BOOL _hasReceivedFirstFrame;
    BOOL _hasPendingAccept;
    BOOL _hasPendingInit;
}

@property (nonatomic) void *localVideoLayer;
@property (nonatomic) void *localVideoBackLayer;
@property (nonatomic) unsigned int cameraOrientation;
@property (nonatomic) unsigned int cameraType;
@property (nonatomic) double invitationTimeoutTime;
@property (nonatomic) double connectionTimeoutTime;
@property (nonatomic, setter=setMute:) BOOL isMute;
@property (nonatomic, setter=setRemoteMute:) BOOL isRemoteMute;
@property (nonatomic) BOOL isSendingAudio;
@property (readonly, nonatomic) BOOL didRemoteMute;
@property (nonatomic, setter=setPaused:) BOOL isPaused;
@property (readonly, nonatomic) BOOL hasReceivedFirstFrame;
@property (nonatomic) BOOL isSendingVideo;
@property (readonly, nonatomic) BOOL didRemotePause;
@property (readonly, nonatomic) BOOL _allParticipantsUsingICE;
@property (readonly) NSMutableDictionary *_extraServerContext;
@property (retain, nonatomic, setter=_setConferenceID:) NSString *conferenceID;
@property (retain, nonatomic, setter=_setCallStatisticsGUID:) NSString *_callStatisticsGUID;
@property (nonatomic, setter=_setConferenceController:) id _conferenceController;
@property (retain, nonatomic, setter=_setGUID:) NSString *GUID;
@property (retain, nonatomic, setter=_setNatType:) NSNumber *_natType;
@property (readonly, nonatomic) NSNumber *_remoteNatType;
@property (readonly, nonatomic) NSNumber *_currentNatType;
@property (nonatomic, setter=_setConnectionType:) int _connectionType;
@property (readonly, nonatomic) long long _bustedCallID;
@property (readonly, nonatomic) NSNumber *_connectDuration;
@property (readonly, nonatomic) NSNumber *_callDuration;
@property (readonly, nonatomic) NSNumber *_relayConnectDuration;
@property (readonly, nonatomic) BOOL _usesRelay;
@property (readonly, nonatomic) BOOL _isProxy;
@property (retain, nonatomic, setter=_setRelayRemotePrimaryIdentifier:) NSData *_relayRemotePrimaryIdentifier;
@property (retain, nonatomic, setter=_setInterruptionBegan:) NSDate *_interruptionBegan;
@property (retain, nonatomic, setter=_setFrontCameraCaptureTime:) NSNumber *_frontCameraCaptureTime;
@property (retain, nonatomic, setter=_setBackCameraCaptureTime:) NSNumber *_backCameraCaptureTime;
@property (retain, nonatomic, setter=setDataRate:) NSNumber *dataRate;
@property (retain, nonatomic, setter=setDataUploaded:) NSNumber *dataUploaded;
@property (retain, nonatomic, setter=setDataDownloaded:) NSNumber *dataDownloaded;
@property (nonatomic, setter=_setIsVideoInterrupted:) BOOL _isVideoInterrupted;
@property (nonatomic, setter=_setIsAudioInterrupted:) BOOL _isAudioInterrupted;
@property (nonatomic, setter=_setLocalNetworkConnectionType:) unsigned long long _localNetworkConnectionType;
@property (nonatomic, setter=_setRemoteNetworkConnectionType:) unsigned long long _remoteNetworkConnectionType;
@property (nonatomic, setter=_setNeedsAudioRestart:) BOOL _needsAudioRestart;
@property (nonatomic, setter=_setNeedsVideoRestart:) BOOL _needsVideoRestart;
@property (retain, nonatomic) NSObject<OS_dispatch_queue> *_conferenceQueue;
@property (retain, nonatomic, setter=_setPingTestResults:) NSDictionary *_pingTestResults;
@property (nonatomic, setter=_setPingTestResult:) long long _pingTestResult;
@property (nonatomic, setter=_setNetworkCheckResult:) long long _networkCheckResult;
@property (retain, nonatomic, setter=_setCallerProperties:) NSDictionary *callerProperties;
@property (nonatomic, setter=_setConnectionStarted:) BOOL _connectionStarted;
@property (readonly, nonatomic) NSArray *_imHandles;
@property (nonatomic) BOOL mayRequireBreakBeforeMake;
@property (retain, nonatomic, setter=_setInviteTimeoutTimer:) NSTimer *inviteTimeoutTimer;
@property (retain, nonatomic, setter=_setInviteTimeoutTimerStart:) NSDate *inviteTimeoutTimerStart;
@property (retain, nonatomic, setter=_setFirstFrameTimeoutTimer:) NSTimer *firstFrameTimeoutTimer;
@property (retain, nonatomic, setter=_setConnectionTimeoutTimer:) NSTimer *connectionTimeoutTimer;
@property (nonatomic, setter=_setPortraitAspectRatios:) struct CGSize { double width; double height; } portraitAspectRatios;
@property (nonatomic, setter=_setLandscapeAspectRatios:) struct CGSize { double width; double height; } landscapeAspectRatios;
@property (nonatomic, getter=isTerminating, setter=_setTerminating:) BOOL terminating;
@property (nonatomic, setter=_setDidRemoteMute:) BOOL didRemoteMute;
@property (nonatomic, setter=_setDidRemotePause:) BOOL didRemotePause;
@property (nonatomic, setter=_setAirplaneModeEnabled:) BOOL airplaneModeEnabled;
@property (nonatomic, setter=_setMetadataFinalized:) BOOL metadataFinalized;
@property (readonly, nonatomic) unsigned int sessionID;
@property (readonly, nonatomic) IMHandle *initiatorIMHandle;
@property (readonly, nonatomic) IMHandle *otherIMHandle;
@property (readonly, nonatomic) IMAccount *account;
@property (readonly, nonatomic) IMAVChatParticipant *initiatorParticipant;
@property (readonly, nonatomic) IMAVChatParticipant *localParticipant;
@property (readonly, nonatomic) NSMutableArray *participants;
@property (readonly, nonatomic) NSArray *remoteParticipants;
@property (readonly, nonatomic) unsigned int state;
@property (readonly, nonatomic) BOOL isActive;
@property (readonly, nonatomic) BOOL isStateFinal;
@property (readonly, nonatomic) int endedError;
@property (readonly, nonatomic) unsigned int endedReason;
@property (readonly, nonatomic) NSDate *dateCreated;
@property (readonly, nonatomic) NSDate *dateConnected;
@property (readonly, nonatomic) NSDate *dateEnded;
@property (readonly, nonatomic) BOOL isCaller;
@property (readonly, nonatomic) BOOL isVideo;
@property (readonly, nonatomic) BOOL isUsingWifi;
@property (nonatomic, getter=isRelayed) BOOL relayed;

+ (id)chatList;
+ (id)_avChatWithMatchingIMHandles:(id)a0 video:(BOOL)a1;
+ (id)_activeChat;
+ (id)connectingChats;
+ (id)acceptedChats;
+ (id)connectedChats;
+ (id)_connectedChat;
+ (void)setDefaultInvitationTimeoutTime:(double)a0;
+ (id)_bestGuessAVChatWithIMHandle:(id)a0 conferenceID:(id)a1 sessionID:(unsigned int)a2 properties:(id)a3;
+ (id)avChatWithGUID:(id)a0;
+ (id)_chatWithSessionID:(unsigned int)a0;
+ (id)_connectingChats;
+ (double)defaultConnectionTimeoutTime;
+ (id)_outgoingInvitations;
+ (void)setDefaultConnectionTimeoutTime:(double)a0;
+ (id)connectedChat;
+ (id)nonFinalChat;
+ (id)outgoingInvitations;
+ (id)_connectedChats;
+ (id)_incomingInvitations;
+ (id)activeChat;
+ (id)_nonFinalChat;
+ (id)_imHandleFromProxyRepresentation:(id)a0;
+ (id)_avChatWithGUID:(id)a0;
+ (id)_avChatConnectingFromIMHandle:(id)a0;
+ (int)systemSupportsNewOutgoingConferenceTo:(id)a0 isVideo:(BOOL)a1;
+ (id)_avChatWithConferenceID:(id)a0;
+ (id)_avChatWaitingForReplyFromIMHandle:(id)a0 orConferenceID:(id)a1;
+ (id)_proxyRepresentationForIMHandle:(id)a0;
+ (id)chatsWithIMAVChatState:(unsigned int)a0;
+ (double)defaultInvitationTimeoutTime;
+ (id)_chatList;
+ (id)_avChatInvitedByIMHandle:(id)a0 orConferenceID:(id)a1;
+ (id)_acceptedChats;
+ (id)_avChatArray;
+ (id)_chatListLock;
+ (id)incomingInvitations;
+ (id)_chatsWithIMAVChatState:(unsigned int)a0;

- (void)systemApplicationDidResume;
- (void)toggleMute;
- (void)dealloc;
- (void)systemApplicationDidSuspend;
- (void)_applicationWillTerminate:(id)a0;
- (id)description;
- (void)systemApplicationDidEnterBackground;
- (void).cxx_destruct;
- (void)systemApplicationWillEnterForeground;
- (BOOL)isActive;
- (void)systemApplicationDidBecomeActive;
- (void)_postNotificationName:(id)a0 userInfo:(id)a1;
- (void)notificationCenterDidDisappear;
- (void)notificationCenterWillAppear;
- (void)systemApplicationDidResumeForEventsOnly;
- (void)systemDidFastUserSwitchOut;
- (void)systemWillShutdown;
- (id)_timings;
- (BOOL)stopPreview;
- (void)acceptInvitation;
- (void)cancelInvitation;
- (void)declineInvitation;
- (void)setRemoteVideoPresentationSize:(struct CGSize { double x0; double x1; })a0;
- (void)setRemoteVideoPresentationState:(unsigned int)a0;
- (void)_clearCache;
- (id)remoteParticipants;
- (BOOL)_moveVCPartyID:(id)a0 toIndex:(unsigned int)a1 inCount:(unsigned int)a2;
- (void)_noteFirstFrame;
- (void)_postStateToDelegateIfNecessary;
- (void)conferencePersonWithID:(id)a0 didMute:(BOOL)a1;
- (void)_handleAVError:(id)a0;
- (void)_initParticipantsWithIMHandles:(id)a0;
- (void)endChat;
- (void)invite:(id)a0;
- (void)__responseToVCInvite:(id)a0;
- (void)__sendEndCallMetricToAWDWithReason:(unsigned int)a0 andError:(int)a1;
- (void)__sendEndCallMetricToViceroyWithReason:(unsigned int)a0 andError:(int)a1;
- (void)_airplaneModeChanged:(id)a0;
- (void)_cacheBool:(BOOL)a0 forKey:(id)a1;
- (BOOL)_cachedBoolForKey:(id)a0;
- (void)_cancelInvitationWithReason:(unsigned int)a0 error:(int)a1;
- (void)_clearConnectionTimeoutTimer;
- (void)_clearFirstFrameTimeoutTimer;
- (void)_clearInvitationTimeoutTimer;
- (void)_conferenceOtherParticipant:(id)a0 didConnect:(BOOL)a1;
- (void)_connectionTimeout:(id)a0;
- (void)_endChatWithReason:(unsigned int)a0 andError:(int)a1;
- (void)_entitlementsChanged:(id)a0;
- (void)_firstFrameTimeout:(id)a0;
- (void)_handleGenericAVMessageFromParticipant:(id)a0 type:(unsigned int)a1 userInfo:(id)a2 handled:(BOOL)a3;
- (void)_handleRelayCancel:(id)a0 fromParticipant:(id)a1;
- (void)_handleRelayInitate:(id)a0 fromParticipant:(id)a1;
- (void)_handleRelayUpdate:(id)a0 fromParticipant:(id)a1;
- (BOOL)_hasCachedBoolForKey:(id)a0;
- (id)_initOutgoingTo:(id)a0 isVideo:(BOOL)a1 isRelayed:(BOOL)a2 GUID:(id)a3;
- (id)_initWith:(id)a0 invitedBy:(id)a1 sessionID:(unsigned int)a2 GUID:(id)a3 video:(BOOL)a4 extraProperties:(id)a5;
- (id)_initWith:(id)a0 invitedBy:(id)a1 sessionID:(unsigned int)a2 isRelayed:(BOOL)a3 GUID:(id)a4 video:(BOOL)a5 extraProperties:(id)a6;
- (void)_insertRemoteParticipant:(id)a0 atIndex:(unsigned long long)a1;
- (void)_invitationTimeout:(id)a0;
- (BOOL)_isCallUpgradeTo:(id)a0;
- (BOOL)_isVideoUpgradeTo:(id)a0;
- (id)_participantMatchingVCPartyID:(id)a0;
- (BOOL)_participantsCheckOut;
- (void)_peerID:(id)a0 changedTo:(id)a1;
- (void)_postNotificationName:(id)a0 participant:(id)a1 userInfo:(id)a2;
- (void)_postParticipantMediaChangeNotification:(id)a0 cameraChanged:(BOOL)a1 orientationChanged:(BOOL)a2 aspectChanged:(BOOL)a3 cameraWillSwitch:(BOOL)a4 camera:(unsigned int)a5 orientation:(unsigned int)a6 aspect:(struct CGSize { double x0; double x1; })a7;
- (BOOL)_processVCResponseDict:(id)a0;
- (id)_proxyRepresentation;
- (id)_proxyRepresentationForIMAVChatParticipant:(id)a0;
- (void)_reduceInvitationTimeoutTime;
- (void)_responseToVCInvite:(id)a0;
- (void)_resumeAudioState;
- (void)_resumeVideoState;
- (void)_saveAudioRestartState;
- (void)_saveVideoRestartState;
- (void)_setActiveConference;
- (void)_setConnectionTimeoutTimer;
- (void)_setCreationDate;
- (void)_setDateConnected;
- (void)_setFirstFrameTimeoutTimer;
- (void)_setInvitationTimeoutTimer;
- (void)_setStateDisconnected;
- (void)_submitCallConnectedLogging;
- (void)_submitCallEndedLoggingWithReason:(unsigned int)a0 andError:(int)a1;
- (void)_submitCallInterruptionBeganLogging;
- (void)_submitCallInterruptionEndedLogging;
- (void)_submitCallStartedLoggingWithRecipientID:(id)a0 isCaller:(BOOL)a1 isVideo:(BOOL)a2;
- (void)_updateIMHandleInBuddyList:(id)a0;
- (void)_vccInitDidFinish:(id)a0;
- (void)beginChat;
- (void)conferenceAVConferenceCallID:(long long)a0 didConnect:(BOOL)a1;
- (void)conferenceDidPauseAudioWithCallID:(long long)a0 didPauseAudio:(BOOL)a1;
- (void)conferenceDidStopWithCallID:(long long)a0 error:(id)a1;
- (void)conferencePersonWithID:(id)a0 didDegrade:(BOOL)a1;
- (void)conferencePersonWithID:(id)a0 didPause:(BOOL)a1;
- (void)conferencePersonWithID:(id)a0 localIPDidChange:(id)a1;
- (void)conferencePersonWithID:(id)a0 mediaDidStall:(BOOL)a1;
- (void)conferencePersonWithID:(id)a0 sendRelayCancel:(id)a1;
- (void)conferencePersonWithID:(id)a0 sendRelayRequest:(id)a1;
- (void)conferencePersonWithID:(id)a0 sendRelayUpdate:(id)a1;
- (void)declineInvitationWithResponse:(unsigned int)a0;
- (void)endChatWithError:(int)a0;
- (void)endChatWithReason:(unsigned int)a0;
- (void)endChatWithReason:(unsigned int)a0 error:(int)a1;
- (void)handleGenericAVMessageFromParticipant:(id)a0 type:(unsigned int)a1 userInfo:(id)a2;
- (id)initIncomingFrom:(id)a0 isVideo:(BOOL)a1 callerProperties:(id)a2;
- (id)initOutgoingTo:(id)a0 isVideo:(BOOL)a1;
- (id)initOutgoingTo:(id)a0 isVideo:(BOOL)a1 isRelayed:(BOOL)a2;
- (id)initOutgoingTo:(id)a0 isVideo:(BOOL)a1 isRelayed:(BOOL)a2 GUID:(id)a3;
- (id)initiatorParticipant;
- (void)invite:(id)a0 additionalPeers:(id)a1;
- (void)invite:(id)a0 additionalPeers:(id)a1 excludingPushTokens:(id)a2;
- (void)inviteAll;
- (id)inviteesInfo;
- (BOOL)isConferenceSilent;
- (BOOL)isStateFinal;
- (struct CGSize { double x0; double x1; })localAspectRatioForCameraOrientation:(unsigned int)a0 cameraType:(unsigned int)a1;
- (void)participant:(id)a0 changedFromState:(unsigned int)a1 toState:(unsigned int)a2;
- (id)participantMatchingIMHandle:(id)a0;
- (id)participantWithAVConferenceCallID:(long long)a0;
- (id)participantWithID:(id)a0;
- (void)setLocalAspectRatio:(struct CGSize { double x0; double x1; })a0 cameraOrientation:(unsigned int)a1 cameraType:(unsigned int)a2;
- (void)setMetadataFinalized;
- (BOOL)startPreviewWithError:(id *)a0;
- (void)togglePaused;
- (id)vcPartyIDForIMHandle:(id)a0;

@end