#import #if defined(MtProtoKitDynamicFramework) # import #elif defined(MtProtoKitMacFramework) # import #else # import #endif @class MTDatacenterAddress; @class MTDatacenterAddressSet; @protocol MTSerialization; @class MTContext; @class MTTransportScheme; @protocol MTKeychain; @class MTSessionInfo; @class MTApiEnvironment; @class MTSignal; @protocol MTContextChangeListener @optional - (void)contextDatacenterAddressSetUpdated:(MTContext *)context datacenterId:(NSInteger)datacenterId addressSet:(MTDatacenterAddressSet *)addressSet; - (void)contextDatacenterAuthInfoUpdated:(MTContext *)context datacenterId:(NSInteger)datacenterId authInfo:(MTDatacenterAuthInfo *)authInfo; - (void)contextDatacenterAuthTokenUpdated:(MTContext *)context datacenterId:(NSInteger)datacenterId authToken:(id)authToken; - (void)contextDatacenterTransportSchemesUpdated:(MTContext *)context datacenterId:(NSInteger)datacenterId; - (void)contextIsPasswordRequiredUpdated:(MTContext *)context datacenterId:(NSInteger)datacenterId; - (void)contextDatacenterPublicKeysUpdated:(MTContext *)context datacenterId:(NSInteger)datacenterId publicKeys:(NSArray *)publicKeys; - (MTSignal *)fetchContextDatacenterPublicKeys:(MTContext *)context datacenterId:(NSInteger)datacenterId; - (void)contextApiEnvironmentUpdated:(MTContext *)context apiEnvironment:(MTApiEnvironment *)apiEnvironment; - (MTSignal *)isContextNetworkAccessAllowed:(MTContext *)context; @end @interface MTContextBlockChangeListener : NSObject @property (nonatomic, copy) void (^contextIsPasswordRequiredUpdated)(MTContext *, NSInteger); @property (nonatomic, copy) MTSignal *(^fetchContextDatacenterPublicKeys)(MTContext *, NSInteger); @property (nonatomic, copy) MTSignal *(^isContextNetworkAccessAllowed)(MTContext *); @end @interface MTContext : NSObject @property (nonatomic, strong) id keychain; @property (nonatomic, strong, readonly) id serialization; @property (nonatomic, strong, readonly) MTApiEnvironment *apiEnvironment; @property (nonatomic, readonly) bool isTestingEnvironment; @property (nonatomic, readonly) bool useTempAuthKeys; - (instancetype)initWithSerialization:(id)serialization apiEnvironment:(MTApiEnvironment *)apiEnvironment isTestingEnvironment:(bool)isTestingEnvironment useTempAuthKeys:(bool)useTempAuthKeys; - (void)performBatchUpdates:(void (^)())block; - (void)addChangeListener:(id)changeListener; - (void)removeChangeListener:(id)changeListener; - (void)setDiscoverBackupAddressListSignal:(MTSignal *)signal; - (NSTimeInterval)globalTime; - (NSTimeInterval)globalTimeDifference; - (NSTimeInterval)globalTimeOffsetFromUTC; - (void)setGlobalTimeDifference:(NSTimeInterval)globalTimeDifference; - (void)setSeedAddressSetForDatacenterWithId:(NSInteger)datacenterId seedAddressSet:(MTDatacenterAddressSet *)seedAddressSet; - (void)updateAddressSetForDatacenterWithId:(NSInteger)datacenterId addressSet:(MTDatacenterAddressSet *)addressSet forceUpdateSchemes:(bool)forceUpdateSchemes; - (void)addAddressForDatacenterWithId:(NSInteger)datacenterId address:(MTDatacenterAddress *)address; - (void)updateTransportSchemeForDatacenterWithId:(NSInteger)datacenterId transportScheme:(MTTransportScheme *)transportScheme media:(bool)media isProxy:(bool)isProxy; - (void)updateAuthInfoForDatacenterWithId:(NSInteger)datacenterId authInfo:(MTDatacenterAuthInfo *)authInfo; - (bool)isPasswordInputRequiredForDatacenterWithId:(NSInteger)datacenterId; - (bool)updatePasswordInputRequiredForDatacenterWithId:(NSInteger)datacenterId required:(bool)required; - (void)scheduleSessionCleanupForAuthKeyId:(int64_t)authKeyId sessionInfo:(MTSessionInfo *)sessionInfo; - (void)collectSessionIdsForCleanupWithAuthKeyId:(int64_t)authKeyId completion:(void (^)(NSArray *sessionIds))completion; - (void)sessionIdsDeletedForAuthKeyId:(int64_t)authKeyId sessionIds:(NSArray *)sessionIds; - (NSArray *)knownDatacenterIds; - (void)enumerateAddressSetsForDatacenters:(void (^)(NSInteger datacenterId, MTDatacenterAddressSet *addressSet, BOOL *stop))block; - (MTDatacenterAddressSet *)addressSetForDatacenterWithId:(NSInteger)datacenterId; - (void)reportTransportSchemeFailureForDatacenterId:(NSInteger)datacenterId transportScheme:(MTTransportScheme *)transportScheme; - (void)reportTransportSchemeSuccessForDatacenterId:(NSInteger)datacenterId transportScheme:(MTTransportScheme *)transportScheme; - (void)invalidateTransportSchemesForDatacenterIds:(NSArray * _Nonnull)datacenterIds; - (void)invalidateTransportSchemesForKnownDatacenterIds; - (MTTransportScheme * _Nullable)chooseTransportSchemeForConnectionToDatacenterId:(NSInteger)datacenterId schemes:(NSArray * _Nonnull)schemes; - (NSArray * _Nonnull)transportSchemesForDatacenterWithId:(NSInteger)datacenterId media:(bool)media enforceMedia:(bool)enforceMedia isProxy:(bool)isProxy; - (void)transportSchemeForDatacenterWithIdRequired:(NSInteger)datacenterId media:(bool)media; - (void)invalidateTransportSchemeForDatacenterId:(NSInteger)datacenterId transportScheme:(MTTransportScheme *)transportScheme isProbablyHttp:(bool)isProbablyHttp media:(bool)media; - (void)revalidateTransportSchemeForDatacenterId:(NSInteger)datacenterId transportScheme:(MTTransportScheme *)transportScheme media:(bool)media; - (MTDatacenterAuthInfo *)authInfoForDatacenterWithId:(NSInteger)datacenterId; - (NSArray *)publicKeysForDatacenterWithId:(NSInteger)datacenterId; - (void)updatePublicKeysForDatacenterWithId:(NSInteger)datacenterId publicKeys:(NSArray *)publicKeys; - (void)publicKeysForDatacenterWithIdRequired:(NSInteger)datacenterId; - (void)removeAllAuthTokens; - (id)authTokenForDatacenterWithId:(NSInteger)datacenterId; - (void)updateAuthTokenForDatacenterWithId:(NSInteger)datacenterId authToken:(id)authToken; - (void)addressSetForDatacenterWithIdRequired:(NSInteger)datacenterId; - (void)authInfoForDatacenterWithIdRequired:(NSInteger)datacenterId isCdn:(bool)isCdn; - (void)tempAuthKeyForDatacenterWithIdRequired:(NSInteger)datacenterId keyType:(MTDatacenterAuthTempKeyType)keyType; - (void)authTokenForDatacenterWithIdRequired:(NSInteger)datacenterId authToken:(id)authToken masterDatacenterId:(NSInteger)masterDatacenterId; - (void)reportProblemsWithDatacenterAddressForId:(NSInteger)datacenterId address:(MTDatacenterAddress *)address; - (void)updateApiEnvironment:(MTApiEnvironment *(^)(MTApiEnvironment *))f; - (void)beginExplicitBackupAddressDiscovery; @end