@class NSMutableDictionary, VCMediaKeyIndex, NSMutableArray, NSObject; @protocol OS_dispatch_queue, OS_dispatch_source; @interface VCSecurityKeyManager : NSObject { id _delegate; id _reportingAgentWeak; NSMutableArray *_unknownKeyIndexList; NSMutableDictionary *_sendKeys; NSMutableDictionary *_receiveKeys; NSMutableDictionary *_prunePendingReceiveKeys; VCMediaKeyIndex *_latestSendKeyIndex; VCMediaKeyIndex *_latestReceiveKeyIndex; VCMediaKeyIndex *_keyIndexNotReceived; BOOL _isSendKeysCleanUpPending; BOOL _isReceiveKeysCleanUpPending; BOOL _forceRemoteMKMMissing; double _keyMaterialNotUsedTimeout; NSObject *_keyManagerQueue; double _lastKeyIndexNotReceived; NSObject *_pruneTimer; NSObject *_encryptionKeyRollTimer; BOOL _isRunning; } @property (nonatomic) struct opaqueRTCReporting { } *reportingAgent; - (void)dealloc; - (id)delegate; - (void)start; - (void)stop; - (id)initWithDelegate:(id)a0; - (id)logPrefix; - (BOOL)addSecurityKeyMaterial:(id)a0; - (BOOL)associateMKI:(id)a0 withClientID:(id)a1; - (id)copyMKMWithPrefix:(id)a0; - (double)firstExpirationTime; - (id)getLatestRecvKeyMaterial; - (id)getLatestSendKeyMaterial; - (long long)getNotUsedTimeout; - (id)getRecvKeyMaterialWithIndex:(id)a0; - (id)getSendKeyMaterialWithIndex:(id)a0; - (void)handlePruneTimerEventAndReschedule; - (double)pruneAllExpiredKeys; - (void)pruneRecvKeyMaterialWithDelay:(double)a0; - (void)pruneSendKeyMaterialWithDelay:(double)a0; - (void)releaseTimers; - (void)scheduleEncryptionRollTimerWithDelay:(double)a0; - (void)schedulePruneTimer:(double)a0; - (BOOL)startTimers; - (void)stopTimers; @end