//
//     Generated by class-dump 3.5 (64 bit).
//
//     class-dump is Copyright (C) 1997-1998, 2000-2001, 2004-2013 by Steve Nygard.
//

#pragma mark Blocks

typedef void (^CDUnknownBlockType)(void); // return type and parameters are unknown

#pragma mark Named Structures


#pragma mark -

//
// File: Versions/A/IMFoundation
// UUID: 098F3A98-2184-32EF-8EC9-87B892CD85CA
//
//                           Arch: x86_64
//                Current version: 800.0.0
//          Compatibility version: 1.0.0
//                 Source version: 725.37.0.0.0
//
// Objective-C Garbage Collection: Unsupported
//

@protocol IMAVDaemonProtocol <NSObject>
- (void)stopPreview;
- (void)startPreview;
@end

@class IMConnectionMonitor;
@protocol IMConnectionMonitorDelegate
- (void)connectionMonitorDidUpdate:(IMConnectionMonitor *)arg1;
@end

@class IMFileCopier;
@protocol IMFileCopierDelegate
- (void)fileCopierDidFinish:(IMFileCopier *)arg1;
- (void)fileCopierDidStart:(IMFileCopier *)arg1;
@end

@class IMReachability;
@protocol IMReachabilityDelegate
- (void)reachabilityDidChange:(IMReachability *)arg1;
@end

@protocol IMUserDefaults <NSObject>
- (id)copyValueForKey:(NSString *)arg1 applicationID:(struct __CFString *)arg2 userName:(struct __CFString *)arg3 hostName:(struct __CFString *)arg4;
- (NSDictionary *)copyMultipleForCurrentKeys:(NSArray *)arg1 applicationID:(struct __CFString *)arg2 userName:(struct __CFString *)arg3 hostName:(struct __CFString *)arg4;
- (NSArray *)copyKeyListForApplicationID:(struct __CFString *)arg1 userName:(struct __CFString *)arg2 hostName:(struct __CFString *)arg3;
- (void)synchronizeApplicationID:(struct __CFString *)arg1 userName:(struct __CFString *)arg2 hostName:(struct __CFString *)arg3;
- (void)setMultiple:(NSDictionary *)arg1 remove:(NSArray *)arg2 applicationID:(struct __CFString *)arg3 userName:(struct __CFString *)arg4 hostName:(struct __CFString *)arg5;
- (void)setValue:(void *)arg1 forKey:(NSString *)arg2 applicationID:(struct __CFString *)arg3 userName:(struct __CFString *)arg4 hostName:(struct __CFString *)arg5;
- (id)copyValueForKey:(NSString *)arg1 appID:(NSString *)arg2;
- (NSDictionary *)copyMultipleForCurrentKeys:(NSArray *)arg1 appID:(NSString *)arg2;
- (NSArray *)copyKeyListForAppID:(NSString *)arg1;
- (void)synchronizeAppID:(NSString *)arg1;
- (void)setMultiple:(NSDictionary *)arg1 remove:(NSArray *)arg2 appID:(NSString *)arg3;
- (void)setValue:(void *)arg1 forKey:(NSString *)arg2 appID:(NSString *)arg3;
- (void)setAppBool:(BOOL)arg1 forKey:(NSString *)arg2;
- (BOOL)appBoolForKey:(NSString *)arg1;
- (void)removeAppValueForKey:(NSString *)arg1;
- (void)setAppValue:(id)arg1 forKey:(NSString *)arg2;
- (id)appValueForKey:(NSString *)arg1;
- (void)setAppBool:(BOOL)arg1 byHostForKey:(NSString *)arg2;
- (BOOL)appBoolByHostForKey:(NSString *)arg1;
@end

@interface IMPair : NSObject <NSCopying>
{
    id _first;
    id _second;
}

+ (id)pairWithFirst:(id)arg1 second:(id)arg2;
@property(retain) id second; // @synthesize second=_second;
@property(retain) id first; // @synthesize first=_first;
- (BOOL)isEqual:(id)arg1;
- (unsigned long long)hash;
- (id)copyWithZone:(struct _NSZone *)arg1;
- (void)dealloc;
- (id)initWithFirst:(id)arg1 second:(id)arg2;

@end

@interface IMSystemProxySettingsFetcher : NSObject
{
    unsigned short _port;
    unsigned short _proxyPort;
    id _delegate;
    NSString *_host;
    long long _proxyProtocol;
    NSString *_proxyHost;
    NSString *_proxyAccount;
    NSString *_proxyPassword;
}

@property(copy, nonatomic) NSString *_proxyPassword; // @synthesize _proxyPassword;
@property(copy, nonatomic) NSString *_proxyAccount; // @synthesize _proxyAccount;
@property(nonatomic) unsigned short _proxyPort; // @synthesize _proxyPort;
@property(copy, nonatomic) NSString *_proxyHost; // @synthesize _proxyHost;
@property(nonatomic) long long _proxyProtocol; // @synthesize _proxyProtocol;
@property(nonatomic) unsigned short _port; // @synthesize _port;
@property(copy, nonatomic) NSString *_host; // @synthesize _host;
@property id delegate; // @synthesize delegate=_delegate;
- (void)dealloc;
- (void)retrieveProxyAccountSettings;
- (void)retrieveProxySettings;
- (id)initWithProxyProtocol:(long long)arg1 proxyHost:(id)arg2 proxyPort:(unsigned short)arg3 delegate:(id)arg4;
- (id)initWithHost:(id)arg1 port:(unsigned short)arg2 delegate:(id)arg3;
- (void)_takeProxySettingsFromDictionary:(struct __CFDictionary *)arg1;
- (void)_getProxyAccountAndPasswordFromKeychain;
- (void)_callAccountSettingsDelegateMethod;
- (void)_callProxySettingsDelegateMethod;

@end

@interface IMInvocationTrampoline : NSObject
{
    id _target;
}

@property(retain) id target; // @synthesize target=_target;
- (void)forwardInvocation:(id)arg1;
- (BOOL)respondsToSelector:(SEL)arg1;
- (id)methodSignatureForSelector:(SEL)arg1;
- (void)performInvocation:(id)arg1;
- (void)dealloc;

@end

@interface IMThreadedInvocationTrampoline : IMInvocationTrampoline
{
    NSThread *_thread;
    BOOL _immediateForMatchingThread;
}

- (void)forwardInvocation:(id)arg1;
- (void)dealloc;
- (id)initWithTarget:(id)arg1 thread:(id)arg2 immediateForMatchingThread:(BOOL)arg3;

@end

@interface IMDelayedInvocationTrampoline : IMInvocationTrampoline
{
    NSArray *_modes;
    double _delay;
}

- (void)forwardInvocation:(id)arg1;
- (void)dealloc;
- (id)initWithTarget:(id)arg1 delay:(double)arg2 modes:(id)arg3;

@end

@interface IMCapturedInvocationTrampoline : IMInvocationTrampoline
{
//    id *_outInvocation;
}

- (void)forwardInvocation:(id)arg1;
- (id)initWithTarget:(id)arg1 outInvocation:(id *)arg2;

@end

@interface IMFileManager : NSFileManager
{
}

+ (id)defaultHFSFileManager;
+ (id)defaultManager;
- (id)UTITypeOfPathExtension:(id)arg1;
- (id)UTITypeOfPath:(id)arg1;
- (id)pathExtensionForUTIType:(id)arg1;
- (id)MIMETypeOfPath:(id)arg1;
- (id)MIMETypeOfPathExtension:(id)arg1;
- (id)UTITypeOfMimeType:(id)arg1;
- (id)pathExtensionForMIMEType:(id)arg1;
- (id)displayNameOfFileWithName:(id)arg1 hfsFlags:(unsigned short)arg2;
- (id)kindStringForFileWithName:(id)arg1 hfsType:(unsigned int)arg2 hfsCreator:(unsigned int)arg3 hfsFlags:(unsigned short)arg4;
- (id)kindStringForFile:(id)arg1;
- (BOOL)setAttributes:(id)arg1 ofItemAtPath:(id)arg2 error:(id *)arg3;
- (id)attributesOfItemAtPath:(id)arg1 error:(id *)arg2;
- (BOOL)existingPath:(id)arg1 toFSSpec:(void *)arg2;
- (BOOL)existingPath:(id)arg1 toFSRef:(void *)arg2;
- (id)createTempFileBasedOnName:(id)arg1 hfsType:(unsigned int)arg2 hfsCreator:(unsigned int)arg3 hfsFlags:(unsigned short)arg4;

@end

@interface IMNetworkManager : NSObject
{
}

+ (id)sharedInstance;
+ (id)alloc;

@end


@interface IMMobileNetworkManager : IMNetworkManager
{
    BOOL _registered;
    BOOL _shouldBringUpDataContext;
    BOOL _isDataContextAttached;
    BOOL _isDataContextActive;
    BOOL _isDataIndicatorNone;
    BOOL _isDataContextUsable;
    NSRecursiveLock *_lock;
    NSMutableSet *_cellAutoAssociationTokens;
    NSMutableSet *_wiFiAutoAssociationTokens;
}

@property(retain, nonatomic) NSMutableSet *wiFiAutoAssociationTokens; // @synthesize wiFiAutoAssociationTokens=_wiFiAutoAssociationTokens;
@property(nonatomic) BOOL isDataContextUsable; // @synthesize isDataContextUsable=_isDataContextUsable;
@property(nonatomic) BOOL isDataIndicatorNone; // @synthesize isDataIndicatorNone=_isDataIndicatorNone;
@property(nonatomic) BOOL isDataContextActive; // @synthesize isDataContextActive=_isDataContextActive;
@property(nonatomic) BOOL isDataContextAttached; // @synthesize isDataContextAttached=_isDataContextAttached;
@property(nonatomic) BOOL shouldBringUpDataContext; // @synthesize shouldBringUpDataContext=_shouldBringUpDataContext;
@property(nonatomic) BOOL registered; // @synthesize registered=_registered;
@property(retain, nonatomic) NSMutableSet *cellularAutoAssociationTokens; // @synthesize cellularAutoAssociationTokens=_cellAutoAssociationTokens;
@property(retain, nonatomic) NSRecursiveLock *lock; // @synthesize lock=_lock;
- (void)setDataConnectionActive:(BOOL)arg1;
@property(readonly, nonatomic) BOOL isDataConnectionActive;
@property(readonly, nonatomic) BOOL isDataSwitchEnabled;
@property(readonly, nonatomic) BOOL hasLTEDataConnection;
@property(readonly, nonatomic) BOOL has2GDataConnection;
@property(readonly, nonatomic) BOOL dataConnectionExists;
- (BOOL)_legacy_inValidSIMState;
@property(readonly, nonatomic) BOOL inValidSIMState;
- (void)showSIMUnlock;
- (id)_telephonyDataSIMStatus;
@property(readonly, nonatomic) BOOL isSIMLocked;
@property(readonly, nonatomic) BOOL isSIMRemoved;
@property(readonly, nonatomic) BOOL requiresSIMInserted;
- (void)_makeDataConnectionAvailable:(BOOL)arg1;
- (BOOL)_isDataConnectionAvailable;
- (void)removeCellularAutoAssociationClientToken:(id)arg1;
- (void)addCellularAutoAssociationClientToken:(id)arg1;
@property(readonly, nonatomic) BOOL autoAssociateCellular;
- (void)showNetworkOptions;
- (void)removeWiFiAutoAssociationClientToken:(id)arg1;
- (void)addWiFiAutoAssociationClientToken:(id)arg1;
@property(readonly, nonatomic) BOOL autoAssociateWiFi;
@property(readonly, nonatomic) BOOL isWiFiCaptive;
@property(readonly, nonatomic) BOOL isWiFiEnabled;
@property(readonly, nonatomic) BOOL isWiFiAssociated;
@property(readonly, nonatomic) BOOL isWiFiUsable;
@property(readonly, retain, nonatomic) NSNumber *wiFiScaledRate;
@property(readonly, retain, nonatomic) NSNumber *wiFiScaledRSSI;
@property(readonly, retain, nonatomic) NSNumber *wiFiSignalStrength;
@property(readonly, nonatomic) BOOL willTryToSearchForWiFiNetwork;
@property(readonly, nonatomic) BOOL willTryToAutoAssociateWiFiNetwork;
@property(readonly, nonatomic) BOOL isHostingWiFiHotSpot;
- (void)removeFastDormancyDisableToken:(id)arg1;
- (void)addFastDormancyDisableToken:(id)arg1;
@property(readonly, nonatomic) BOOL disableFastDormancy;
- (void)_lockedAdjustCellularAutoAssociation;
- (void)_adjustCellularAutoAssociation;
@property(readonly, nonatomic) BOOL isAirplaneModeEnabled;
- (void)cutWiFiManagerLinkDidChange:(id)arg1 context:(id)arg2;
- (void)dealloc;
- (id)init;

@end

@interface IMInvocationQueue : NSObject
{
    BOOL _holdQueue;
    id _delegate;
    id _target;
    double _dequeueRate;
    NSMutableArray *_queue;
    NSMutableArray *_options;
    NSProtocolChecker *_protocolChecker;
}

@property(readonly, nonatomic) BOOL holdQueue; // @synthesize holdQueue=_holdQueue;
@property(readonly, retain, nonatomic) NSProtocolChecker *protocolChecker; // @synthesize protocolChecker=_protocolChecker;
@property(readonly, retain, nonatomic) NSMutableArray *options; // @synthesize options=_options;
@property(readonly, retain, nonatomic) NSMutableArray *queue; // @synthesize queue=_queue;
@property(nonatomic) double dequeueRate; // @synthesize dequeueRate=_dequeueRate;
@property id target; // @synthesize target=_target;
@property id delegate; // @synthesize delegate=_delegate;
- (id)peek;
@property(readonly, nonatomic) BOOL isEmpty;
@property(readonly, nonatomic) unsigned long long count;
- (void)invokeAll;
- (void)removeAllInvocations;
- (id)_dequeueInvocation;
- (long long)_enqueueInvocation:(id)arg1 options:(unsigned long long)arg2;
- (BOOL)_insertInvocation:(id)arg1 options:(unsigned long long)arg2;
- (BOOL)_replaceSimilarInvocation:(id)arg1;
- (BOOL)_acceptsOptions:(unsigned long long)arg1;
- (int)_maxQueueLimitSize;
- (int)_numberOfLimitedMessagesInQueue;
- (unsigned long long)_optionsForInvocation:(id)arg1;
- (void)_checkQueue;
- (BOOL)_invokeInvocation:(id)arg1;
- (void)_setQueueTimer;
- (void)_releaseQueueNotification:(id)arg1;
- (void)_holdQueueNotification:(id)arg1;
- (void)_stepQueueNotification:(id)arg1;
@property(retain, nonatomic) Protocol *protocol;
- (id)methodSignatureForSelector:(SEL)arg1;
- (void)forwardInvocation:(id)arg1;
- (void)dealloc;
- (id)init;

@end

@interface IMUserDefaults : NSObject <IMUserDefaults>
{
}

+ (BOOL)isLiveDeliveryWarmUpEnabled;
+ (void)setEnableLiveDeliveryWarmUp:(BOOL)arg1;
+ (BOOL)isDebugPiscoLoggingEnabled;
+ (BOOL)isDeviceScoringEnabled;
+ (BOOL)isBAACertDisabled;
+ (BOOL)isAbsintheV4Enabled;
+ (BOOL)isPiscoDisabled;
+ (id)phoneNumberValidationPreflightTestData;
+ (void)setPhoneNumberValidationPreflightTestData:(id)arg1;
+ (long long)phoneNumberValidationMode;
+ (void)setPhoneNumberValidationMode:(long long)arg1;
+ (BOOL)isEngramEnabled;
+ (void)setEnableEngram:(BOOL)arg1;
+ (id)sharedDefaults;
- (id)copyValueForKey:(id)arg1 applicationID:(struct __CFString *)arg2 userName:(struct __CFString *)arg3 hostName:(struct __CFString *)arg4;
- (id)copyMultipleForCurrentKeys:(id)arg1 applicationID:(struct __CFString *)arg2 userName:(struct __CFString *)arg3 hostName:(struct __CFString *)arg4;
- (id)copyKeyListForApplicationID:(struct __CFString *)arg1 userName:(struct __CFString *)arg2 hostName:(struct __CFString *)arg3;
- (void)synchronizeApplicationID:(struct __CFString *)arg1 userName:(struct __CFString *)arg2 hostName:(struct __CFString *)arg3;
- (void)setMultiple:(id)arg1 remove:(id)arg2 applicationID:(struct __CFString *)arg3 userName:(struct __CFString *)arg4 hostName:(struct __CFString *)arg5;
- (void)setValue:(void *)arg1 forKey:(id)arg2 applicationID:(struct __CFString *)arg3 userName:(struct __CFString *)arg4 hostName:(struct __CFString *)arg5;
- (id)copyValueForKey:(id)arg1 appID:(id)arg2;
- (id)copyMultipleForCurrentKeys:(id)arg1 appID:(id)arg2;
- (id)copyKeyListForAppID:(id)arg1;
- (void)synchronizeAppID:(id)arg1;
- (void)setMultiple:(id)arg1 remove:(id)arg2 appID:(id)arg3;
- (void)setValue:(void *)arg1 forKey:(id)arg2 appID:(id)arg3;
- (void)setAppBool:(BOOL)arg1 forKey:(id)arg2;
- (BOOL)appBoolForKey:(id)arg1;
- (void)removeAppValueForKey:(id)arg1;
- (void)setAppValue:(id)arg1 forKey:(id)arg2;
- (id)appValueForKey:(id)arg1;
- (void)setAppBool:(BOOL)arg1 byHostForKey:(id)arg2;
- (BOOL)appBoolByHostForKey:(id)arg1;

// Remaining properties
@property(readonly, copy) NSString *debugDescription;
@property(readonly, copy) NSString *description;

@property(readonly) Class superclass;

@end

@interface IMDeviceSupport : NSObject
{
    NSString *_model;
    NSString *_productName;
    NSString *_productVersion;
    NSString *_buildVersion;
    NSRecursiveLock *_lock;
}

+ (id)marketingNameForModel:(id)arg1;
+ (id)sharedInstance;
@property(readonly, nonatomic) NSString *deviceInformationString;
@property(readonly, nonatomic) NSString *productBuildVersion;
@property(readonly, nonatomic) NSString *productVersion;
@property(readonly, nonatomic) NSString *productName;
@property(readonly, nonatomic) NSString *userAgentString;
- (void)_generateProductInformation;
@property(readonly, nonatomic) NSString *model;
- (void)dealloc;
- (id)init;

@end

@interface IMManualUpdater : NSObject
{
    id _target;
    SEL _action;
    unsigned int _needsUpdate:1;
}

@property(nonatomic) SEL action; // @synthesize action=_action;
@property(nonatomic) id target; // @synthesize target=_target;
@property(nonatomic) BOOL needsUpdate; // @dynamic needsUpdate;
- (void)updateIfNeeded;
- (void)setNeedsUpdate;
- (id)initWithTarget:(id)arg1 action:(SEL)arg2;
- (id)description;

@end

@interface IMScheduledUpdater : IMManualUpdater
{
    NSCountedSet *_holdingUpdatesKeys;
}

@property(retain, nonatomic) NSCountedSet *holdingUpdatesKeys; // @synthesize holdingUpdatesKeys=_holdingUpdatesKeys;
- (void)invalidate;
- (BOOL)isHoldingUpdatesForKey:(id)arg1;
- (BOOL)isHoldingUpdates;
- (void)endHoldingUpdatesForAllKeys;
- (void)endHoldingUpdatesForKey:(id)arg1;
- (void)beginHoldingUpdatesForKey:(id)arg1;
- (void)updateIfNeeded;
- (void)setNeedsUpdate;
- (id)initWithTarget:(id)arg1 action:(SEL)arg2;
- (id)description;
- (void)dealloc;

@end

@interface IMMessageContext : NSObject
{
    NSObject<OS_xpc_object> *_xpcMessage;
//    IMLocalObject *_localObject;
    id _context;
    BOOL _boost;
//    NSObject<OS_voucher> *_voucher;
}

//@property(retain) NSObject<OS_voucher> *voucher; // @synthesize voucher=_voucher;
@property(retain) id context; // @synthesize context=_context;
@property BOOL shouldBoost; // @synthesize shouldBoost=_boost;
//@property(retain) IMLocalObject *localObject; // @synthesize localObject=_localObject;
@property(retain) NSObject<OS_xpc_object> *xpcMessage; // @synthesize xpcMessage=_xpcMessage;
- (void)dealloc;
- (id)init;

@end

@interface NetworkChangeNotifier : NSObject <IMSystemMonitorListener, IMConnectionMonitorDelegate>
{
    BOOL _lastPostedNetworkUp;
    struct __SCDynamicStore *_store;
    NSString *_myIP;
    NSArray *_myIPs;
    IMConnectionMonitor *_connectionMonitor;
}

+ (void)disableNotifications;
+ (BOOL)enableNotifications;
+ (id)sharedInstance;
@property(nonatomic) BOOL lastPostedNetworkUp; // @synthesize lastPostedNetworkUp=_lastPostedNetworkUp;
@property(retain, nonatomic) IMConnectionMonitor *connectionMonitor; // @synthesize connectionMonitor=_connectionMonitor;
@property(retain, nonatomic) NSArray *myIPs; // @synthesize myIPs=_myIPs;
@property(retain, nonatomic) NSString *myIP; // @synthesize myIP=_myIP;
@property(nonatomic) struct __SCDynamicStore *store; // @synthesize store=_store;
- (id)primaryInterfaceName;
- (BOOL)isPrimaryCellular;
@property(readonly, nonatomic) BOOL isNetworkUp;
- (void)connectionMonitorDidUpdate:(id)arg1;
- (unsigned long long)linkQualityForInterfaceType:(unsigned long long)arg1;
- (int)linkQualityValueForInterface:(id)arg1;
- (int)linkQualityValueForInterfaceType:(unsigned long long)arg1;
@property(readonly, nonatomic) struct __SCDynamicStore *getDynamicStore;
@property(readonly, nonatomic) NSString *myIPAddress;
@property(readonly, nonatomic) NSString *myGatewayAddress;
@property(readonly, nonatomic) NSArray *myIPAddresses;
- (void)dealloc;
- (id)init;
- (BOOL)_listenForChanges;
- (void)systemDidWake;
- (void)systemWillSleep;
- (void)_clearIPCache;

@end

@interface _IMTimingInstance : NSObject
{
    double _startTiming;
    double _stopTiming;
    double _totalTime;
    BOOL _isRunning;
}

+ (id)createTimingInstanceWithStartTime:(float)arg1;
@property(nonatomic) BOOL isRunning; // @synthesize isRunning=_isRunning;
@property(nonatomic) double totalTime; // @synthesize totalTime=_totalTime;
- (id)description;
- (void)stopUsingTime:(double)arg1;
- (void)startUsingTime:(double)arg1;
- (id)init;

@end

@interface IMTimingCollection : NSObject
{
    NSMutableDictionary *_timings;
    NSObject<OS_dispatch_queue> *_queue;
}

- (BOOL)hasKey:(id)arg1;
- (id)description;
- (void)removeTimingForKey:(id)arg1;
- (double)totalTimeForKey:(id)arg1;
- (void)stopTimingForKey:(id)arg1;
- (void)startTimingForKey:(id)arg1;
- (void)dealloc;
- (id)init;

@end

@interface IMMultiDict : NSObject
{
    NSMutableDictionary *_dictionary;
    unsigned long long _count;
}

@property(readonly, nonatomic) unsigned long long count; // @synthesize count=_count;
@property(retain, nonatomic) NSMutableDictionary *dictionary; // @synthesize dictionary=_dictionary;
@property(readonly, nonatomic) NSArray *allKeys;
- (void)enumerateKeysAndObjectsUsingBlock:(CDUnknownBlockType)arg1;
- (unsigned long long)countForKey:(id)arg1;
- (void)removeObject:(id)arg1 forKey:(id)arg2;
- (void)removeAllObjects;
- (void)removeObjectsForKey:(id)arg1;
- (id)objectsForKey:(id)arg1;
- (id)dequeueObjectForKey:(id)arg1;
- (id)headObjectForKey:(id)arg1;
- (void)enqueueObject:(id)arg1 forKey:(id)arg2;
- (id)popObjectForKey:(id)arg1;
- (id)peekObjectForKey:(id)arg1;
- (void)pushObject:(id)arg1 forKey:(id)arg2;
- (id)description;
- (id)init;
- (void)dealloc;

@end

@interface IMURLResponseToPlist : NSObject
{
}

+ (void)generate:(id)arg1 data:(id)arg2 toFilePath:(id)arg3;

@end

@interface IMMockURLResponse : NSObject <NSSecureCoding>
{
    NSHTTPURLResponse *_response;
    NSData *_data;
    NSString *_requestBodyKeyPath;
    NSString *_mockID;
}

+ (id)objectFromPlist:(id)arg1;
+ (BOOL)supportsSecureCoding;
@property(copy) NSString *mockID; // @synthesize mockID=_mockID;
@property(copy) NSString *requestBodyKeyPath; // @synthesize requestBodyKeyPath=_requestBodyKeyPath;
@property(retain) NSData *data; // @synthesize data=_data;
@property(retain) NSHTTPURLResponse *response; // @synthesize response=_response;
- (void)dealloc;
- (id)initWithCoder:(id)arg1;
- (void)encodeWithCoder:(id)arg1;

@end

@interface IMAllocTracking : NSObject
{
    NSMutableArray *_callStacks;
}

- (void)dealloc;
- (oneway void)release;
- (id)retain;
- (void)_registerCallstack;

@end

@interface IMSystemMonitor : NSObject
{
    BOOL _watchesDataProtectionLockState;
    BOOL _watchesScreenLightState;
    BOOL _receivesMemoryWarnings;
    BOOL _willSleep;
    BOOL _screenLocked;
    BOOL _screensaverActive;
    BOOL _watchesSystemLockState;
    BOOL _underFirstLock;
    BOOL _active;
    BOOL _backingUp;
    BOOL _switchedOut;
    BOOL _screenLit;
    BOOL _systemLocked;
    BOOL _idleOverride;
    BOOL _usesPowerNotifications;
    BOOL _usesSystemIdleState;
    BOOL _inBackground;
    int _dataProtectionState;
    int _userIdleToken;
    NSMutableArray *_listeners;
    NSDate *_idleStart;
    NSTimer *_timer;
    NSDate *_dateScreenLightLastChanged;
    NSDate *_dateSystemLockLastChanged;
    NSString *_userID;
    double _delayTime;
    NSMutableArray *_earlyListeners;
    long long _resignActiveCount;
    struct _opaque_pthread_mutex_t _ivarLock;
}

+ (id)sharedInstance;
@property(nonatomic) long long resignActiveCount; // @synthesize resignActiveCount=_resignActiveCount;
@property(nonatomic) struct _opaque_pthread_mutex_t ivarLock; // @synthesize ivarLock=_ivarLock;
@property(nonatomic) int userIdleToken; // @synthesize userIdleToken=_userIdleToken;
@property(retain, nonatomic) NSMutableArray *_earlyListeners; // @synthesize _earlyListeners;
@property(nonatomic) BOOL _idleOverride; // @synthesize _idleOverride;
@property(nonatomic) double _delayTime; // @synthesize _delayTime;
@property(retain, nonatomic) NSString *_userID; // @synthesize _userID;
@property(retain, nonatomic) NSTimer *_timer; // @synthesize _timer;
@property(retain, nonatomic) NSDate *_idleStart; // @synthesize _idleStart;
@property(retain, nonatomic) NSMutableArray *_listeners; // @synthesize _listeners;
@property(nonatomic) BOOL isFastUserSwitched; // @synthesize isFastUserSwitched=_switchedOut;
@property(nonatomic) BOOL _underFirstLock; // @synthesize _underFirstLock;
@property(nonatomic) int _dataProtectionState; // @synthesize _dataProtectionState;
@property(nonatomic) BOOL receivesMemoryWarnings; // @synthesize receivesMemoryWarnings=_receivesMemoryWarnings;
- (void)_receivedMemoryNotification;
- (void)_unregisterForLoginWindowNotifications;
- (void)_registerForLoginWindowNotifications;
- (void)_handleLoginWindowNotification:(id)arg1;
- (void)_forceSuspended;
- (void)_forceResumed;
@property(readonly, nonatomic) BOOL isSetup;
- (void)_unregisterForRestoreNotifications;
- (void)_registerForRestoreNotifications;
- (void)_setupStateChanged;
- (void)_restoreDidStop;
- (void)_restoreDidStart;
- (void)_checkRestoredFromBackup;
- (void)removeListener:(id)arg1;
- (void)addListener:(id)arg1;
- (void)_removeEarlyListener:(id)arg1;
- (void)_addEarlyListener:(id)arg1;
- (void)_systemWillShutdown;
@property(readonly, nonatomic) BOOL systemIsShuttingDown;
@property(readonly, nonatomic) double systemIdleTime;
- (BOOL)_alreadyLocked_isSystemIdle;
@property(readonly, nonatomic) BOOL isSystemIdle;
- (void)_checkIdleTime:(id)arg1;
- (void)_alreadyLocked_clearIdleTimer;
- (void)_clearIdleTimer;
- (void)_armIdleTimer;
- (void)_overrideAndDisableIdleTimer:(BOOL)arg1;
- (void)_setIdleState:(BOOL)arg1;
@property(nonatomic) BOOL usesSystemIdleState; // @synthesize usesSystemIdleState=_usesSystemIdleState;
- (void)_updateIdleState;
- (void)_setSystemLockState:(BOOL)arg1;
- (void)_setSystemScreenState:(BOOL)arg1;
@property(nonatomic) BOOL usesPowerNotifications; // @synthesize usesPowerNotifications=_usesPowerNotifications;
@property(nonatomic) BOOL watchesScreenLightState; // @synthesize watchesScreenLightState=_watchesScreenLightState;
@property(nonatomic) BOOL watchesSystemLockState; // @synthesize watchesSystemLockState=_watchesSystemLockState;
@property(nonatomic) BOOL watchesDataProtectionLockState; // @synthesize watchesDataProtectionLockState=_watchesDataProtectionLockState;
@property(readonly, nonatomic) BOOL isUnderFirstDataProtectionLock;
- (BOOL)_isUnderDataProtectionLockForState:(int)arg1;
@property(readonly, nonatomic) BOOL isUnderDataProtectionLock;
- (void)_setDataProtectionLockState:(int)arg1;
- (BOOL)_deviceStillUnderFirstLock;
- (void)_applicationDidRemoveDeactivationReason:(id)arg1;
- (void)_applicationWillAddDeactivationReason:(id)arg1;
- (void)_applicationDidEnterBackground:(id)arg1;
- (void)_applicationWillEnterForeground:(id)arg1;
- (void)_screenSaverStarted:(id)arg1;
- (void)_screenSaverStopped:(id)arg1;
- (void)_postScreenSaverStarted;
- (void)_notificationCenterDidDisappear:(id)arg1;
- (void)_notificationCenterWillAppear:(id)arg1;
- (void)_resume:(id)arg1;
- (void)_suspend:(id)arg1;
- (void)_resumeEventsOnly:(id)arg1;
- (void)_suspendEventsOnly:(id)arg1;
- (void)_applicationDidBecomeActive:(id)arg1;
- (void)_applicationWillResignActive:(id)arg1;
@property(readonly, nonatomic) BOOL isScreenLocked; // @synthesize isScreenLocked=_screenLocked;
- (void)_screenUnlocked:(id)arg1;
- (void)_screenLocked:(id)arg1;
- (void)_postScreenLocked;
- (void)_systemWillSleep;
- (void)_systemDidWake;
- (void)_deliverNotificationSelector:(SEL)arg1;
@property(nonatomic, setter=setActive:) BOOL isActive; // @synthesize isActive=_active;
- (void)dealloc;
- (id)init;
@property(readonly, nonatomic) BOOL isInBackground; // @synthesize isInBackground=_inBackground;
@property(readonly, nonatomic) BOOL isSystemLocked; // @synthesize isSystemLocked=_systemLocked;
@property(readonly, nonatomic) BOOL isScreenLit; // @synthesize isScreenLit=_screenLit;
@property(readonly, nonatomic) BOOL isBackingUp; // @synthesize isBackingUp=_backingUp;
@property(readonly, nonatomic) BOOL isScreenSaverActive; // @synthesize isScreenSaverActive=_screensaverActive;
@property(readonly, nonatomic) BOOL systemIsSleeping; // @synthesize systemIsSleeping=_willSleep;
@property(readonly, retain, nonatomic) NSDate *dateSystemLockLastChanged; // @synthesize dateSystemLockLastChanged=_dateSystemLockLastChanged;
@property(readonly, retain, nonatomic) NSDate *dateScreenLightLastChanged; // @synthesize dateScreenLightLastChanged=_dateScreenLightLastChanged;

@end

@interface IMUserNotification : NSObject
{
    id _reserved;
}

+ (id)userNotificationWithIdentifier:(id)arg1 title:(id)arg2 message:(id)arg3 defaultButton:(id)arg4 alternateButton:(id)arg5 otherButton:(id)arg6;
+ (id)userNotificationWithIdentifier:(id)arg1 timeout:(double)arg2 alertLevel:(unsigned long long)arg3 displayFlags:(unsigned long long)arg4 displayInformation:(id)arg5;
- (void)_setResponseFlags:(unsigned long long)arg1 responseInformation:(id)arg2;
@property(readonly, retain, nonatomic) NSDictionary *responseInformation;
@property(readonly, nonatomic) unsigned long long responseFlags;
@property(retain, nonatomic) NSDictionary *userInfo;
@property(nonatomic) BOOL usesNotificationCenter;
@property(nonatomic) BOOL showInLockScreen;
@property(retain, nonatomic) NSString *representedApplicationBundle;
@property(readonly, nonatomic) unsigned long long response;
@property(readonly, retain, nonatomic) NSDictionary *displayInformation;
@property(readonly, nonatomic) unsigned long long displayFlags;
@property(readonly, nonatomic) double timeout;
@property(readonly, retain, nonatomic) id identifier;
- (void)dealloc;
- (id)_initWithIdentifier:(id)arg1 timeout:(double)arg2 displayFlags:(unsigned long long)arg3 displayInformation:(id)arg4;

@end

@interface IMUserNotificationCenter : NSObject
{
    NSMutableDictionary *_identifierToIMUserNotificationQueueMap;
    NSMutableDictionary *_identifierToListenerQueueMap;
    NSMutableDictionary *_identifierToBlockQueueMap;
    NSMutableDictionary *_identifierToRunLoopSourcesMap;
    NSMutableDictionary *_identifierToCFUserNotificationMap;
}

+ (id)sharedInstance;
@property(retain, nonatomic) NSMutableDictionary *identifierToCFUserNotificationMap; // @synthesize identifierToCFUserNotificationMap=_identifierToCFUserNotificationMap;
@property(retain, nonatomic) NSMutableDictionary *identifierToRunLoopSourcesMap; // @synthesize identifierToRunLoopSourcesMap=_identifierToRunLoopSourcesMap;
@property(retain, nonatomic) NSMutableDictionary *identifierToBlockQueueMap; // @synthesize identifierToBlockQueueMap=_identifierToBlockQueueMap;
@property(retain, nonatomic) NSMutableDictionary *identifierToListenerQueueMap; // @synthesize identifierToListenerQueueMap=_identifierToListenerQueueMap;
@property(retain, nonatomic) NSMutableDictionary *identifierToIMUserNotificationQueueMap; // @synthesize identifierToIMUserNotificationQueueMap=_identifierToIMUserNotificationQueueMap;
- (void)removeAllListeners;
- (void)removeListener:(id)arg1;
- (void)removeNotificationsForServiceIdentifier:(id)arg1;
- (unsigned long long)countForIdentifier:(id)arg1;
- (void)addUserNotification:(id)arg1 listener:(id)arg2 completionHandler:(CDUnknownBlockType)arg3;
- (void)addUserNotification:(id)arg1 listener:(id)arg2;
- (void)_handleUserNotification:(struct __CFUserNotification *)arg1 responseFlags:(unsigned long long)arg2;
- (void)_displayNextUserNotificationForIdentifier:(id)arg1;
- (void)_cancelActiveUserNotificationForIdentifier:(id)arg1;
- (void)userNotificationCenter:(id)arg1 didDeliverNotification:(id)arg2;
- (void)userNotificationCenter:(id)arg1 didActivateNotification:(id)arg2;
- (BOOL)userNotificationCenter:(id)arg1 shouldPresentNotification:(id)arg2;
- (void)_enqueueBlock:(CDUnknownBlockType)arg1 forIdentifier:(id)arg2;
- (void)_enqueueListener:(id)arg1 forIdentifier:(id)arg2;
- (void)_enqueueUserNotification:(id)arg1 forIdentifier:(id)arg2;
- (CDUnknownBlockType)_dequeueBlockForIdentifier:(id)arg1;
- (id)_dequeueListenerForIdentifier:(id)arg1;
- (id)_dequeueUserNotificationForIdentifier:(id)arg1;
- (CDUnknownBlockType)_frontBlockForIdentifier:(id)arg1;
- (id)_frontListenerForIdentifier:(id)arg1;
- (id)_frontUserNotificationForIdentifier:(id)arg1;
- (void)dealloc;

@end

@interface IMFileCopier : NSObject
{
    BOOL _shouldCancel;
    BOOL _didErrorOccur;
    BOOL _inProgress;
    id <IMFileCopierDelegate> _delegate;
    NSURL *_inputURL;
    NSURL *_outputURL;
    id _identifier;
    unsigned long long _operation;
    void *_BOMCopier;
    NSObject<OS_dispatch_queue> *_queue;
    CDUnknownBlockType _callback;
}

@property(copy) CDUnknownBlockType _callback; // @synthesize _callback;
@property(retain) NSObject<OS_dispatch_queue> *_queue; // @synthesize _queue;
@property void *_BOMCopier; // @synthesize _BOMCopier;
@property unsigned long long operation; // @synthesize operation=_operation;
@property BOOL inProgress; // @synthesize inProgress=_inProgress;
@property(readonly, nonatomic) BOOL didErrorOccur; // @synthesize didErrorOccur=_didErrorOccur;
@property(readonly, nonatomic) BOOL wasCancelled; // @synthesize wasCancelled=_shouldCancel;
@property(readonly, retain) id identifier; // @synthesize identifier=_identifier;
@property(readonly, retain) NSURL *outputURL; // @synthesize outputURL=_outputURL;
@property(readonly, retain) NSURL *inputURL; // @synthesize inputURL=_inputURL;
@property id <IMFileCopierDelegate> delegate; // @synthesize delegate=_delegate;
- (void)_worker_doCopy;
- (void)_main_copierFinishedWithResult:(id)arg1;
- (void)cleanup;
- (void)cancel;
- (void)start;
- (void)_fillOutputURLFromInputURL;
- (id)_temporaryCopierPath;
- (void)dealloc;
- (id)initWithInputURL:(id)arg1 outputURL:(id)arg2 identifier:(id)arg3 operation:(unsigned long long)arg4 completionBlock:(CDUnknownBlockType)arg5 queue:(id)arg6;
- (id)initWithInputURL:(id)arg1 outputURL:(id)arg2 identifier:(id)arg3 operation:(unsigned long long)arg4 delegate:(id)arg5;

@end

@interface IMReachability : NSObject
{
    BOOL _gettingFlags;
    id <IMReachabilityDelegate> _delegate;
    unsigned long long _flags;
    NSString *_description;
    void *_reachabilityRef;
    NSObject<OS_dispatch_queue> *_queue;
}

+ (id)reachabilityWithLocalAddress:(id)arg1 remoteAddress:(id)arg2;
+ (id)reachabilityWithRemoteAddress:(id)arg1;
+ (id)reachabilityWithHostName:(id)arg1;
@property(retain, nonatomic) NSObject<OS_dispatch_queue> *_queue; // @synthesize _queue;
@property(nonatomic) void *reachabilityRef; // @synthesize reachabilityRef=_reachabilityRef;
@property(retain, nonatomic) NSString *reachabilityDescription; // @synthesize reachabilityDescription=_description;
@property(nonatomic) unsigned long long flags; // @synthesize flags=_flags;
@property(nonatomic) BOOL gettingFlags; // @synthesize gettingFlags=_gettingFlags;
@property(nonatomic) __weak id <IMReachabilityDelegate> delegate; // @synthesize delegate=_delegate;

@property(readonly, nonatomic) BOOL connectionRequired;
- (void)_forceGetFlagsIfNecessary;
//- (void)_handleCallbackForSCNetworkReachability:(struct __SCNetworkReachability *)arg1;
- (id)description;
- (void)dealloc;
- (id)initWithLocalSocketAddress:(id)arg1 remoteSocketAddress:(id)arg2 delegate:(id)arg3;
- (id)initWithRemoteHost:(id)arg1 delegate:(id)arg2;
//- (id)_initWithReachabilityRef:(struct __SCNetworkReachability *)arg1 description:(id)arg2 delegate:(id)arg3;

@end

@interface IMConnectionMonitor : NSObject
{
    NSString *_remoteHost;
    id <IMConnectionMonitorDelegate> _delegate;
}

+ (id)alloc;
@property(nonatomic) id <IMConnectionMonitorDelegate> delegate; // @synthesize delegate=_delegate;
@property(readonly, retain, nonatomic) NSString *remoteHost; // @synthesize remoteHost=_remoteHost;
@property(readonly, nonatomic) BOOL isImmediatelyReachable;
@property(readonly, nonatomic) BOOL requiresDataConnectionActivation;
@property(nonatomic, setter=setDataConnectionActive:) BOOL isDataConnectionActive;
- (void)clear;
- (void)goDisconnected;
- (void)goConnectedWithLocalSocketAddress:(id)arg1 remoteSocketAddress:(id)arg2;
- (void)_setup;
- (void)dealloc;
- (id)initWithRemoteHost:(id)arg1 delegate:(id)arg2;

@end

@interface IMNetworkConnectionMonitor : IMConnectionMonitor <IMSystemMonitorListener, IMReachabilityDelegate>
{
    BOOL _isConnected;
    BOOL _isSleeping;
    IMReachability *_hostReachability;
    IMReachability *_ipReachability;
    unsigned long long _hostFlags;
    unsigned long long _ipFlags;
}

@property(nonatomic) BOOL _isSleeping; // @synthesize _isSleeping;
@property(nonatomic) BOOL _isConnected; // @synthesize _isConnected;
@property(nonatomic) unsigned long long _ipFlags; // @synthesize _ipFlags;
@property(nonatomic) unsigned long long _hostFlags; // @synthesize _hostFlags;
@property(retain, nonatomic) IMReachability *_ipReachability; // @synthesize _ipReachability;
@property(retain, nonatomic) IMReachability *_hostReachability; // @synthesize _hostReachability;
- (BOOL)isImmediatelyReachable;
- (void)clear;
- (void)goDisconnected;
- (void)goConnectedWithLocalSocketAddress:(id)arg1 remoteSocketAddress:(id)arg2;
- (void)_setup;
- (void)systemDidWake;
- (void)systemWillSleep;
- (void)reachabilityDidChange:(id)arg1;
- (void)_setupReachability;
- (void)_doCallbackLater;
- (void)_doCallbackNow;
- (void)_clearReachability:(id *)arg1 flags:(unsigned long long *)arg2;
- (void)dealloc;

@end

@interface IMLocalObjectInternal : NSObject
{
    IMMessageContext *_currentMessageContext;
    NSRecursiveLock *_lock;
    id _target;
    NSObject<OS_xpc_object> *_connection;
    NSObject<OS_dispatch_queue> *_queue;
    NSObject<OS_dispatch_semaphore> *_deathLock;
    NSString *_portName;
    NSString *_processName;
    NSProtocolChecker *_protocolChecker;
    NSMutableArray *_componentQueue;
    NSLock *_componentQueueLock;
    NSRecursiveLock *_componentQueueProcessingLock;
    struct __CFRunLoopSource *_runloopSource;
    BOOL _pendingComponentQueueProcessing;
    BOOL _busyForwarding;
    BOOL _offMainThread;
    NSArray *_whitelistedClasses;
}

- (void)dealloc;

@end

@interface IMLocalObject : NSObject
{
    id _internal;
}

+ (void)initialize;
+ (void)_unregisterIMLocalObject:(id)arg1;
+ (void)_registerIMLocalObject:(id)arg1;
+ (id)_registeredIMLocalObjectForPort:(unsigned int)arg1;
+ (void)_setExceptionHandlingDisabled:(BOOL)arg1;
+ (id)_imLocalObjectQueue;
- (id)description;
- (void)invalidate;
@property(retain, nonatomic) NSArray *whitelistedClasses;
@property(readonly, nonatomic) BOOL isValid;
- (BOOL)isValidSelector:(SEL)arg1;
- (void)_enqueueInvocationWithPriority:(id)arg1 xpcMessage:(id)arg2 priority:(int)arg3;
- (void)_enqueueInvocationWithPriority:(id)arg1 priority:(int)arg2;
- (void)_enqueueInvocation:(id)arg1 xpcMessage:(id)arg2;
- (void)_enqueueInvocation:(id)arg1;
- (void)_popInvocation;
- (id)_peekInvocation;
- (void)_noteNewInvocation;
- (void)_handleNewInvocations;
- (BOOL)handleInvocation:(id)arg1;
- (BOOL)_handleInvocation:(id)arg1;
- (void)_handleInvocationForSendMessage:(id)arg1;
- (id)_currentMessageContext;
@property(retain, nonatomic) NSString *processName;
- (void)setPortName:(id)arg1;
@property(readonly, nonatomic) NSString *portName;
@property(readonly, nonatomic) NSObject<OS_xpc_object> *connection;
- (void)_systemShutdown:(id)arg1;
- (void)terminated;
- (void)_portDidBecomeInvalid;
- (void)_portInterrupted;
- (void)_cancelHandlerCompleted;
- (void)dealloc;
- (void)_clearPort:(BOOL)arg1 signalRunLoopIfNeeded:(BOOL)arg2;
- (void)_clearPort:(BOOL)arg1;
@property(readonly, nonatomic) NSProtocolChecker *protocolChecker;
@property(nonatomic) id target;
- (id)initWithTarget:(id)arg1 portName:(id)arg2 protocol:(id)arg3;
- (id)initWithTarget:(id)arg1 connection:(id)arg2 protocol:(id)arg3 forceSecureCoding:(BOOL)arg4 offMainThread:(BOOL)arg5;
- (id)initWithTarget:(id)arg1 connection:(id)arg2 protocol:(id)arg3 forceSecureCoding:(BOOL)arg4;
- (id)initWithTarget:(id)arg1 connection:(id)arg2 protocol:(id)arg3;
- (id)initWithTarget:(id)arg1 protocol:(id)arg2;

@end

@interface IMRemoteObjectInternal : NSObject
{
    NSRecursiveLock *_lock;
    NSObject<OS_xpc_object> *_connection;
    NSObject<OS_dispatch_queue> *_queue;
    long long _deathPostPredicate;
    Protocol *_protocol;
    NSString *_portName;
    NSString *_processName;
    BOOL _willBeTerminated;
    int _pid;
}

@end

@interface IMRemoteObject : NSObject
{
    id _internal;
}

+ (void)initialize;
+ (void)_unregisterIMRemoteObject:(id)arg1;
+ (void)_registerIMRemoteObject:(id)arg1;
+ (id)_remoteObjects;
- (id)_queue;
- (id)description;
- (void)invalidate;
- (void)setPortName:(id)arg1;
@property(readonly, nonatomic) NSString *portName;
@property(retain, nonatomic) NSString *processName;
@property(nonatomic) int pid;
@property(readonly, nonatomic) NSObject<OS_xpc_object> *connection;
- (void)forwardInvocation:(id)arg1;
- (unsigned long long)forwardXPCObject:(id)arg1 messageContext:(id)arg2;
- (id)methodSignatureForSelector:(SEL)arg1;
- (void)_systemShutdown:(id)arg1;
@property(readonly, nonatomic) BOOL isValid;
- (void)_portDidBecomeInvalid;
- (void)dealloc;
- (void)_cleanupMachBitsCanPost:(BOOL)arg1;
- (id)initWithConnection:(id)arg1 protocol:(id)arg2 alreadyConfigured:(BOOL)arg3;
- (id)initWithConnection:(id)arg1 protocol:(id)arg2 alreadyConfigured:(BOOL)arg3 forceSecureCoding:(BOOL)arg4;
- (id)initWithPortName:(id)arg1 protocol:(id)arg2;
- (id)initWithConnection:(id)arg1 protocol:(id)arg2;
- (id)_initWithConnection:(id)arg1 portName:(id)arg2 protocol:(id)arg3 alreadyConfigured:(BOOL)arg4 forceSecureCoding:(BOOL)arg5;

@end

@interface IMRemoteObjectBroadcaster : NSObject
{
    NSObject<OS_dispatch_queue> *_queue;
}

+ (id)defaultBroadcaster;
- (void)flushProxy:(id)arg1;
- (void)blockUntilSendQueueIsEmpty;
- (id)broadcastProxyForTargets:(id)arg1 messageContext:(id)arg2 protocol:(id)arg3;
- (id)broadcastProxyForTarget:(id)arg1 messageContext:(id)arg2 protocol:(id)arg3 priority:(int)arg4 completion:(CDUnknownBlockType)arg5;
- (id)broadcastProxyForTarget:(id)arg1 messageContext:(id)arg2 protocol:(id)arg3 priority:(int)arg4;
- (id)broadcastProxyForTarget:(id)arg1 messageContext:(id)arg2 protocol:(id)arg3;
- (id)_queue;
- (void)dealloc;
- (id)init;

@end

@interface Broadcaster : NSProxy
{
    NSArray *_targets;
    IMRemoteObjectBroadcaster *_parent;
    Protocol *_protocol;
    IMMessageContext *_messageContext;
    int _curXPCMessagePriority;
    CDUnknownBlockType _completion;
}

@property(nonatomic) int curXPCMessagePriority; // @synthesize curXPCMessagePriority=_curXPCMessagePriority;
- (void)forwardInvocation:(id)arg1;
- (id)methodSignatureForSelector:(SEL)arg1;
- (void)sendXPCObject:(id)arg1;
- (void)dealloc;
- (id)initWithNotifier:(id)arg1 messageContext:(id)arg2 protocol:(id)arg3 targets:(id)arg4 priority:(int)arg5 completion:(CDUnknownBlockType)arg6;
- (id)initWithNotifier:(id)arg1 messageContext:(id)arg2 protocol:(id)arg3 targets:(id)arg4 priority:(int)arg5;
- (id)initWithNotifier:(id)arg1 messageContext:(id)arg2 protocol:(id)arg3 targets:(id)arg4;

@end

@interface IMRGLog : NSObject
{
}

+ (id)watchPairing;
+ (id)voicemailSync;
+ (id)uniqueID;
+ (id)sysdiagnose_oversized;
+ (id)sub_services;
+ (id)sms;
+ (id)serverBag;
+ (id)reloadAccounts;
+ (id)registrationListener;
+ (id)registrationAuthKit;
+ (id)regeneration;
+ (id)queryRetry;
+ (id)pushToken;
+ (id)phoneRepair;
+ (id)pairingProtocolDebug;
+ (id)pairingIdentities;
+ (id)pairing;
+ (id)pairedIdentities;
+ (id)pairedDeviceRepo;
+ (id)nonce;
+ (id)migration;
+ (id)messageDelivery_oversized;
+ (id)liveMigration;
+ (id)keychainManager;
+ (id)keychain;
+ (id)keyRoll;
+ (id)isActive;
+ (id)internalCleanup;
+ (id)iMessageSpam;
+ (id)IMMacNotificationCenterManager;
+ (id)iCloud;
+ (id)healthDebugging;
+ (id)healthDebug;
+ (id)deviceState;
+ (id)deviceIDMap;
+ (id)deviceHeartbeat;
+ (id)dataProtectionClass;
+ (id)classKeys;
+ (id)appleCare;
+ (id)activeID;
+ (id)accountsDebugging;
+ (id)accountUpdate;
+ (id)accountSync;
+ (id)accountEnabled;
+ (id)accountCleanup;
+ (id)OTRStore;
+ (id)NSUUID;
+ (id)NRPairing;
+ (id)IDSService_oversized;
+ (id)IDSService;
+ (id)GDR;
+ (id)FTMessageDelivery_oversized;
+ (id)engram;
+ (id)ACKTracker;
+ (id)warning;
+ (id)registration;

@end

@interface IMCallMonitor : NSObject
{
//    CXCallObserver *_callCenter;
    BOOL _wasOnCall;
    NSDate *_lastCallDate;
}

+ (id)sharedInstance;
@property(readonly, retain, nonatomic) NSDate *dateLastCallEnded; // @synthesize dateLastCallEnded=_lastCallDate;
@property(readonly, nonatomic) BOOL isOnCall;
- (void)dealloc;
- (id)init;

@end


@interface IMDesktopNetworkManager : IMNetworkManager
{
}

@end

@interface IMLockdownManager : NSObject
{
    BOOL _settingUpActivationState;
    BOOL _isInternalInstall;
    BOOL _isCarrierInstall;
    BOOL _isNonUIInstall;
    BOOL _isVendorInstall;
    BOOL _hasShownMismatchedSIM;
    BOOL _hasShownWaitingAlertThisSession;
    unsigned long long _state;
}

+ (id)sharedInstance;
@property(nonatomic) BOOL _hasShownWaitingAlertThisSession; // @synthesize _hasShownWaitingAlertThisSession;
@property(nonatomic) BOOL _hasShownMismatchedSIM; // @synthesize _hasShownMismatchedSIM;
@property(nonatomic) BOOL _isVendorInstall; // @synthesize _isVendorInstall;
@property(nonatomic) BOOL _isNonUIInstall; // @synthesize _isNonUIInstall;
@property(nonatomic) BOOL _isCarrierInstall; // @synthesize _isCarrierInstall;
@property(nonatomic) BOOL _isInternalInstall; // @synthesize _isInternalInstall;
@property(nonatomic) BOOL _settingUpActivationState; // @synthesize _settingUpActivationState;
- (id)description;
@property(readonly, nonatomic) NSString *uniqueDeviceIdentifier;
@property(readonly, nonatomic) BOOL isExpired;
@property(readonly, nonatomic) BOOL isActivated;
@property(readonly, nonatomic) BOOL isCarrierInstall;
- (long long)lockdownState;
@property(readonly, nonatomic) BOOL isInternalInstall;
@property(readonly, nonatomic) BOOL isVendorInstall;
@property(readonly, nonatomic) BOOL isNonUIInstall;
- (void)_calculateInstallType;
- (void)_setupActivationState;
@property(nonatomic, setter=_setState:) unsigned long long _state; // @synthesize _state;
- (void)_resetActivationState;
- (void)dealloc;
- (id)init;

@end

@interface _IMLogFileCompressor : NSObject <IMFileCopierDelegate>
{
    NSMutableArray *_archivers;
}

+ (id)sharedInstance;
- (void)fileCopierDidFinish:(id)arg1;
- (void)fileCopierDidStart:(id)arg1;
- (void)compressPath:(id)arg1 toPath:(id)arg2;
- (void)dealloc;
- (id)init;

@end

@interface IMLogging : NSObject
{
}

+ (void)enableConsoleLoggingForLevel:(int)arg1;
+ (void)logString:(id)arg1 toFolder:(id)arg2 toFileNamed:(id)arg3;
+ (id)timeFormatter;
+ (id)dateFormatter;
+ (id)logFileDirectory;
+ (void)logAtLevel:(int)arg1 type:(id)arg2 category:(id)arg3 insertProcessInfo:(BOOL)arg4 simpleLogString:(id)arg5;
+ (void)logAtLevel:(int)arg1 type:(id)arg2 category:(id)arg3 insertProcessInfo:(BOOL)arg4 simpleLogString:(id)arg5 time:(unsigned long long)arg6;
+ (void)logAtLevel:(int)arg1 type:(id)arg2 category:(id)arg3 insertProcessInfo:(BOOL)arg4 format:(id)arg5 arguments:(struct __va_list_tag [1])arg6;
+ (void)logAtLevel:(int)arg1 type:(id)arg2 category:(id)arg3 insertProcessInfo:(BOOL)arg4 simpleLogString:(id)arg5 format:(id)arg6 arguments:(struct __va_list_tag [1])arg7 time:(unsigned long long)arg8;
+ (void)logAtLevel:(int)arg1 type:(id)arg2 category:(id)arg3 format:(id)arg4 arguments:(struct __va_list_tag [1])arg5;
+ (void)logAtLevel:(int)arg1 type:(id)arg2 category:(id)arg3 insertProcessInfo:(BOOL)arg4 format:(id)arg5;
+ (void)logAtLevel:(int)arg1 type:(id)arg2 category:(id)arg3 format:(id)arg4;
+ (id)stringForDate;
+ (BOOL)loggingEnabledForLevel:(int)arg1;

@end

@interface IMRemoteURLConnectionMockScheduler : NSObject
{
    NSObject<OS_xpc_object> *_connection;
}

- (void)scheduleMockResponse:(id)arg1;
- (void)scheduleMockResponse:(id)arg1 forURL:(id)arg2;
- (BOOL)_connect;
- (id)init;

@end

@interface IMMacNotificationCenterManager : NSObject
{
    NSUserNotificationCenter *_center;
//    APSConnection *_connection;
    NSArray *_topics;
    NSString *_identifier;
}

@property(retain, nonatomic) NSArray *topics; // @synthesize topics=_topics;
- (void)invalidate;
- (void)_cleanupNotificationCenter;
- (void)_NCUpdated:(id)arg1;
- (void)userNotificationCenter:(id)arg1 notificationPreferencesChanged:(unsigned long long)arg2;
- (void)userNotificationCenter:(id)arg1 notificationsDisabled:(BOOL)arg2;
- (void)updateNotificationsStatus;
- (void)enableNotificationCenter:(BOOL)arg1;
- (void)dealloc;
- (id)initWithIdentifier:(id)arg1 topics:(id)arg2 connection:(id)arg3;

@end

@interface IMTimer : NSObject
{
    id _timer;
    id _target;
    NSDictionary *_userInfo;
    NSString *_name;
    double _timeInterval;
    NSObject<OS_dispatch_queue> *_queue;
    SEL _selector;
    BOOL _wakeDevice;
    BOOL _useCurrentRunLoop;
}

@property(readonly, retain, nonatomic) id userInfo; // @synthesize userInfo=_userInfo;
- (void)dealloc;
- (void)invalidate;
@property(readonly, retain, nonatomic) NSDate *fireDate;
- (void)_reschedulePCPersistentTimer;
- (void)setFireTimeInterval:(double)arg1;
- (id)_initWithTimeInterval:(double)arg1 name:(id)arg2 shouldWake:(BOOL)arg3 target:(id)arg4 selector:(SEL)arg5 userInfo:(id)arg6 useCurrentRunLoop:(BOOL)arg7 queue:(id)arg8;
- (id)initWithTimeInterval:(double)arg1 name:(id)arg2 shouldWake:(BOOL)arg3 target:(id)arg4 selector:(SEL)arg5 userInfo:(id)arg6 queue:(id)arg7;
- (id)initWithTimeInterval:(double)arg1 name:(id)arg2 shouldWake:(BOOL)arg3 target:(id)arg4 selector:(SEL)arg5 userInfo:(id)arg6 useCurrentRunLoop:(BOOL)arg7;
- (id)initWithTimeInterval:(double)arg1 name:(id)arg2 shouldWake:(BOOL)arg3 target:(id)arg4 selector:(SEL)arg5 userInfo:(id)arg6;

@end

@interface IMOrderedMutableDictionary : NSObject
{
    NSMutableDictionary *_dictionary;
//    IMDoubleLinkedList *_linkedList;
}

- (BOOL)containsKey:(id)arg1;
- (BOOL)containsOrderedObject:(id)arg1;
- (id)orderedObjects;
- (void)removeOrderedObjectForKey:(id)arg1;
- (id)orderedObjectForKey:(id)arg1;
- (void)setOrderedObject:(id)arg1 forKey:(id)arg2;
- (void)dealloc;
- (id)init;

@end

@interface IMIDSLog : NSObject
{
}

+ (id)dataDetector;
+ (id)daemon;
+ (id)encryption;

@end

@interface _IMNotificationObservationHelper : NSObject
{
    id _observer;
    id _object;
    CDUnknownBlockType _block;
    NSString *_name;
}

- (void)_notification:(id)arg1;
- (void)dealloc;
- (id)initWithObserver:(id)arg1 name:(id)arg2 object:(id)arg3 block:(CDUnknownBlockType)arg4;

@end

@interface IMRKMessageResponseManager : NSObject
{
}

+ (id)sharedManager;
+ (id)alloc;

@end

@interface IMRKResponse : NSObject
{
    NSString *_string;
    NSDictionary *_attributes;
    NSString *_category;
}

+ (id)alloc;
@property(readonly) NSString *category; // @synthesize category=_category;
@property(readonly) NSDictionary *attributes; // @synthesize attributes=_attributes;
@property(readonly) NSString *string; // @synthesize string=_string;

@end

@interface IMRemoteURLConnection : NSObject
{
    NSURLRequest *_request;
    NSString *_bundleIdentifierForDataUsage;
    CDUnknownBlockType _block;
    NSObject<OS_xpc_object> *_connection;
    BOOL _cancelled;
    BOOL _loading;
    BOOL _forceCellularIfPossible;
    BOOL _alwaysForceCellular;
    BOOL _requireIDSHost;
    int _retries;
    BOOL _shouldUsePipelining;
    int _concurrentConnections;
    BOOL _disableKeepAlive;
    int _keepAliveWifi;
    int _keepAliveCell;
    BOOL _shouldReturnTimingData;
}

@property BOOL shouldReturnTimingData; // @synthesize shouldReturnTimingData=_shouldReturnTimingData;
@property BOOL alwaysForceCellular; // @synthesize alwaysForceCellular=_alwaysForceCellular;
@property(copy) CDUnknownBlockType block; // @synthesize block=_block;
@property(retain) NSURLRequest *request; // @synthesize request=_request;
@property int keepAliveCell; // @synthesize keepAliveCell=_keepAliveCell;
@property int keepAliveWifi; // @synthesize keepAliveWifi=_keepAliveWifi;
@property BOOL disableKeepAlive; // @synthesize disableKeepAlive=_disableKeepAlive;
@property int concurrentConnections; // @synthesize concurrentConnections=_concurrentConnections;
@property BOOL shouldUsePipelining; // @synthesize shouldUsePipelining=_shouldUsePipelining;
@property BOOL requireIDSHost; // @synthesize requireIDSHost=_requireIDSHost;
@property(retain) NSString *bundleIdentifierForDataUsage; // @synthesize bundleIdentifierForDataUsage=_bundleIdentifierForDataUsage;
@property BOOL forceCellularIfPossible; // @synthesize forceCellularIfPossible=_forceCellularIfPossible;
- (void)cancel;
- (void)load;
- (void)dealloc;
- (id)initWithURLRequest:(id)arg1 completionBlockWithTimingData:(CDUnknownBlockType)arg2;
- (id)initWithURLRequest:(id)arg1 completionBlock:(CDUnknownBlockType)arg2;
- (BOOL)_connect;
- (BOOL)_disconnect;
- (void)_disconnected;

@end

@interface IMNetworkReachability : NSObject
{
    BOOL localWiFiRef;
    struct __SCNetworkReachability *reachabilityRef;
}

+ (id)reachabilityForLocalWiFi;
+ (id)reachabilityForInternetConnection;
//+ (id)reachabilityWithAddress:(const struct sockaddr_in *)arg1;
+ (id)reachabilityWithHostName:(id)arg1;
- (long long)currentReachabilityStatus;
- (long long)networkStatusForFlags:(unsigned int)arg1;
- (long long)localWiFiStatusForFlags:(unsigned int)arg1;
- (void)dealloc;

@end

@interface IMNetworkAvailability : NSObject
{
    NSString *_guid;
    NSTimer *_timer;
    void *_context;
    double _timeout;
    double _wifiTimeout;
    double _startTime;
    unsigned long long _flags;
    unsigned long long _options;
    CDUnknownBlockType _completionBlock;
}

@property(nonatomic) void *context; // @synthesize context=_context;
- (void)cancel;
- (void)start;
- (void)_setTimer;
- (void)_timerHit:(id)arg1;
- (void)_cancel;
- (void)dealloc;
- (id)initWithFlags:(unsigned long long)arg1 timeout:(double)arg2 wifiTimeout:(double)arg3 completionBlock:(CDUnknownBlockType)arg4;
- (id)initWithFlags:(unsigned long long)arg1 options:(unsigned long long)arg2 timeout:(double)arg3 wifiTimeout:(double)arg4 completionBlock:(CDUnknownBlockType)arg5;

@end

@interface IMMultiQueue : NSObject
{
    NSMutableDictionary *_queueMap;
    NSObject<OS_dispatch_queue> *_queue;
}

- (void)_addBlock:(CDUnknownBlockType)arg1 withGUID:(id)arg2 forKey:(id)arg3 description:(id)arg4;
- (void)addBlock:(CDUnknownBlockType)arg1 forKey:(id)arg2 description:(id)arg3;
- (void)addBlock:(CDUnknownBlockType)arg1 withTimeout:(double)arg2 forKey:(id)arg3 description:(id)arg4;
- (void)_popEnqueuedBlockWithGUID:(id)arg1 key:(id)arg2;
- (void)dealloc;
- (id)initWithQueue:(id)arg1;
- (id)init;

@end

@interface IMWeakObjectCache : NSObject
{
    NSMutableDictionary *_weakObjectCache;
    struct _opaque_pthread_mutex_t _tableLock;
}

+ (id)sharedInstance;
- (void)removeObject:(id)arg1 key:(id)arg2;
- (id)objectForKey:(id)arg1;
- (id)copyObjectForKey:(id)arg1;
- (id)copyOrSetObject:(id)arg1 forKey:(id)arg2;
- (void)dealloc;
- (id)init;

@end


@interface IMPurgableObject : NSObject
{
    id _instanceObject;
    CDUnknownBlockType _setupBlock;
    CDUnknownBlockType _cleanupBlock;
    NSObject<OS_dispatch_queue> *_queue;
}

- (void)_receivedMemoryWarning:(id)arg1;
- (id)instance;
- (void)_cleanupInstance;
- (void)_setupInstance;
- (void)dealloc;
- (id)initWithSetupBlock:(CDUnknownBlockType)arg1 cleanupBlock:(CDUnknownBlockType)arg2 queue:(id)arg3;

@end

@interface IMWeakReference : NSObject
{
    id _object;
    unsigned long long _objectAddress;
}

+ (id)weakRefWithObject:(id)arg1;
- (id)object;
- (id)initRefWithObject:(id)arg1;
- (id)copyObject;
- (BOOL)isEqual:(id)arg1;
- (unsigned long long)hash;
- (void)dealloc;

@end

@interface IMDoubleLinkedListNode : NSObject
{
    IMDoubleLinkedListNode *_prev;
    IMDoubleLinkedListNode *_next;
    id _object;
}

@property(retain) id object; // @synthesize object=_object;
@property(retain) IMDoubleLinkedListNode *next; // @synthesize next=_next;
@property(retain) IMDoubleLinkedListNode *prev; // @synthesize prev=_prev;
- (void)orphan;
- (void)removeFromList;
- (void)dealloc;
- (id)initWithObject:(id)arg1;

@end

@interface IMDoubleLinkedList : NSObject
{
    IMDoubleLinkedListNode *_first;
    IMDoubleLinkedListNode *_last;
    unsigned long long _count;
}

@property(readonly) unsigned long long count; // @synthesize count=_count;
@property(retain) IMDoubleLinkedListNode *last; // @synthesize last=_last;
@property(retain) IMDoubleLinkedListNode *first; // @synthesize first=_first;
- (BOOL)containsObject:(id)arg1;
- (id)allObjects;
- (void)removeAllObjects;
- (void)removeLinkedListNode:(id)arg1;
- (void)pushLinkedListNode:(id)arg1;
- (void)appendLinkedListNode:(id)arg1;
- (id)popObject;
- (void)pushObject:(id)arg1;
- (void)appendObject:(id)arg1;
- (void)dealloc;
- (id)init;

@end

@interface OSLogHandleManager : NSObject
{
}

+ (id)sharedInstance;

@end

@interface _IMPingPacketData : NSObject
{
    int _sequenceNumber;
    BOOL _timedOut;
    int _error;
    struct timeval _timeSent;
    double _rtt;
}

@property(readonly, nonatomic) double rtt; // @synthesize rtt=_rtt;
@property(readonly, nonatomic) int error; // @synthesize error=_error;
@property(readonly, nonatomic) struct timeval timeSent; // @synthesize timeSent=_timeSent;
@property(readonly, nonatomic) BOOL timedOut; // @synthesize timedOut=_timedOut;
@property(readonly, nonatomic) int sequenceNumber; // @synthesize sequenceNumber=_sequenceNumber;
- (id)copyWithZone:(struct _NSZone *)arg1;
- (void)_returnPacketArrived;
- (void)_markPacketAsTimedOut:(double)arg1;
- (id)initWithSequeneceNumber:(int)arg1 timesent:(struct timeval *)arg2 error:(int)arg3;

@end

@interface IMPingStatistics : NSObject
{
    double _packetLossRate;
    double _medianRoundtripTime;
    double _averageRoundtripTime;
    double _minRoundtripTime;
    double _maxRoundtripTime;
    double _standardDeviationRoundtripTime;
    double _sumRoundtripTimes;
    int _numPingsTransmitted;
    int _numPingsReceived;
    int _numPacketsSuccessfullySent;
}

@property(nonatomic, setter=_setStandardDeviationRoundtripTime:) double standardDeviationRoundtripTime; // @synthesize standardDeviationRoundtripTime=_standardDeviationRoundtripTime;
@property(readonly, nonatomic) int packetsSuccessfullySent; // @synthesize packetsSuccessfullySent=_numPacketsSuccessfullySent;
@property(readonly, nonatomic) int numPingsTransmitted; // @synthesize numPingsTransmitted=_numPingsTransmitted;
@property(readonly, nonatomic) int numPingsReceived; // @synthesize numPingsReceived=_numPingsReceived;
@property(readonly, nonatomic) double averageRoundtripTime; // @synthesize averageRoundtripTime=_averageRoundtripTime;
@property(nonatomic, setter=_setMinRoundtripTime:) double minRoundtripTime; // @synthesize minRoundtripTime=_minRoundtripTime;
@property(nonatomic, setter=_setMedianRoundtripTime:) double medianRoundtripTime; // @synthesize medianRoundtripTime=_medianRoundtripTime;
@property(nonatomic, setter=_setMaxRoundtripTime:) double maxRoundtripTime; // @synthesize maxRoundtripTime=_maxRoundtripTime;
- (id)description;
@property(readonly, nonatomic) double packetLossRate; // @synthesize packetLossRate=_packetLossRate;
- (void)_addReceivedPacket:(double)arg1;
- (void)_addTransmittedPacket:(BOOL)arg1;
- (id)copyWithZone:(struct _NSZone *)arg1;
- (id)initWithMaxRTT:(double)arg1 medianRTT:(double)arg2 avgRTT:(double)arg3 minRTT:(double)arg4 transmitted:(int)arg5 successful:(int)arg6 received:(int)arg7;

@end

@interface _IMPingStatisticsCollector : NSObject
{
    _IMPingPacketData *_timestampArray[160];
    NSMutableArray *_roundTriptimes;
    NSMutableString *_stringToWriteToFile;
    IMPingStatistics *_stats;
}

- (double)_computeStandardDeviation:(id)arg1 numPings:(int)arg2 averageRTT:(double)arg3;
- (double)_computeMedianTime:(id)arg1;
- (id)pingStatsForLastNSeconds:(double)arg1;
- (id)pingStats;
- (BOOL)logStatsToFile:(id)arg1 error:(id *)arg2;
- (void)timeoutOldSequenceNumbers:(double)arg1;
- (void)addEchoReplyPacket:(int)arg1;
- (struct timeval)timeSentForPacket:(int)arg1;
- (void)dealloc;
- (void)addEchoPacket:(int)arg1 packetTimestamp:(struct timeval)arg2 error:(int)arg3;
- (id)init;

@end

@interface IMPingTest : NSObject
{
    NSString *_address;
    BOOL _usesWifi;
    id _collector;
    BOOL _isRunning;
    NSObject<OS_dispatch_source> *_sendTimer;
    NSObject<OS_dispatch_source> *_socketReadSource;
    double _secondsToRun;
}

@property(readonly, nonatomic) double secondsToRun; // @synthesize secondsToRun=_secondsToRun;
- (double)longTimeInterval;
//- (void)_setupReadSource:(int)arg1 address:(struct sockaddr_in)arg2 icmID:(unsigned short)arg3 queue:(id)arg4 completionHander:(CDUnknownBlockType)arg5;
//- (void)_doPingWithSocket:(int)arg1 address:(struct sockaddr_in)arg2 timeToRunTestInSeconds:(double)arg3 pingTimeout:(double)arg4 queue:(id)arg5 completionHandler:(CDUnknownBlockType)arg6;
- (int)_setupAndPerformPing:(double)arg1 queue:(id)arg2 completionHandler:(CDUnknownBlockType)arg3;
- (BOOL)writeResultsToFile:(id)arg1 error:(id *)arg2;
- (id)pingStats:(double)arg1;
- (id)pingStats;
- (void)stop;
- (void)startWithTimeout:(double)arg1 queue:(id)arg2 completionHandler:(CDUnknownBlockType)arg3;
- (void)dealloc;
- (id)initWithAddress:(id)arg1 wifi:(BOOL)arg2;

@end

@interface IMPowerAssertion : NSObject
{
    unsigned int _assertion;
    NSString *_identifier;
}

- (id)description;
- (void)dealloc;
- (id)initWithIdentifier:(id)arg1;
- (id)initWithIdentifier:(id)arg1 timeout:(double)arg2;

@end

@interface NSBundle (FezBundleHelpers)
- (id)_cachedMainBundleResourcePath;
@end

@interface NSObject (FezAdditions)
- (BOOL)isNull;
@end

@interface NSProtocolChecker (FezAdditions)
- (id)_imMethodSignatureForSelector:(SEL)arg1;
@end

@interface NSNumber (FezAdditions)
- (id)localizedString;
@end

@interface NSCharacterSet (IMFoundationAdditions)
+ (id)invalidCharactersForFileTransferName;
@end

@interface NSString (FezAdditions)
+ (id)generatedRoomNameForGroupChat;
+ (id)randomString;
+ (id)copyStringGUIDForObject:(id)arg1;
+ (id)stringGUIDForObject:(id)arg1;
+ (id)stringGUID;
+ (id)copyStringGUID;
- (BOOL)roomNameIsProbablyAutomaticallyGenerated;
- (id)stringByRemovingCharactersFromSet:(id)arg1;
- (id)stringWithLTREmbedding;
- (id)pathStringForDisplay;
- (id)__stringByStrippingAttachmentAndControlCharacters;
- (id)__stringByStrippingControlCharacters;
- (id)uniqueSavePath;
- (id)stringByRemovingWhitespace;
- (struct _NSRange)__rangeOfNewlineInRange:(struct _NSRange)arg1;
- (id)stringByResolvingAndStandardizingPath;
- (BOOL)_appearsToBeBusinessID;
- (BOOL)_appearsToBeDSID;
- (BOOL)_appearsToBePhoneNumber;
- (id)_md5Hash;
- (id)_stripPotentialTokenURIWithToken:(id *)arg1;
- (BOOL)_appearsToBeEmail;
- (id)_IDFromFZIDType:(long long)arg1;
- (id)_URIFromFZIDType:(long long)arg1;
- (id)_URIFromCanonicalizedFZIDType:(long long)arg1;
- (long long)_FZBestGuessFZIDType;
- (id)_bestGuessURIFromCanicalizedID;
- (id)_URIFromCanonicalizedBusinessID;
- (id)_URIFromCanonicalizedDSID;
- (id)_URIFromCanonicalizedPhoneNumber;
- (id)_URIFromCanonicalizedEmail;
- (id)_bestGuessURI;
- (id)_URIFromBusinessID;
- (id)_URIFromDSID;
- (id)_URIFromPhoneNumber;
- (id)_URIFromEmail;
- (long long)_FZIDType;
- (id)_FZIDFromPhoneNumber;
- (id)_FZIDFromEmail;
- (id)_stripFZIDPrefix;
- (id)urlFromString;
- (id)stringByAddingURLEscapes;
- (id)stringByRemovingURLEscapes;
- (id)trimmedString;
- (long long)localizedCompareToString:(id)arg1;
- (unsigned int)unsignedIntValue;
- (unsigned int)hexValue;
- (BOOL)isDirectory;
- (BOOL)isEqualToIgnoringCase:(id)arg1;
@end

@interface NSURL (FezAdditions)
- (id)__imURLByAppendingQueryString:(id)arg1;
@end

@interface NSMutableString (FezAdditions)
- (void)replaceNewlinesWithSpaces;
@end

@interface NSAttributedString (FezAdditions)
- (id)trimmedString;
- (BOOL)attribute:(id)arg1 existsInRange:(struct _NSRange)arg2;
@end

@interface NSMutableAttributedString (FezAdditions)
- (void)removeCharactersWithAttribute:(id)arg1;
- (void)replaceAttribute:(id)arg1 value:(id)arg2 withValue:(id)arg3;
- (void)replaceNewlinesWithSpaces;
- (void)trimWhitespace;
@end

@interface NSArray (FezAdditions)
- (id)__imArrayByApplyingBlock:(CDUnknownBlockType)arg1 filter:(CDUnknownBlockType)arg2;
- (id)__imArrayByApplyingBlock:(CDUnknownBlockType)arg1;
- (id)__imArrayByFilteringWithBlock:(CDUnknownBlockType)arg1;
- (void)__imForEach:(CDUnknownBlockType)arg1;
- (BOOL)containsObject:(id)arg1 matchingComparison:(SEL)arg2;
- (long long)indexOfObject:(id)arg1 matchingComparison:(SEL)arg2;
- (BOOL)containsObjectIdenticalTo:(id)arg1;
- (id)__imFirstObject;
- (id)_copyForEnumerating;
- (BOOL)_hasSameMembers:(id)arg1;
- (id)__imDeepCopy;
- (BOOL)__imIsMutable;
- (id)__imSetFromArray;
- (id)__IMStripPotentialTokenURIs;
@end

@interface NSSet (FezAdditions)
- (id)__imSetByApplyingBlock:(CDUnknownBlockType)arg1;
- (void)__imForEach:(CDUnknownBlockType)arg1;
@end

@interface NSMutableSet (FezAdditions)
+ (id)nonRetainingSet;
@end

@interface NSMutableArray (FezAdditions)
+ (id)nonRetainingArray;
+ (id)copyNonRetainingArray;
- (void)removeFirstObject;
@end

@interface NSDictionary (FezAdditions)
+ (id)dictionaryWithKeyArray:(id)arg1 defaultValue:(id)arg2;
+ (id)dictionaryWithPlistData:(id)arg1;
- (id)__imDeepCopy;
- (id)dictionaryFromChanges:(id)arg1;
- (id)plistData;
- (id)keysOfChangedEntriesComparedTo:(id)arg1;
- (BOOL)__imIsMutable;
@end

@interface NSData (FezAdditions)
+ (id)__imDataWithRandomBytes:(unsigned long long)arg1;
+ (id)__imDataWithHexString:(id)arg1;
- (id)_FTOptionallyDecompressData;
- (id)_FTDecompressData;
- (id)__imHexString;
- (id)__imHexStringOfBytes:(char *)arg1 withLength:(unsigned long long)arg2;
@end

@interface NSFileManager (FezAdditions)
- (BOOL)copyItemAtPath:(id)arg1 toPath:(id)arg2 uniquePath:(id *)arg3 error:(id *)arg4;
- (BOOL)moveItemAtPath:(id)arg1 toPath:(id)arg2 uniquePath:(id *)arg3 error:(id *)arg4;
- (BOOL)_moveItemAtPath:(id)arg1 toPath:(id)arg2 uniquePath:(id *)arg3 error:(id *)arg4 asCopy:(BOOL)arg5;
- (id)createUniqueDirectoryWithName:(id)arg1 atPath:(id)arg2 ofType:(id)arg3;
- (id)uniqueFilename:(id)arg1 atPath:(id)arg2 ofType:(id)arg3;
- (BOOL)makeDirectoriesInPath:(id)arg1 mode:(unsigned int)arg2;
- (BOOL)_isPathOnMissingVolume:(id)arg1;
- (id)_randomSimilarFilePathAsPath:(id)arg1;
- (id)_randomTemporaryPathWithFileName:(id)arg1 withAppendedPathComponent:(id)arg2;
- (id)_randomTemporaryPathWithFileName:(id)arg1;
- (id)_randomTemporaryPathWithSuffix:(id)arg1 fileName:(id)arg2 withAppendedPathComponent:(id)arg3;
- (id)_randomTemporaryPathWithSuffix:(id)arg1 fileName:(id)arg2;
- (id)_randomTemporaryPathWithSuffix:(id)arg1 withAppendedPathComponent:(id)arg2;
- (id)_randomTemporaryPathWithSuffix:(id)arg1;
- (id)_generateLinkForURL:(id)arg1;
@end

@interface NSMutableDictionary (IMFoundation_Additions)
+ (id)nonRetainingKeyAndValueDictionary;
+ (id)nonRetainingDictionary;
+ (id)retainingKeyDictionary;
@end

@interface NSError (FezAdditions)
+ (id)genericErrorWithFile:(const char *)arg1 function:(const char *)arg2 lineNumber:(long long)arg3;
@end

@interface NSObject (DelayedPerformAdditions)
- (void)performSelector:(SEL)arg1 withObject:(id)arg2 afterDelay:(double)arg3 ignoreMenuTracking:(BOOL)arg4;
@end

@interface NSUserDefaults (SpecificDomainAdditions)
+ (id)_IMObjectForKey:(id)arg1 inDomain:(id)arg2;
+ (void)_IMSetObject:(id)arg1 forKey:(id)arg2 inDomain:(id)arg3;
+ (id)_IMAppObjectForKey:(id)arg1;
+ (id)_IMAgentObjectForKey:(id)arg1;
@end

@interface NSDictionary (DictionaryTypeChecking)
- (id)_dataForKey:(id)arg1;
- (id)_stringForKey:(id)arg1;
- (id)_numberForKey:(id)arg1;
- (id)_arrayForKey:(id)arg1;
- (id)_dictionaryForKey:(id)arg1;
@end

@interface NSThread (_IMThreadBlockSupport)
+ (void)_im_runBlock:(CDUnknownBlockType)arg1;
- (void)__im_performBlock:(CDUnknownBlockType)arg1 afterDelay:(double)arg2 modes:(id)arg3;
- (void)__im_performBlock:(CDUnknownBlockType)arg1 afterDelay:(double)arg2;
- (void)__im_performBlock:(CDUnknownBlockType)arg1 waitUntilDone:(BOOL)arg2 modes:(id)arg3;
- (void)__im_performBlock:(CDUnknownBlockType)arg1 waitUntilDone:(BOOL)arg2;
- (void)__im_performBlock:(CDUnknownBlockType)arg1 modes:(id)arg2;
- (void)__im_performBlock:(CDUnknownBlockType)arg1;
@end

@interface NSObject (_IMSupportMessagingProxy)
- (id)__im_getInvocation:(id *)arg1;
- (id)__im_afterDelay:(double)arg1 modes:(id)arg2;
- (id)__im_afterDelay:(double)arg1;
- (id)__im_onThread:(id)arg1;
- (id)__im_onThread:(id)arg1 immediateForMatchingThread:(BOOL)arg2;
- (id)__im_onDetachedThread;
- (id)__im_onMainThreadIfNecessary;
- (id)__im_onMainThread;
@end

@interface NSMutableArray (IMMutableArrayRandomization)
- (void)__imRandomizeArray;
@end

@interface NSString (IMFastFormatAdditions)
- (id)_imInitWithFormat:(id)arg1 arguments:(struct __va_list_tag [1])arg2;
@end

@interface NSProtocolChecker (IMFixComplileWarnings)
- (id)initWithProtocol:(id)arg1;
@end

@interface NSDictionary (HFSFileAttributes)
@property(readonly, nonatomic) unsigned long long fileHFSResourceForkSize;
@property(readonly, nonatomic) unsigned short fileHFSFlags;
@end

@interface NSData (FezSecurityAdditions)
@property(readonly, nonatomic) NSData *SHA256Data;
@property(readonly, nonatomic) NSString *SHA1HexString;
@property(readonly, nonatomic) NSData *SHA1Data;
@end

@interface NSInvocation (IMInvocationQueueAdditions)
- (BOOL)wantsReturnValue;
@end

@interface NSString (MobileMeHelpers)
@property(readonly, nonatomic) NSString *stripMobileMSuffixIfPresent;
@property(readonly, nonatomic) BOOL hasMobileMeSuffix;
@property(readonly, nonatomic) NSString *mobileMeDomain;
@end

@interface NSNotificationCenter (_IMNotificationCenterAdditions)
- (void)__mainThreadPostNotificationName:(id)arg1 object:(id)arg2 userInfo:(id)arg3;
- (void)__mainThreadPostNotificationName:(id)arg1 object:(id)arg2;
- (void)__mainThreadPostNotification:(id)arg1;
- (void)postNotificationName:(id)arg1;
@end

@interface NSArray (MyersDiff)
- (void)differencesFromArray:(id)arg1 usingComparator:(CDUnknownBlockType)arg2 removedIndexes:(id *)arg3 insertedIndexes:(id *)arg4;
- (void)differencesFromArray:(id)arg1 removedIndexes:(id *)arg2 insertedIndexes:(id *)arg3;
@end

