/*
 *     Generated by class-dump 3.1.2.
 *
 *     class-dump is Copyright (C) 1997-1998, 2000-2001, 2004-2007 by Steve Nygard.
 */

struct NtlmGenerator;

struct _CommandStackEntry {
    struct {
    } *_field1;
    id _field2;
};

struct _NSRange {
    unsigned int location;
    unsigned int length;
};

struct _NSSize {
    float _field1;
    float _field2;
};

struct _NSZone;

struct __CFArray;

struct __CFCharacterSet;

struct __CFDictionary;

struct __CFMessagePort;

struct __CFReadStream;

struct __CFRunLoopSource;

struct __CFSocket;

struct __CFString;

struct __CFTree;

struct __CFWriteStream;

struct __SCDynamicStore;

struct _lockdown_connection;

struct _opaque_pthread_mutex_t {
    long __sig;
    char __opaque[40];
};

struct sqlite3;

struct sqlite3_stmt;

typedef struct {
    id _field1;
    id _field2;
    id _field3;
    id _field4;
    char _field5;
    id _field6;
    id _field7;
    id _field8;
    id _field9;
    unsigned int _field10;
    id _field11;
    unsigned int _field12;
} CDAnonymousStruct1;

typedef struct {
    id _field1;
    id _field2;
    struct __CFDictionary *_field3;
    struct __CFDictionary *_field4;
    struct __CFDictionary *_field5;
    unsigned int _field6;
    unsigned int _field7;
    int _field8;
    id _field9;
} CDAnonymousStruct5;

typedef struct {
    unsigned int colorHasBeenEvaluated:1;
    unsigned int colorWasSetManually:1;
    unsigned int redColor:8;
    unsigned int greenColor:8;
    unsigned int blueColor:8;
    unsigned int loadingBody:1;
    unsigned int unused:5;
} CDAnonymousStruct2;

typedef struct {
    unsigned int _field1;
    unsigned int _field2;
    char _field3;
    char _field4;
} CDAnonymousStruct3;

typedef struct {
    unsigned int reserved:26;
    unsigned int hasCustomEncoding:1;
    unsigned int isPartial:1;
    unsigned int hasTemporaryUid:1;
    unsigned int isHTML:1;
    unsigned int isRich:1;
} CDAnonymousStruct6;

typedef struct {
    int _field1;
    id _field2;
    id _field3;
    unsigned int _field4;
} CDAnonymousStruct8;

typedef struct {
    unsigned int _field1;
    unsigned int _field2;
} CDAnonymousStruct4;

typedef struct {
    id _field1;
    unsigned int :1;
    unsigned int :1;
    unsigned int :1;
    unsigned int :2;
} CDAnonymousStruct7;

union _IMAPResponseData {
    struct {
        int responseCode;
        id responseInfoAndOrUserData;
    } basic;
    NSArray *capabilities;
    unsigned int number;
    NSArray *flags;
    struct {
        NSString *mailboxName;
        NSDictionary *entries;
    } status;
    NSArray *searchResults;
    struct {
        unsigned long mailboxAttributes;
        id separatorAndOrMboxName;
        NSString *permanentTag;
    } list;
    struct {
        unsigned long number;
        NSArray *items;
    } fetch;
    struct {
        NSString *mailboxName;
        NSArray *quotaRootNames;
    } quotaRoot;
    struct {
        NSString *quotaRootName;
        NSArray *quotas;
    } quota;
    struct {
        NSString *uids;
        IMAPFetchResult *flagsFetchResult;
        unsigned int change:1;
    } uidFlags;
    struct {
        NSString *name;
        NSArray *parameters;
    } other;
};

/*
 * File: /Users/natetrue/shared/114/System/Library/Frameworks/Message.framework/Message
 *       Current version: 20.0.0, Compatibility version: 1.0.0
 */

@protocol DataConsumer
- (void)appendData:(id)fp8;
- (void)done;
- (id)data;
@end

@protocol IMAPMailboxListFilter
- (void)filterMailboxList:(id)fp8 forMailbox:(id)fp12 options:(int)fp16;
@end

@protocol MessageConsumer
- (void)newMessagesAvailable:(id)fp8;
- (void)newMessagesAvailable:(id)fp8 ranks:(id)fp12;
- (BOOL)shouldCancel;
@end

@protocol NSCoding
- (void)encodeWithCoder:(id)fp8;
- (id)initWithCoder:(id)fp8;
@end

@protocol NSCopying
- (id)copyWithZone:(struct _NSZone *)fp8;
@end

@protocol NSMutableCopying
- (id)mutableCopyWithZone:(struct _NSZone *)fp8;
@end

@protocol Queue
- (BOOL)addItem:(id)fp8;
- (BOOL)flush;
@end

@protocol SafeObserverProtocol
- (id)willBeReleased;
@end

@interface MessageDataContainer : NSObject
{
    NSData *_data;
    BOOL _partial;
    BOOL _incomplete;
}

- (id)initWithData:(id)fp8 partial:(BOOL)fp12 incomplete:(BOOL)fp16;
- (id)initWithData:(id)fp8;
- (id)data;
- (void)dealloc;

@end

@interface MessageStore : SafeObserver
{
    struct {
        unsigned int isReadOnly:1;
        unsigned int hasUnsavedChangesToMessageData:1;
        unsigned int haveOpenLockFile:1;
        unsigned int rebuildingTOC:1;
        unsigned int compacting:1;
        unsigned int cancelInvalidation:1;
        unsigned int forceInvalidation:1;
        unsigned int isWritingChangesToDisk:1;
        unsigned int isTryingToClose:1;
        unsigned int compactOnClose:1;
        unsigned int reserved:22;
    } _flags;
    MailboxUid *_mailboxUid;
    MailAccount *_account;
    NSMutableArray *_allMessages;
    unsigned int _allMessagesSize;
    unsigned int _deletedMessagesSize;
    unsigned int _deletedMessageCount;
    unsigned int _unreadMessageCount;
    unsigned int _lastFetchCount;
    int _state;
    union {
        struct {
            ObjectCache *_headerDataCache;
            ObjectCache *_headerCache;
            ObjectCache *_bodyDataCache;
            ObjectCache *_bodyCache;
        } objectCaches;
        struct {
            struct __CFDictionary *_headerDataCache;
            struct __CFDictionary *_headerCache;
            struct __CFDictionary *_bodyDataCache;
            struct __CFDictionary *_bodyCache;
        } intKeyCaches;
    } _caches;
    NSTimer *_timer;
    NSMutableSet *_uniqueStrings;
    double timeOfLastAutosaveOperation;
    ActivityMonitor *_openMonitor;
}

+ (BOOL)createEmptyStoreIfNeededForPath:(id)fp8;
+ (BOOL)createEmptyStoreForPath:(id)fp8;
+ (BOOL)storeAtPathIsWritable:(id)fp8;
+ (BOOL)cheapStoreAtPathIsEmpty:(id)fp8;
+ (int)copyMessages:(id)fp8 toMailboxUid:(id)fp12 shouldDelete:(BOOL)fp16;
- (void)queueSaveChangesInvocation;
- (id)willBeReleased;
- (id)initWithMailboxUid:(id)fp8 readOnly:(BOOL)fp12;
- (id)copyWithZone:(struct _NSZone *)fp8;
- (void)dealloc;
- (void)openAsynchronously;
- (void)openSynchronously;
- (void)didOpen;
- (void)cancelOpen;
- (void)writeUpdatedMessageDataToDisk;
- (void)invalidateSavingChanges:(BOOL)fp8;
- (id)account;
- (id)mailboxUid;
- (BOOL)isOpened;
- (id)storePathRelativeToAccount;
- (id)displayName;
- (const char *)displayNameForLogging;
- (BOOL)isReadOnly;
- (id)description;
- (BOOL)isTrash;
- (BOOL)isDrafts;
- (void)messageFlagsDidChange:(id)fp8 flags:(id)fp12;
- (void)structureDidChange;
- (void)messagesWereAdded:(id)fp8;
- (void)messagesWereCompacted:(id)fp8;
- (void)updateUserInfoToLatestValues;
- (unsigned int)totalMessageSize;
- (void)deletedCount:(unsigned int *)fp8 andSize:(unsigned int *)fp12;
- (unsigned int)totalCount;
- (unsigned int)nonDeletedCount;
- (BOOL)hasMoreMessages:(unsigned int)fp8;
- (void)purgeMessagesBeyond:(unsigned int)fp8;
- (unsigned int)unreadCount;
- (BOOL)hasMessageForAccount:(id)fp8;
- (unsigned int)indexOfMessage:(id)fp8;
- (id)copyOfAllMessages;
- (id)copyOfMessagesInRange:(struct _NSRange)fp8;
- (id)mutableCopyOfAllMessages;
- (id)copyOfAllMessagesWithOptions:(unsigned int)fp8;
- (id)copyOfAllMessagesWithoutSummaries;
- (id)_defaultRouterDestination;
- (id)finishRoutingMessages:(id)fp8 routed:(id)fp12;
- (BOOL)canRebuild;
- (void)rebuildTableOfContentsAsynchronously;
- (BOOL)canCompact;
- (void)doCompact;
- (void)deleteMessagesOlderThanNumberOfDays:(int)fp8 compact:(BOOL)fp12;
- (void)deleteMessages:(id)fp8 moveToTrash:(BOOL)fp12;
- (void)undeleteMessages:(id)fp8;
- (void)messagesWereDeleted:(id)fp8;
- (BOOL)allowsAppend;
- (int)appendMessages:(id)fp8 unsuccessfulOnes:(id)fp12 newMessageIDs:(id)fp16 newMessages:(id)fp20 flagsToSet:(id)fp24;
- (int)appendMessages:(id)fp8 unsuccessfulOnes:(id)fp12 newMessageIDs:(id)fp16 newMessages:(id)fp20;
- (int)appendMessages:(id)fp8 unsuccessfulOnes:(id)fp12 newMessageIDs:(id)fp16;
- (int)appendMessages:(id)fp8 unsuccessfulOnes:(id)fp12;
- (id)messageWithValue:(id)fp8 forHeader:(id)fp12 options:(unsigned int)fp16;
- (id)messageForMessageID:(id)fp8;
- (id)messageForRemoteID:(id)fp8;
- (id)headerDataForMessage:(id)fp8 downloadIfNecessary:(BOOL)fp12;
- (id)headerDataForMessage:(id)fp8;
- (id)bodyDataForMessage:(id)fp8 isComplete:(char *)fp12 downloadIfNecessary:(BOOL)fp16;
- (id)bodyDataForMessage:(id)fp8;
- (id)fullBodyDataForMessage:(id)fp8 andHeaderDataIfReadilyAvailable:(id *)fp12 isComplete:(char *)fp16 downloadIfNecessary:(BOOL)fp20;
- (id)fullBodyDataForMessage:(id)fp8 andHeaderDataIfReadilyAvailable:(id *)fp12;
- (id)fullBodyDataForMessage:(id)fp8;
- (id)bodyForMessage:(id)fp8 fetchIfNotAvailable:(BOOL)fp12;
- (id)bodyForMessage:(id)fp8 fetchIfNotAvailable:(BOOL)fp12 updateFlags:(BOOL)fp16;
- (id)headersForMessage:(id)fp8;
- (id)headersForMessage:(id)fp8 fetchIfNotAvailable:(BOOL)fp12;
- (id)dataForMimePart:(id)fp8;
- (id)dataForMimePart:(id)fp8 inRange:(struct _NSRange)fp12 isComplete:(char *)fp20 downloadIfNecessary:(BOOL)fp24 didDownload:(char *)fp28;
- (id)dataForMimePart:(id)fp8 inRange:(struct _NSRange)fp12 isComplete:(char *)fp20;
- (BOOL)hasCachedDataForMimePart:(id)fp8;
- (id)uniquedString:(id)fp8;
- (id)setFlagsFromDictionary:(id)fp8 forMessages:(id)fp12;
- (id)setFlagsFromDictionary:(id)fp8 forMessage:(id)fp12;
- (void)setFlag:(id)fp8 state:(BOOL)fp12 forMessages:(id)fp16;
- (id)willSetFlagsFromDictionary:(id)fp8 forMessages:(id)fp12;
- (void)setFlagsCancelled:(id)fp8 forMessages:(id)fp12;
- (void)startSynchronization;
- (void)setNumberOfAttachments:(unsigned int)fp8 isSigned:(BOOL)fp12 isEncrypted:(BOOL)fp16 forMessage:(id)fp20;
- (id)status;
- (int)fetchSynchronously;
- (int)fetchNewMessagesAndSynchronizeOldMessages:(BOOL)fp8;
- (int)fetchMessagesReceivedBetween:(id)fp8 and:(id)fp12 synchronize:(BOOL)fp16;
- (int)fetchNumMessages:(unsigned int)fp8 preservingUID:(id)fp12 beforeUID:(unsigned int)fp16 synchronize:(BOOL)fp20;
- (int)fetchNumMessages:(unsigned int)fp8 beforeUID:(unsigned int)fp12 synchronize:(BOOL)fp16;
- (int)fetchMobileSynchronously:(unsigned int)fp8 preservingUID:(id)fp12;
- (int)fetchMobileSynchronously:(unsigned int)fp8;
- (void)syncOlderMessages;
- (BOOL)setPreferredEncoding:(unsigned long)fp8 forMessage:(id)fp12;
- (void)setData:(id)fp8 forMimePart:(id)fp12 isComplete:(BOOL)fp16;
- (void)close;
- (void)_flushAllMessageData;
- (void)setLibrary:(id)fp8;

@end

@interface MessageStore (MessageFrameworkOnly)
+ (void)_autosaveMessageStore:(void *)fp8;
- (void)_cancelAutosave;
- (void)_setNeedsAutosave;
- (id)_fetchHeaderDataForMessage:(id)fp8 downloadIfNecessary:(BOOL)fp12;
- (id)_fetchBodyDataForMessage:(id)fp8 andHeaderDataIfReadilyAvailable:(id *)fp12 downloadIfNecessary:(BOOL)fp16;
- (id)_fetchBodyForMessage:(id)fp8 updateFlags:(BOOL)fp12;
- (id)_fetchBodyForMessage:(id)fp8;
- (BOOL)_shouldCallCompactWhenClosing;
- (BOOL)_isReadyToBeInvalidated;
- (void)_saveChanges;
- (void)_invalidate;
- (void)_invalidateInBackground;
- (void)_flushAllCaches;
- (void)_rebuildTableOfContentsSynchronously;
- (void)updateBodyFlagsForMessage:(id)fp8 body:(id)fp12;
- (id)_setOrGetBody:(id)fp8 forMessage:(id)fp12 updateFlags:(BOOL)fp16;
- (id)_setOrGetBody:(id)fp8 forMessage:(id)fp12;
- (id)_cachedBodyForMessage:(id)fp8 valueIfNotPresent:(id)fp12;
- (id)_cachedHeadersForMessage:(id)fp8 valueIfNotPresent:(id)fp12;
- (id)_cachedHeaderDataForMessage:(id)fp8 valueIfNotPresent:(id)fp12;
- (id)_cachedBodyDataForMessage:(id)fp8 valueIfNotPresent:(id)fp12;
- (id)_cachedBodyDataContainerForMessage:(id)fp8 valueIfNotPresent:(id)fp12;
- (void)_setFlagsForMessages:(id)fp8 mask:(unsigned long)fp12;
- (void)_setFlagsAndColorForMessages:(id)fp8;
- (void)updateMessages:(id)fp8 updateColor:(BOOL)fp12 updateNumberOfAttachments:(BOOL)fp16;
- (void)messagesWereAdded:(id)fp8 forIncrementalLoading:(BOOL)fp12;
- (BOOL)_updateFlagForMessage:(id)fp8 key:(id)fp12 value:(BOOL)fp16;
- (BOOL)_shouldChangeComponentMessageFlags;
- (BOOL)_shouldChangeComponentMessageFlagsForMessage:(id)fp8;
@end

@interface _NSDataMessageStoreMessage : Message
{
}

- (id)initWithStore:(id)fp8;
- (void)dealloc;

@end

@interface NSDataMessageStore : MessageStore
{
    NSData *_data;
}

- (id)initWithData:(id)fp8;
- (void)dealloc;
- (id)storePath;
- (void)writeUpdatedMessageDataToDisk;
- (id)message;
- (id)headerDataForMessage:(id)fp8 downloadIfNecessary:(BOOL)fp12;
- (id)bodyDataForMessage:(id)fp8 isComplete:(char *)fp12 downloadIfNecessary:(BOOL)fp16;
- (id)_cachedBodyForMessage:(id)fp8 valueIfNotPresent:(id)fp12;
- (id)_cachedHeadersForMessage:(id)fp8 valueIfNotPresent:(id)fp12;

@end

@interface IMAPConnection : Connection
{
    id _delegate;
    id <IMAPMailboxListFilter> _mailboxListFilter;
    unsigned int _delegateShouldHandleUntaggedResponse:1;
    unsigned int _delegateDidReceiveResponse:1;
    unsigned int _delegateDidFinishSelect:1;
    unsigned int _delegateDidDisconnect:1;
    unsigned int _delegateDidBeginBodyLoad:1;
    unsigned int _delegateDidReceiveMoreBodyData:1;
    unsigned int _delegateDidFinishBodyDataLoad:1;
    unsigned int _delegateBodyDataReadSize:1;
    unsigned int _capabilityFlags:11;
    unsigned int _capabilitiesAreFresh:1;
    unsigned int _gotBadResponse:1;
    int _tag;
    double _connectTime;
    unsigned int _connectionState:3;
    NSString *_separatorChar;
    NSString *_selectedMailbox;
    NSMutableSet *_capabilities;
    unsigned int _commandNumber;
    NSMutableData *_data;
    unsigned int _readBufferSize;
    double _expirationTime;
    unsigned int _idleCommandSequenceNumber;
    InvocationQueue *_streamEventQueue;
}

+ (void)initialize;
+ (void)setReadSizeParameters;
- (id)init;
- (void)dealloc;
- (id)delegate;
- (void)setDelegate:(id)fp8;
- (id)mailboxListFilter;
- (void)setMailboxListFilter:(id)fp8;
- (BOOL)_doBasicConnectionUsingAccount:(id)fp8;
- (BOOL)_tryConnectionUsingAccount:(id)fp8;
- (BOOL)connectUsingAccount:(id)fp8;
- (void)disconnectAndNotifyDelegate:(BOOL)fp8;
- (void)disconnect;
- (int)connectionState;
- (BOOL)isValid;
- (unsigned int)_sendCommands:(CDAnonymousStruct8 *)fp8 count:(unsigned int)fp12 response:(id *)fp16;
- (id)_copyNextServerResponseForCommand:(CDAnonymousStruct8 *)fp8;
- (id)_copyNextTaggedOrContinuationResponseForCommand:(CDAnonymousStruct8 *)fp8;
- (id)_errorForResponse:(id)fp8 commandParams:(CDAnonymousStruct8 *)fp12;
- (id)capabilities;
- (BOOL)supportsCapability:(int)fp8;
- (BOOL)supportsCapabilityForceFresh:(int)fp8;
- (void)noop;
- (BOOL)authenticateUsingAccount:(id)fp8;
- (BOOL)loginWithAccount:(id)fp8 password:(id)fp12;
- (BOOL)logout;
- (id)separatorChar;
- (id)_doListCommand:(int)fp8 withReference:(id)fp12 mailboxName:(id)fp16 options:(int)fp20;
- (id)_listingForMailbox:(id)fp8 options:(int)fp12 withCommand:(int)fp16;
- (id)listingForMailbox:(id)fp8 options:(int)fp12;
- (id)subscribedListingForMailbox:(id)fp8 options:(int)fp12;
- (id)extendedListingForMailbox:(id)fp8 options:(int)fp12;
- (void)close;
- (BOOL)closeAndLogout;
- (void)unselect;
- (void)handleStreamEvent:(id)fp8;
- (void)handleBytesAvailable;
- (void)startIdle;
- (void)scheduleIdleResetAfterDelay:(id)fp8;
- (void)finishIdle;
- (BOOL)isIdle;
- (void)scheduleIdle;
- (void)resetIdle;
- (BOOL)expunge;
- (BOOL)expungeUids:(id)fp8;
- (void)fetchStatusForMailboxes:(id)fp8 args:(id)fp12;
- (id)statusForMailbox:(id)fp8 args:(id)fp12;
- (BOOL)examineMailbox:(id)fp8;
- (BOOL)selectMailbox:(id)fp8;
- (id)selectedMailbox;
- (BOOL)createMailbox:(id)fp8;
- (BOOL)deleteMailbox:(id)fp8;
- (BOOL)renameMailbox:(id)fp8 toMailbox:(id)fp12;
- (BOOL)subscribeMailbox:(id)fp8;
- (BOOL)unsubscribeMailbox:(id)fp8;
- (void)fetchQuotaRootNamesForMailboxes:(id)fp8;
- (BOOL)getQuotaForRootName:(id)fp8;
- (id)quotaPercentagesForMailbox:(id)fp8;
- (BOOL)_sendMailboxCommand:(int)fp8 withArguments:(id)fp12;
- (id)searchUidSet:(id)fp8 forTerms:(id)fp12 success:(char *)fp16;
- (id)searchIDSet:(id)fp8 forTerms:(id)fp12 success:(char *)fp16;
- (int)searchCount:(id)fp8;
- (unsigned int)getMailboxIDForUID:(unsigned int)fp8;
- (id)searchUidSet:(id)fp8 forNewMessageIDs:(id)fp12;
- (BOOL)storeFlags:(id)fp8 state:(BOOL)fp12 forMessageSet:(id)fp16;
- (BOOL)storeFlags:(id)fp8 state:(BOOL)fp12 forUids:(id)fp16;
- (BOOL)storeFlags:(id)fp8 state:(BOOL)fp12 forRange:(CDAnonymousStruct4)fp16;
- (BOOL)deleteMessagesOlderThanNumberOfDays:(int)fp8;
- (id)_responseFromSendingCommand:(CDAnonymousStruct8 *)fp8 andPossiblyCreateMailbox:(id)fp12;
- (BOOL)copyUids:(id)fp8 toMailboxNamed:(id)fp12 newMessageInfo:(id *)fp16;
- (BOOL)appendData:(id)fp8 toMailboxNamed:(id)fp12 flags:(id)fp16 dateReceived:(id)fp20 newMessageInfo:(id *)fp24;
- (id)_headersToFetchIncludingThoseRequiredForRouting:(BOOL)fp8 withRecipients:(BOOL)fp12;
- (id)fetchArgumentForMessageSkeletonsWithTo:(BOOL)fp8;
- (void)fetchTotalSize:(unsigned long long *)fp8 andMessageCount:(unsigned int *)fp12;
- (id)fetchHeadersForUid:(unsigned long)fp8;
- (BOOL)performCustomCommand:(id)fp8 withArguments:(id)fp12;
- (void)setReadBufferSizeFromElapsedTime:(double)fp8 bytesRead:(unsigned int)fp16;
- (unsigned int)readBufferSize;
- (void)setReadBufferSize:(unsigned int)fp8;
- (BOOL)_doUidFetchWithRange:(CDAnonymousStruct4)fp8 arguments:(id)fp16 validateMessage:(BOOL)fp20 responses:(id)fp24;
- (id)messageSetForRange:(CDAnonymousStruct4)fp8;
- (id)messageSetForRange:(CDAnonymousStruct4)fp8 butNotNumbers:(id)fp16;
- (id)messageSetForNumbers:(id)fp8 range:(struct _NSRange)fp12 maxTokens:(int)fp20 indexOfLastNumber:(int *)fp24;
- (id)messageSetForNumbers:(id)fp8 range:(struct _NSRange)fp12;
- (id)parenthesizedStringWithObjects:(id)fp8;
- (BOOL)authenticateUsingAccount:(id)fp8 authenticator:(id)fp12;
- (BOOL)startTLSForAccount:(id)fp8;
- (void)lock;
- (id)description;
- (id)serverPathPrefix;

@end

@interface IMAPConnection (MFPrivate)
- (void)notifyDelegateOfBodyLoadStart:(id)fp8;
- (void)notifyDelegateOfBodyLoadAppendage:(id)fp8;
- (void)notifyDelegateOfBodyLoadCompletion:(id)fp8;
- (unsigned int)literalChunkSize;
- (id)_readDataOfLength:(int)fp8;
- (id)_fetchArgumentForMessageUidsAndFlags;
- (id)_fetchArgumentForMessageSkeletonsWithHeaders:(id)fp8;
- (BOOL)_isFetchResponseValid:(id)fp8;
- (id)_responseFromSendingCommands:(CDAnonymousStruct8 *)fp8 count:(unsigned int)fp12;
- (BOOL)sendResponsesForCommand:(CDAnonymousStruct8 *)fp8 toQueue:(id)fp12;
- (BOOL)sendResponsesForUIDFetchForUIDs:(id)fp8 fields:(id)fp12 toQueue:(id)fp16;
- (BOOL)sendSkeletonResponsesForUIDs:(id)fp8 includeTo:(BOOL)fp12 toQueue:(id)fp16;
- (BOOL)sendUidAndFlagResponsesForUIDs:(id)fp8 toQueue:(id)fp12;
- (void)didFinishCommands:(CDAnonymousStruct8 *)fp8 count:(unsigned int)fp12;
@end

@interface NSString (IMAPNameEncoding)
- (id)encodedIMAPMailboxName;
- (id)decodedIMAPMailboxName;
@end

@interface IMAPOfflineCopyOnStupidServerOperation : IMAPOperation
{
    struct __CFArray *messageIds;
    struct __CFArray *internalDates;
}

- (void)serializeIntoData:(id)fp8;
- (unsigned char)_magic;
- (void)_deserializeOpSpecificValuesFromData:(id)fp8 cursor:(unsigned int *)fp12;
- (void)dealloc;
- (BOOL)getMessageId:(id *)fp8 andInternalDate:(id *)fp12 forDestinationUid:(unsigned int)fp16;
- (void)setMessageId:(id)fp8 andInternalDate:(id)fp12 forMessageWithSourceUid:(unsigned int)fp16;
- (void)expungeTemporaryUid:(unsigned int)fp8;
- (unsigned int)approximateSize;

@end

@interface IMAPOperation : NSObject
{
    unsigned int _type:8;
    unsigned int _temporaryUids:1;
    NSString *_mailboxName;
    union {
        struct {
            NSArray *trueFlags;
            NSArray *falseFlags;
            struct __CFArray *uids;
        } store;
        struct {
            unsigned int uid;
            NSArray *flags;
            int internalDate;
            unsigned int size;
        } append;
        struct {
            struct __CFArray *srcUids;
            struct __CFArray *dstUids;
            NSString *destinationMailbox;
        } copy;
    } _opSpecific;
}

+ (id)deserializeFromData:(id)fp8 cursor:(unsigned int *)fp12;
- (unsigned char)_magic;
- (void)_deserializeOpSpecificValuesFromData:(id)fp8 cursor:(unsigned int *)fp12;
- (void)serializeIntoData:(id)fp8;
- (id)initWithMailboxToCreate:(id)fp8;
- (id)initWithMailboxToDelete:(id)fp8;
- (id)initWithFlagsToSet:(id)fp8 flagsToClear:(id)fp12 forUids:(id)fp16 inMailbox:(id)fp20;
- (id)initWithUidsToCopy:(id)fp8 fromMailbox:(id)fp12 toMailbox:(id)fp16 firstNewUid:(unsigned int)fp20;
- (id)initWithAppendedUid:(unsigned int)fp8 approximateSize:(unsigned int)fp12 flags:(id)fp16 internalDate:(id)fp20 mailbox:(id)fp24;
- (void)dealloc;
- (BOOL)isSourceOfTemporaryUid:(unsigned int)fp8;
- (BOOL)actsOnTemporaryUid:(unsigned int)fp8;
- (void)expungeTemporaryUid:(unsigned int)fp8;
- (unsigned int)firstTemporaryUid;
- (unsigned int)lastTemporaryUid;
- (int)operationType;
- (id)mailboxName;
- (unsigned int)approximateSize;
- (BOOL)usesRealUids;
- (void)setUsesRealUids:(BOOL)fp8;
- (id)flagsToSet;
- (id)flagsToClear;
- (id)uids;
- (id)flags;
- (id)internalDate;
- (unsigned int)uid;
- (id)sourceUids;
- (id)destinationUids;
- (id)destinationMailbox;
- (unsigned int)sourceUidForTemporaryUid:(unsigned int)fp8;
- (BOOL)getMessageId:(id *)fp8 andInternalDate:(id *)fp12 forDestinationUid:(unsigned int)fp16;
- (void)setMessageId:(id)fp8 andInternalDate:(id)fp12 forMessageWithSourceUid:(unsigned int)fp16;
- (id)description;

@end

@interface IMAPOperationCache : NSObject
{
    IMAPAccount *_account;
    NSFileHandle *_handle;
    NSMutableArray *_ops;
    unsigned int _lastUid;
    unsigned int _lastSave;
    unsigned int _lastUidValidity;
}

- (id)initWithIMAPAccount:(id)fp8;
- (void)dealloc;
- (id)account;
- (void)_queueDeferredOperationAndRelease:(id)fp8;
- (void)createMailbox:(id)fp8;
- (void)deleteMailbox:(id)fp8;
- (void)setFlags:(id)fp8 andClearFlags:(id)fp12 forMessages:(id)fp16;
- (void)setFlags:(id)fp8 andClearFlags:(id)fp12 forUids:(id)fp16 forMailbox:(id)fp20;
- (unsigned int)firstUidForCopyingMessages:(id)fp8 fromMailbox:(id)fp12 toMailbox:(id)fp16;
- (unsigned int)uidForAppendingMessageData:(id)fp8 withFlags:(id)fp12 andInternalDate:(id)fp16 toMailbox:(id)fp20;
- (void)expungeTemporaryUid:(unsigned int)fp8;
- (void)saveChanges;
- (unsigned int)numberOfPendingChanges;
- (BOOL)hasOperationsForMailbox:(id)fp8;
- (BOOL)connection:(id)fp8 shouldHandleUntaggedResponse:(id)fp12 forCommand:(CDAnonymousStruct8 *)fp16;
- (void)_performCreateOperation:(id)fp8 withContext:(CDAnonymousStruct5 *)fp12;
- (void)_performDeleteOperation:(id)fp8 withContext:(CDAnonymousStruct5 *)fp12;
- (void)_performStoreOperation:(id)fp8 withContext:(CDAnonymousStruct5 *)fp12;
- (void)_performAppendOperation:(id)fp8 withContext:(CDAnonymousStruct5 *)fp12;
- (void)_performCopyOperation:(id)fp8 withContext:(CDAnonymousStruct5 *)fp12;
- (void)performDeferredOperationsWithConnection:(id)fp8;
- (id)deferredOperations;

@end

@interface IMAPResponse : NSObject
{
    unsigned int _responseType:8;
    NSString *_tag;
    union _IMAPResponseData _data;
}

- (int)responseType;
- (void)setResponseType:(int)fp8;
- (BOOL)isUntagged;
- (BOOL)isAlertResponse;
- (id)tag;
- (void)setTag:(id)fp8;
- (void)dealloc;
- (int)responseCode;
- (id)responseInfo;
- (id)userData;
- (id)userString;
- (void)setUserData:(id)fp8 responseCode:(int)fp12 responseInfo:(id)fp16;
- (id)capabilities;
- (void)setCapabilities:(id)fp8;
- (unsigned long)number;
- (void)setNumber:(unsigned long)fp8;
- (id)flags;
- (void)setFlags:(id)fp8;
- (id)mailboxName;
- (id)statusEntries;
- (void)setMailboxName:(id)fp8 statusEntries:(id)fp12;
- (id)searchResults;
- (void)setSearchResults:(id)fp8;
- (unsigned long)mailboxAttributes;
- (id)separator;
- (void)setMailboxAttributes:(unsigned long)fp8 separator:(id)fp12 mailboxName:(id)fp16 xlistExtra:(id)fp20;
- (id)permanentTag;
- (id)fetchResultWithType:(int)fp8;
- (id)fetchResults;
- (void)setFetchResults:(id)fp8;
- (id)quotaRootNames;
- (void)setMailboxName:(id)fp8 quotaRootNames:(id)fp12;
- (id)quotaRootName;
- (id)quotas;
- (void)setQuotaRootName:(id)fp8 quotas:(id)fp12;
- (int)uidFlagsChange;
- (void)setUidFlagsChange:(int)fp8;
- (id)uids;
- (void)setUids:(id)fp8;
- (id)flagsFetchResult;
- (void)setFlagsFetchResult:(id)fp8;
- (id)responseName;
- (id)parameters;
- (void)setResponseName:(id)fp8 parameters:(id)fp12;
- (id)description;
- (id)initWithConnection:(id)fp8;
- (id)initWithString:(id)fp8;

@end

@interface POP3Connection : Connection
{
    NSMutableData *_sendBuffer;
    struct __CFDictionary *_listResults;
    struct __CFDictionary *_messageIdsByNumber;
    struct __CFDictionary *_numbersByMessageId;
    NSData *_apopTimeStamp;
    id _delegate;
    unsigned int _numberOfMessagesAvailable:24;
    unsigned int _state:4;
    unsigned int _delegateRespondsToReceivedNumberOfBytes:1;
    unsigned int _delegateRespondsToWillRetrieveMessageNumber:1;
    unsigned int _delegateRespondsToDidRetrieveMessageNumber:1;
    unsigned int _hidingPassword:1;
    NSString *_accountURL;
}

- (id)init;
- (void)dealloc;
- (id)capabilities;
- (id)authenticationMechanisms;
- (BOOL)_doBasicConnectionWithAccount:(id)fp8;
- (BOOL)connectUsingAccount:(id)fp8;
- (BOOL)authenticateUsingAccount:(id)fp8;
- (BOOL)authenticateUsingAccount:(id)fp8 authenticator:(id)fp12;
- (int)quit;
- (BOOL)supportsAPOP;
- (void)disableAPOP;
- (int)doStat;
- (int)list:(int)fp8;
- (int)_getListResults;
- (int)_getUidlResults;
- (int)getMessageNumbers:(const struct __CFArray **)fp8 messageIdsByNumber:(const struct __CFDictionary **)fp12 numbersByMessageId:(const struct __CFDictionary **)fp16;
- (unsigned int)serverMessageCount;
- (int)getMessageNumbers:(const struct __CFArray **)fp8 andMessageIdsByNumber:(const struct __CFDictionary **)fp12;
- (id)idForMessageNumber:(int)fp8;
- (int)_retrieveMessage:(unsigned long)fp8 ofSize:(unsigned int)fp12 informDelegate:(BOOL)fp16 consumer:(id)fp20;
- (int)retr:(unsigned long)fp8 consumer:(id)fp12 intoQueue:(id)fp16 idsByNumber:(struct __CFDictionary *)fp20 allowIncomplete:(BOOL)fp24 queueStatus:(char *)fp28;
- (int)retr:(unsigned long)fp8 data:(id *)fp12;
- (int)retr:(unsigned long)fp8 dataConsumer:(id)fp12;
- (int)dele:(unsigned long)fp8;
- (id)retainedMessageHeaderForMessageNumber:(unsigned long)fp8;
- (void)getTopOfMessageNumber:(unsigned long)fp8 intoMutableData:(id)fp12;
- (unsigned long)sizeOfMessageNumber:(unsigned long)fp8;
- (BOOL)messagesAvailable;
- (unsigned int)numberOfMessagesAvailable;
- (int)fetchMessages:(struct __CFArray *)fp8 intoQueue:(id)fp12 serverIDsByNumber:(struct __CFDictionary *)fp16;
- (int)fetchMessages:(struct __CFArray *)fp8;
- (int)deleteMessagesOnServer:(struct __CFArray *)fp8;
- (void)setDelegate:(id)fp8;
- (id)delegate;
- (BOOL)startTLSForAccount:(id)fp8;

@end

@interface SimplePOPDataConsumer : NSObject <DataConsumer>
{
    NSMutableData *data;
}

- (void)appendData:(id)fp8;
- (void)done;
- (id)data;
- (void)dealloc;

@end

@interface NSError (POP3ConnectionExtensions)
- (int)POP3ResponseCode;
@end

@interface POP3Connection (PrivateCommands)
- (void)getTop:(int)fp8 ofMessageNumber:(unsigned long)fp12 intoMutableData:(id)fp16;
- (int)_readMultilineResponseWithMaxSize:(int)fp8 informDelegate:(BOOL)fp12 consumer:(id)fp16;
- (int)_sendCommand:(const char *)fp8 withArguments:(id)fp12;
- (id)copyReplyLineData;
- (int)_getStatusFromReply;
- (int)_apopWithUsername:(id)fp8 password:(id)fp12;
- (int)_user:(id)fp8;
- (int)_pass:(id)fp8;
@end

@interface POPMessage : Message
{
    int _messageNumber;
    NSString *_messageID;
    NSData *_messageData;
    BOOL _messageDataIsComplete;
    unsigned int _size;
    NSString *_accountURL;
}

- (void)dealloc;
- (int)messageNumber;
- (void)setMessageNumber:(int)fp8;
- (id)messageData;
- (void)setMessageData:(id)fp8 isComplete:(BOOL)fp12;
- (void)setMessageData:(id)fp8;
- (unsigned int)messageSize;
- (void)setMessageSize:(unsigned int)fp8;
- (id)messageDataIsComplete:(char *)fp8 downloadIfNecessary:(BOOL)fp12;
- (id)messageID;
- (void)setMessageID:(id)fp8;
- (id)remoteMailboxURL;
- (id)originalMailboxURL;
- (id)cachedAttributes;
- (id)headers;
- (void)setAccountURL:(id)fp8;

@end

@interface Message : NSObject
{
    MessageStore *_store;
    unsigned int _messageFlags;
    CDAnonymousStruct2 _flags;
    unsigned int _preferredEncoding;
    NSString *_senderAddressComment;
    unsigned int _dateSentInterval;
    unsigned int _dateReceivedInterval;
    NSString *_subject;
    unsigned char _subjectPrefixLength;
    NSString *_to;
    NSString *_cc;
    NSString *_sender;
    NSString *_contentType;
    NSData *_messageIDHeaderDigest;
    NSData *_inReplyToHeaderDigest;
    NSString *_summary;
}

+ (void)initialize;
+ (id)productName;
+ (id)verboseVersion;
+ (id)frameworkVersion;
+ (void)setUserAgent:(id)fp8;
+ (id)userAgent;
+ (id)mailDirectory;
+ (id)messageWithRFC822Data:(id)fp8;
+ (id)forwardedMessagePrefixWithSpacer:(BOOL)fp8;
+ (id)replyPrefixWithSpacer:(BOOL)fp8;
+ (unsigned int)validatePriority:(int)fp8;
+ (unsigned int)displayablePriorityForPriority:(int)fp8;
- (id)init;
- (id)copyWithZone:(struct _NSZone *)fp8;
- (id)messageStore;
- (void)setMessageStore:(id)fp8;
- (id)mailbox;
- (id)headers;
- (id)headersIfAvailable;
- (unsigned long)messageFlags;
- (void)setMessageFlags:(unsigned long)fp8;
- (void)setMessageFlagsWithoutCommitting:(unsigned long)fp8;
- (id)messageBody;
- (id)messageBodyIfAvailable;
- (id)messageBodyUpdatingFlags:(BOOL)fp8;
- (id)messageBodyIfAvailableUpdatingFlags:(BOOL)fp8;
- (id)messageDataIsComplete:(char *)fp8 downloadIfNecessary:(BOOL)fp12;
- (id)messageData;
- (void)setMessageData:(id)fp8 isPartial:(BOOL)fp12;
- (id)dataConsumerForMimePart:(id)fp8;
- (BOOL)colorHasBeenEvaluated;
- (void)setColorHasBeenEvaluated:(BOOL)fp8;
- (void)dealloc;
- (unsigned int)messageSize;
- (id)preferredEmailAddressToReplyWith;
- (id)messageID;
- (id)messageIDHeaderDigest;
- (id)messageIDHeader;
- (void)unlockedSetMessageIDHeaderDigest:(id)fp8;
- (void)setMessageIDHeaderDigest:(id)fp8;
- (id)_messageIDHeaderDigestIvar;
- (BOOL)needsMessageIDHeader;
- (id)inReplyToHeaderDigest;
- (void)unlockedSetInReplyToHeaderDigest:(id)fp8;
- (void)setInReplyToHeaderDigest:(id)fp8;
- (id)_inReplyToHeaderDigestIvar;
- (BOOL)isMessageContentsLocallyAvailable;
- (unsigned int)numberOfAttachments;
- (void)setPriorityFromHeaders:(id)fp8;
- (int)priority;
- (unsigned long)preferredEncoding;
- (void)setPreferredEncoding:(unsigned long)fp8;
- (BOOL)_doesDateAppearToBeSane:(id)fp8;
- (id)_copyDateFromReceivedHeadersInHeaders:(id)fp8;
- (id)_copyDateFromDateHeaderInHeaders:(id)fp8;
- (void)_setDateReceivedFromHeaders:(id)fp8;
- (void)_setDateSentFromHeaders:(id)fp8;
- (void)loadCachedHeaderValuesFromHeaders:(id)fp8;
- (id)subjectAndPrefixLength:(unsigned int *)fp8;
- (id)subjectNotIncludingReAndFwdPrefix;
- (id)subject;
- (void)setSubject:(id)fp8;
- (id)dateReceived;
- (id)dateSent;
- (void)setDateReceivedTimeIntervalSince1970:(double)fp8;
- (double)dateReceivedAsTimeIntervalSince1970;
- (BOOL)needsDateReceived;
- (double)dateSentAsTimeIntervalSince1970;
- (void)setDateSentTimeIntervalSince1970:(double)fp8;
- (id)contentType;
- (void)setContentType:(id)fp8;
- (id)sender;
- (id)senderIfCached;
- (void)setSender:(id)fp8;
- (id)senderAddressComment;
- (id)to;
- (id)toIfCached;
- (void)setTo:(id)fp8;
- (id)cc;
- (id)ccIfCached;
- (void)setCc:(id)fp8;
- (id)summary;
- (void)setSummary:(id)fp8;
- (void)setMessageInfo:(id)fp8 to:(id)fp12 cc:(id)fp16 sender:(id)fp20 dateReceivedTimeIntervalSince1970:(double)fp24 dateSentTimeIntervalSince1970:(double)fp32 messageIDHeaderDigest:(id)fp40 inReplyToHeaderDigest:(id)fp44 summary:(id)fp48;
- (void)setMessageInfoFromMessage:(id)fp8;
- (id)references;
- (id)remoteID;
- (unsigned long)uid;
- (CDAnonymousStruct2)moreMessageFlags;
- (id)path;
- (id)account;
- (void)markAsViewed;
- (void)markAsNotViewed;
- (void)markAsReplied;
- (void)markAsForwarded;
- (id)remoteMailboxURL;
- (id)originalMailboxURL;
- (id)persistentID;
- (id)bodyData;
- (id)bodyDataIsComplete:(char *)fp8;
- (id)headerData;
- (id)dataForMimePart:(id)fp8;
- (id)dataForMimePart:(id)fp8 inRange:(struct _NSRange)fp12 isComplete:(char *)fp20;
- (id)dataForMimePart:(id)fp8 inRange:(struct _NSRange)fp12 isComplete:(char *)fp20 downloadIfNecessary:(BOOL)fp24 didDownload:(char *)fp28;
- (id)dataPathForMimePart:(id)fp8;
- (void)_calculateAttachmentInfoFromBody:(id)fp8;
- (void)calculateAttachmentInfoFromBody:(id)fp8;
- (void)setNumberOfAttachments:(unsigned int)fp8 isSigned:(BOOL)fp12 isEncrypted:(BOOL)fp16;
- (void)setMutableInfoFromMessage:(id)fp8;
- (id)cachedAttributes;
- (id)URL;

@end

@interface MessageBody : NSObject
{
    Message *_message;
}

- (id)rawData;
- (id)htmlContentToOffset:(unsigned int)fp8 resultOffset:(unsigned int *)fp12;
- (id)contentToOffset:(unsigned int)fp8 resultOffset:(unsigned int *)fp12 asHTML:(BOOL)fp16;
- (id)htmlContent;
- (BOOL)isHTML;
- (BOOL)isRich;
- (void)setMessage:(id)fp8;
- (id)message;
- (unsigned int)numberOfAttachmentsSigned:(char *)fp8 encrypted:(char *)fp12;
- (id)attachments;
- (id)textHtmlPart;
- (id)webArchive;
- (void)dealloc;

@end

@interface MessageHeaders : NSObject <NSCopying>
{
    NSData *_data;
    unsigned int _preferredEncoding;
}

+ (BOOL)isStructuredHeaderKey:(id)fp8;
+ (id)localizedHeaders;
+ (id)localizedHeadersFromEnglishHeaders:(id)fp8;
+ (id)englishHeadersFromLocalizedHeaders:(id)fp8;
+ (id)uniqueHeaderKeyStringForString:(id)fp8;
- (id)initWithHeaderData:(id)fp8 encoding:(unsigned long)fp12;
- (id)copyWithZone:(struct _NSZone *)fp8;
- (void)dealloc;
- (id)mutableCopy;
- (id)headerData;
- (unsigned long)preferredEncoding;
- (void)setPreferredEncoding:(unsigned long)fp8;
- (BOOL)_isStructuredHeaderKey:(id)fp8;
- (id)markupStringShowingHeaderDetailLevel:(int)fp8;
- (id)allHeaderKeys;
- (void)_setCapitalizedKey:(id)fp8 forKey:(id)fp12;
- (id)_capitalizedKeyForKey:(id)fp8;
- (id)_copyHeaderValueForKey:(id)fp8 offset:(unsigned int *)fp12;
- (id)_headerValueForKey:(id)fp8 offset:(unsigned int *)fp12;
- (id)_copyHeaderValueForKey:(id)fp8;
- (id)_headerValueForKey:(id)fp8;
- (BOOL)hasHeaderForKey:(id)fp8;
- (id)copyHeadersForKey:(id)fp8;
- (id)headersForKey:(id)fp8;
- (id)firstHeaderForKey:(id)fp8;
- (id)copyFirstHeaderForKey:(id)fp8;
- (id)copyFirstStringValueForKey:(id)fp8;
- (id)_decodeHeaderKeysFromData:(id)fp8;
- (id)isoLatin1CharsetHint;
- (BOOL)messageIsFromEntourage;
- (void)_appendAddressList:(id)fp8 toData:(id)fp12;
- (id)encodedHeaders;
- (void)_appendHeaderData:(id)fp8 andRecipients:(id)fp12 expandPrivate:(BOOL)fp16 includeComment:(BOOL)fp20;
- (void)appendHeaderData:(id)fp8 andRecipients:(id)fp12;

@end

@interface MessageFlags : NSObject <NSCoding>
{
    unsigned int realFlags;
}

- (id)initWithCoder:(id)fp8;
- (void)encodeWithCoder:(id)fp8;

@end

@interface NSCoder (MFMessageFlags)
- (unsigned long)decodeMessageFlags;
@end

@interface OutgoingMessage : Message
{
    MessageBody *messageBody;
    MutableMessageHeaders *messageHeaders;
}

- (void)dealloc;
- (void)setMessageBody:(id)fp8;
- (id)messageStore;
- (id)messageBody;
- (id)messageBodyIfAvailable;
- (id)messageData;
- (id)messageDataIsComplete:(char *)fp8 downloadIfNecessary:(BOOL)fp12;
- (id)mutableHeaders;
- (void)setMutableHeaders:(id)fp8;
- (id)headers;
- (unsigned int)messageSize;

@end

@interface _OutgoingMessageBody : MessageBody
{
    NSMutableData *rawData;
}

- (void)dealloc;
- (id)mutableData;
- (id)rawData;

@end

@interface MessageWriter : NSObject
{
    unsigned int _createsMimeAlternatives:1;
    unsigned int _createsRichText:1;
    unsigned int _createsPlainTextOnly:1;
    unsigned int _allows8BitMimeParts:1;
    unsigned int _allowsBinaryMimeParts:1;
    unsigned int _allowsAppleDoubleAttachments:1;
    unsigned int _signsOutput:1;
    unsigned int _encryptsOutput:1;
    unsigned int _writeImageSize:1;
    unsigned int _writeSizeDispositionParameter:1;
    unsigned int _preferredEncoding;
    unsigned int _encodingHint;
    id _delegate;
}

- (id)init;
- (void)appendDataForMimePart:(id)fp8 toData:(id)fp12 withPartData:(id)fp16;
- (id)createMessageWithString:(id)fp8 headers:(id)fp12;
- (id)createMessageWithPlainTextDocumentsAndAttachments:(id)fp8 headers:(id)fp12;
- (id)createMessageWithHtmlString:(id)fp8 plainTextAlternative:(id)fp12 otherHtmlStringsAndAttachments:(id)fp16 headers:(id)fp20;
- (id)createMessageWithHtmlString:(id)fp8 attachments:(id)fp12 headers:(id)fp16;
- (void)setDelegate:(id)fp8;
- (BOOL)createsMimeAlternatives;
- (void)setCreatesMimeAlternatives:(BOOL)fp8;
- (BOOL)createsPlainTextOnly;
- (void)setCreatesPlainTextOnly:(BOOL)fp8;
- (BOOL)createsRichText;
- (void)setCreatesRichText:(BOOL)fp8;
- (BOOL)allows8BitMimeParts;
- (void)setAllows8BitMimeParts:(BOOL)fp8;
- (BOOL)allowsBinaryMimeParts;
- (void)setAllowsBinaryMimeParts:(BOOL)fp8;
- (BOOL)allowsAppleDoubleAttachments;
- (void)setAllowsAppleDoubleAttachments:(BOOL)fp8;
- (unsigned long)preferredEncoding;
- (void)setPreferredEncoding:(unsigned long)fp8;
- (unsigned long)encodingHint;
- (void)setEncodingHint:(unsigned long)fp8;
- (BOOL)signsOutput;
- (void)setSignsOutput:(BOOL)fp8;
- (BOOL)encryptsOutput;
- (void)setEncryptsOutput:(BOOL)fp8;
- (BOOL)writeImageSize;
- (void)setWriteImageSize:(BOOL)fp8;
- (void)setWriteSizeDispositionParameter:(BOOL)fp8;

@end

@interface MutableMessageHeaders : MessageHeaders
{
    NSMutableDictionary *_headersAdded;
    NSMutableArray *_headersRemoved;
}

- (id)mutableCopy;
- (void)dealloc;
- (id)allHeaderKeys;
- (BOOL)hasHeaderForKey:(id)fp8;
- (id)_headerValueForKey:(id)fp8;
- (id)firstHeaderForKey:(id)fp8;
- (void)removeHeaderForKey:(id)fp8;
- (void)setHeader:(id)fp8 forKey:(id)fp12;
- (void)_appendHeaderKey:(id)fp8 value:(id)fp12 toData:(id)fp16;
- (void)_appendAddedHeaderKey:(id)fp8 value:(id)fp12 toData:(id)fp16;
- (id)_copyHeaderValueForKey:(id)fp8;
- (id)_copyHeaderValueForKey:(id)fp8 offset:(unsigned int *)fp12;
- (id)encodedHeaders;
- (void)setAddressList:(id)fp8 forKey:(id)fp12;

@end

@interface MimeBody : MessageBody
{
    MimePart *_topLevelPart;
    unsigned int _preferredTextEncoding;
    unsigned int _preferredAlternative:16;
    unsigned int _numAlternatives:16;
}

+ (void)initialize;
+ (id)versionString;
+ (id)createMimeBoundary;
- (id)init;
- (void)dealloc;
- (id)topLevelPart;
- (void)setTopLevelPart:(id)fp8;
- (unsigned long)preferredTextEncoding;
- (void)setPreferredTextEncoding:(unsigned long)fp8;
- (id)mimeType;
- (id)mimeSubtype;
- (id)partWithNumber:(id)fp8;
- (BOOL)_isPossiblySignedOrEncrypted;
- (void)decodeIfNecessary;
- (unsigned int)numberOfAttachmentsSigned:(char *)fp8 encrypted:(char *)fp12;
- (id)attachments;
- (BOOL)isHTML;
- (BOOL)isRich;
- (id)contentToOffset:(unsigned int)fp8 resultOffset:(unsigned int *)fp12 asHTML:(BOOL)fp16;
- (id)htmlContentToOffset:(unsigned int)fp8 resultOffset:(unsigned int *)fp12;
- (unsigned int)totalTextSize;
- (int)numberOfAlternatives;
- (void)setPreferredAlternative:(int)fp8;
- (int)preferredAlternative;
- (id)preferredBodyPart;
- (id)textHtmlPart;

@end

@interface MimePart : NSObject
{
    NSString *_type;
    NSString *_subtype;
    NSMutableDictionary *_bodyParameters;
    NSString *_contentTransferEncoding;
    NSMutableDictionary *_otherIvars;
    struct _NSRange _range;
    id _parentOrBody;
    MimePart *_nextPart;
    PartialNetworkData *_partialData;
    NSData *_fullData;
}

+ (void)initialize;
+ (BOOL)parseContentTypeHeader:(id)fp8 type:(id *)fp12 subtype:(id *)fp16;
- (void)dealloc;
- (id)init;
- (id)type;
- (void)setType:(id)fp8;
- (id)subtype;
- (void)setSubtype:(id)fp8;
- (id)bodyParameterForKey:(id)fp8;
- (void)setBodyParameter:(id)fp8 forKey:(id)fp12;
- (id)bodyParameterKeys;
- (id)preservedHeaderValueForKey:(id)fp8;
- (id)contentTransferEncoding;
- (void)setContentTransferEncoding:(id)fp8;
- (id)disposition;
- (void)setDisposition:(id)fp8;
- (id)dispositionParameterForKey:(id)fp8;
- (void)setDispositionParameter:(id)fp8 forKey:(id)fp12;
- (id)dispositionParameterKeys;
- (id)contentDescription;
- (void)setContentDescription:(id)fp8;
- (id)contentID;
- (void)setContentID:(id)fp8;
- (id)contentLocation;
- (void)setContentLocation:(id)fp8;
- (id)languages;
- (void)setLanguages:(id)fp8;
- (id)parentPart;
- (id)firstChildPart;
- (id)nextSiblingPart;
- (id)subparts;
- (id)subpartAtIndex:(int)fp8;
- (void)setSubparts:(id)fp8;
- (void)addSubpart:(id)fp8;
- (struct _NSRange)range;
- (void)setRange:(struct _NSRange)fp8;
- (id)decodedDataForData:(id)fp8;
- (id)copyBodyDataToOffset:(unsigned int)fp8 resultOffset:(unsigned int *)fp12 downloadIfNecessary:(BOOL)fp16;
- (id)bodyDataToOffset:(unsigned int)fp8 resultOffset:(unsigned int *)fp12 downloadIfNecessary:(BOOL)fp16;
- (id)bodyDataForcingDownload:(BOOL)fp8;
- (id)bodyDataToOffset:(unsigned int)fp8 resultOffset:(unsigned int *)fp12;
- (id)copyBodyDataToOffset:(unsigned int)fp8 resultOffset:(unsigned int *)fp12;
- (id)bodyData;
- (id)availableBodyData;
- (id)mimeBody;
- (void)setMimeBody:(id)fp8;
- (id)description;
- (id)attachmentFilename;
- (unsigned int)numberOfAttachments;
- (void)getNumberOfAttachments:(unsigned int *)fp8 isSigned:(char *)fp12 isEncrypted:(char *)fp16;
- (id)attachments;
- (unsigned long)textEncoding;
- (unsigned int)approximateRawSize;
- (BOOL)isReadableText;
- (id)_partThatIsAttachment;
- (BOOL)isAttachment;
- (BOOL)isRich;
- (BOOL)isHTML;
- (BOOL)usesKnownSignatureProtocol;
- (id)contentToOffset:(unsigned int)fp8 resultOffset:(unsigned int *)fp12 downloadIfNecessary:(BOOL)fp16 asHTML:(BOOL)fp20;
- (id)htmlContentToOffset:(unsigned int)fp8 resultOffset:(unsigned int *)fp12 downloadIfNecessary:(BOOL)fp16;
- (id)htmlContentToOffset:(unsigned int)fp8 resultOffset:(unsigned int *)fp12;
- (id)contentToOffset:(unsigned int)fp8 resultOffset:(unsigned int *)fp12 asHTML:(BOOL)fp16;
- (id)htmlContent;
- (id)availableHtmlContent;
- (void)loadMoreHtmlContent;
- (unsigned int)totalTextSize;
- (id)fileWrapperForcingDownload:(BOOL)fp8;
- (id)fileWrapper;
- (void)configureFileWrapper:(id)fp8;
- (id)startPart;
- (int)numberOfAlternatives;
- (id)alternativeAtIndex:(int)fp8;
- (id)signedData;
- (id)textHtmlPart;
- (id)decryptedMessageBodyIsEncrypted:(char *)fp8 isSigned:(char *)fp12;
- (void)clearCachedDescryptedMessageBody;
- (void)_setDecryptedMessageBody:(id)fp8 isEncrypted:(BOOL)fp12 isSigned:(BOOL)fp16;

@end

@interface MimePart (DecodingSupport)
- (id)chosenAlternativePart;
- (id)_fullMimeTypeEvenInsideAppleDouble;
- (id)contentsForTextSystemToOffset:(unsigned int)fp8 resultOffset:(unsigned int *)fp12 downloadIfNecessary:(BOOL)fp16 asHTML:(BOOL)fp20;
- (id)contentsForTextSystemToOffset:(unsigned int)fp8 resultOffset:(unsigned int *)fp12 downloadIfNecessary:(BOOL)fp16;
- (id)contentsForTextSystemToOffset:(unsigned int)fp8 resultOffset:(unsigned int *)fp12;
- (id)contentsForTextSystemForcingDownload:(BOOL)fp8;
- (id)contentsForTextSystem;
- (id)decodeTextPlain;
- (id)decodeText;
- (id)decodeTextRichtext;
- (id)decodeTextEnriched;
- (id)decodeTextHtml;
- (id)decodeTextCalendar;
- (id)decodeMultipart;
- (id)decodeMultipartRelated;
- (id)decodeMultipartAlternative;
- (id)decodeMultipartSigned;
- (id)decodeApplicationOctet_stream;
- (id)decodeApplicationZip;
- (id)decodeMessageDelivery_status;
- (id)decodeMessagePartial;
- (id)decodeMessageExternal_body;
- (id)decodeMultipartAppledouble;
@end

@interface MimePart (IMAPSupport)
- (BOOL)parseIMAPPropertyList:(id)fp8;
- (id)partNumber;
@end

@interface MimePart (MessageSupport)
- (BOOL)parseMimeBody;
@end

@interface NSMutableData (MimeDataEncoding)
- (void)appendQuotedPrintableDataForHeaderBytes:(const char *)fp8 length:(unsigned int)fp12;
@end

@interface NSData (MimeDataEncoding)
+ (unsigned int)quotedPrintableLengthOfHeaderBytes:(const char *)fp8 length:(unsigned int)fp12;
- (id)decodeQuotedPrintableForText:(BOOL)fp8;
- (id)encodeQuotedPrintableForText:(BOOL)fp8;
- (id)encodeQuotedPrintableForText:(BOOL)fp8 allowCancel:(BOOL)fp12;
- (id)decodeBase64;
- (id)decodeBase64InRange:(struct _NSRange *)fp8;
- (BOOL)isValidBase64Data;
- (id)encodeBase64WithoutLineBreaks;
- (id)encodeBase64WithoutLineBreaksOrPadding;
- (id)encodeBase64;
- (id)encodeBase64AllowCancel:(BOOL)fp8;
- (id)decodeModifiedBase64;
- (id)encodeModifiedBase64;
- (id)encodeBase64HeaderData;
- (void)appendBase64EncodedDataToData:(id)fp8;
@end

@interface MimeEnrichedReader : NSObject
{
    struct {
        unsigned short buffer[64];
        struct __CFString *theString;
        unsigned short *directBuffer;
        struct {
            int location;
            int length;
        } rangeToBuffer;
        int bufferedRangeStart;
        int bufferedRangeEnd;
    } _inputBuffer;
    int _currentIndex;
    int _inputLength;
    unsigned int _noFillLevel:30;
    unsigned int _eatOneNewline:1;
    unsigned int _insideComment:1;
    unsigned int _wantsPlainText:1;
    int _lastQuoteLevel;
    struct __CFArray *_commandStack;
    id _outputString;
    NSMutableString *_outputBuffer;
    struct __CFString *_prependHTML;
    struct __CFString *_postpendHTML;
    float _indentWidth;
}

+ (struct __CFCharacterSet *)punctuationSet;
+ (struct __CFCharacterSet *)parenSet;
- (void)setWantsHTML:(BOOL)fp8;
- (void)mismatchError:(id)fp8;
- (void)dealloc;
- (void)appendStringToBuffer:(id)fp8;
- (void)resetStateWithString:(id)fp8 outputString:(id)fp12;
- (void)nowWouldBeAGoodTimeToAppendToTheAttributedString;
- (void)closeUpQuoting;
- (void)handleNoParameterCommand:(const CDAnonymousStruct7 *)fp8;
- (void)setupFontStackEntry:(struct _CommandStackEntry *)fp8;
- (void)beginCommand:(id)fp8;
- (void)endCommand:(id)fp8;
- (void)parseParameterString:(id)fp8;
- (id)currentFont;
- (void)appendNewLine:(id)fp8;
- (int)readTokenInto:(id *)fp8;
- (void)convertRichTextString:(id)fp8 intoOutputString:(id)fp12;
- (void)convertEnrichedString:(id)fp8 intoOutputString:(id)fp12;
- (id)description;

@end

@interface NSString (MimeEnrichedReader)
+ (id)stringFromMimeRichTextString:(id)fp8 asHTML:(BOOL)fp12;
+ (id)stringFromMimeEnrichedString:(id)fp8 asHTML:(BOOL)fp12;
@end

@interface NSMutableData (RFC2231Support)
- (void)appendRFC2231CompliantValue:(id)fp8 forKey:(id)fp12;
@end

@interface NSMutableDictionary (RFC2231Support)
- (void)fixupRFC2231Values;
@end

@interface NSString (MimeHeaderEncoding)
- (id)encodedHeaderData;
- (id)encodedHeaderDataWithEncodingHint:(unsigned long)fp8;
- (id)decodeMimeHeaderValue;
- (id)decodeMimeHeaderValueWithCharsetHint:(id)fp8;
@end

@interface MimeTextAttachment : MessageTextAttachment
{
    MimePart *_mimePart;
}

- (void)dealloc;
- (id)initWithMimePart:(id)fp8;
- (id)initWithMimePart:(id)fp8 andFileWrapper:(id)fp12;
- (id)mimePart;
- (id)displayedMimePart;
- (void)setMimePart:(id)fp8;
- (id)fileWrapperForcingDownload:(BOOL)fp8;
- (void)setFileWrapper:(id)fp8;
- (unsigned int)approximateSize;
- (BOOL)shouldDownloadAttachmentOnDisplay;

@end

@interface MessageTextAttachment : NSObject
{
    MessageFileWrapper *_fileWrapper;
}

- (id)initWithWrapper:(id)fp8;
- (void)dealloc;
- (unsigned int)approximateSize;
- (id)mimePart;
- (BOOL)hasBeenDownloaded;
- (BOOL)isPlaceholder;
- (BOOL)shouldDownloadAttachmentOnDisplay;
- (void)setFileWrapper:(id)fp8;
- (id)fileWrapper;
- (id)fileWrapperForcingDownload:(BOOL)fp8;
- (void)inlineDisplayData:(id *)fp8 mimeType:(id *)fp12;
- (BOOL)allowDownload;

@end

@interface FormatFlowedWriter : NSObject
{
    PlainTextDocument *_inputDocument;
    unsigned int _encoding;
    NSMutableString *_outputString;
    unsigned int _addedTrailingSpaces:1;
    NSMutableString *_lineString;
}

+ (id)newWithPlainTextDocument:(id)fp8 encoding:(unsigned long)fp12;
- (void)dealloc;
- (unsigned int)_findLineBreakInRange:(struct _NSRange)fp8 maxCharWidthCount:(unsigned int)fp16 endIsURL:(BOOL)fp20;
- (void)_outputQuotedParagraph:(id)fp8 range:(struct _NSRange)fp12 withQuoteLevel:(unsigned int)fp20;
- (id)outputString;
- (BOOL)addedTrailingSpaces;

@end

@interface PlainTextDocument (FormatFlowedSupport)
- (void)getFormatFlowedString:(id *)fp8 insertedTrailingSpaces:(char *)fp12 encoding:(unsigned long)fp16;
@end

@interface NSString (FormatFlowedSupport)
- (id)convertFromFlowedText:(unsigned int)fp8;
@end

@interface NSString (FormatFlowedSupportInternal)
- (unsigned int)lineBreakBeforeIndex:(unsigned int)fp8 withinRange:(struct _NSRange)fp12;
- (unsigned int)nextWordFromIndex:(unsigned int)fp8 forward:(BOOL)fp12;
@end

@interface MessageURLProtocol : NSURLProtocol
{
}

+ (void)initialize;
+ (BOOL)canInitWithRequest:(id)fp8;
+ (id)canonicalRequestForRequest:(id)fp8;
+ (BOOL)requestIsCacheEquivalent:(id)fp8 toRequest:(id)fp12;
- (void)startLoading;
- (void)stopLoading;

@end

@interface WebAttachmentSource (Mail)
- (int)priority;
@end

@interface WebMessageDocument : WebAttachmentSource
{
    NSDictionary *_partsByURL;
    NSDictionary *_partsByFilename;
    NSMutableDictionary *_attachmentsByURL;
    MimeBody *_mimeBody;
    MimePart *_htmlPart;
    NSData *_htmlData;
    unsigned int _preferredCharset;
    unsigned int _downloadRemoteURLs:1;
    unsigned int _containsRemoteContent:1;
    BOOL _messageIsFromEntourage;
}

- (void)dealloc;
- (id)init;
- (id)initWithMimeBody:(id)fp8;
- (id)initWithMimePart:(id)fp8;
- (id)initWithMimePart:(id)fp8 htmlData:(id)fp12 encoding:(unsigned long)fp16;
- (id)mimePartForURL:(id)fp8;
- (id)attachmentForURL:(id)fp8;
- (id)attachmentsInDocument;
- (id)mimeBody;
- (id)mimePart;
- (void)setPreferredEncoding:(unsigned long)fp8;
- (id)preferredCharacterSet;
- (id)htmlData;
- (id)fileWrapper;
- (void)setDownloadRemoteURLs:(BOOL)fp8;
- (BOOL)downloadRemoteURLs;
- (void)setContainsRemoteContent:(BOOL)fp8;
- (BOOL)containsRemoteContent;
- (void)setMessageIsFromEntourage:(BOOL)fp8;
- (BOOL)messageIsFromEntourage;
- (void)appendHTMLData:(id)fp8;

@end

@interface Account : NSObject
{
    NSMutableDictionary *_info;
    unsigned int _isOffline:1;
    unsigned int _autosynchronizingEnabled:1;
    unsigned int _isActive:2;
}

+ (BOOL)_shouldUseKeychain;
+ (void)initialize;
+ (BOOL)haveAccountsBeenConfigured;
+ (BOOL)isPredefinedAccountType;
+ (id)predefinedValueForKey:(id)fp8;
+ (id)readAccountsUsingKey:(id)fp8;
+ (void)saveAccounts:(id)fp8 usingKey:(id)fp12;
+ (void)saveAccountInfoToDefaults;
+ (id)createAccountWithDictionary:(id)fp8;
+ (id)accountTypeString;
+ (id)displayedAccountTypeString;
+ (id)myFullName;
+ (id)accountInfoValueForKey:(id)fp8 value:(id)fp12;
+ (BOOL)allObjectsInArrayAreOffline:(id)fp8;
+ (BOOL)isSSLEditable;
+ (id)saslProfileName;
- (id)init;
- (void)dealloc;
- (void)willSleep:(id)fp8;
- (void)setAutosynchronizingEnabled:(BOOL)fp8;
- (void)_queueAccountInfoDidChange;
- (id)accountInfo;
- (void)_setAccountInfo:(id)fp8;
- (void)setAccountInfo:(id)fp8;
- (void)setValueInAccountInfo:(id)fp8 forKey:(id)fp12;
- (void)removeValueInAccountInfoForKey:(id)fp8;
- (id)valueInAccountInfoForKey:(id)fp8;
- (id)defaultsDictionary;
- (BOOL)isActive;
- (void)setIsActive:(BOOL)fp8;
- (BOOL)isInactivatedInsteadOfBeingDeleted;
- (void)setInactivatedInsteadOfBeingDeleted:(BOOL)fp8;
- (BOOL)canGoOffline;
- (BOOL)isOffline;
- (void)setIsOffline:(BOOL)fp8;
- (id)displayName;
- (void)setDisplayName:(id)fp8;
- (id)username;
- (void)setUsername:(id)fp8;
- (id)hostname;
- (void)setHostname:(id)fp8;
- (void)setPasswordInKeychain:(id)fp8;
- (void)_removePasswordInKeychain;
- (void)setTemporaryPassword:(id)fp8;
- (void)setPassword:(id)fp8;
- (id)passwordFromStoredUserInfo;
- (id)passwordFromKeychain;
- (id)password;
- (id)promptUserForPasswordWithMessage:(id)fp8;
- (BOOL)storesPassword;
- (BOOL)needsCredentials;
- (BOOL)acquireCredentialsWithPassword:(id)fp8;
- (id)promptUserIfNeededForPasswordWithMessage:(id)fp8;
- (unsigned int)portNumber;
- (unsigned int)defaultPortNumber;
- (unsigned int)defaultSecurePortNumber;
- (unsigned int)keychainPortNumber;
- (void)setPortNumber:(unsigned int)fp8;
- (BOOL)isCommonPortNumber:(unsigned int)fp8;
- (id)serviceName;
- (id)secureServiceName;
- (long)dataContextIdentifier;
- (void)releaseAllConnections;
- (void)releaseAllForcedConnections;
- (void)validateConnections;
- (BOOL)usesSSL;
- (void)setUsesSSL:(BOOL)fp8;
- (void)setTryDirectSSL:(BOOL)fp8;
- (id)domain;
- (void)setDomain:(id)fp8;
- (void)accountInfoDidChange;
- (id)preferredAuthScheme;
- (void)setPreferredAuthScheme:(id)fp8;
- (Class)connectionClass;
- (BOOL)requiresAuthentication;
- (id)authenticatedConnection;
- (id)defaultConnectionSettings;
- (void)applySettingsAsDefault:(id)fp8;
- (id)alternateConnectionSettings;
- (id)insecureConnectionSettings;
- (id)secureConnectionSettings;
- (BOOL)_shouldTryDirectSSLConnectionOnPort:(unsigned int)fp8;
- (id)customTitleForError:(id)fp8 authScheme:(id)fp12 defaultTitle:(id)fp16;
- (id)customTitleForAuthenticationError:(id)fp8 authScheme:(id)fp12 defaultTitle:(id)fp16;
- (id)customDescriptionForError:(id)fp8 authScheme:(id)fp12 defaultDescription:(id)fp16;
- (BOOL)isPasswordMissing;
- (void)reportAuthenticationError:(id)fp8 authScheme:(id)fp12;
- (BOOL)_connectAndAuthenticate:(id)fp8;
- (id)uniqueId;
- (id)nameForMailboxUid:(id)fp8;
- (void)setUserApprovedCertificateDigest:(id)fp8;
- (id)userApprovedCertificateDigest;
- (BOOL)shouldEnableAfterError:(id)fp8;
- (BOOL)enableAccount;

@end

@interface MailAccount : Account
{
    NSString *_path;
    MailboxUid *_rootMailboxUid;
    struct {
        unsigned int cacheDirtyCount:16;
        unsigned int synchronizationThreadIsRunning:1;
        unsigned int backgroundFetchInProgress:1;
        unsigned int cacheHasBeenRead:1;
        unsigned int disableCacheWrite:1;
        unsigned int _UNUSED_:12;
    } _flags;
    MailboxUid *_inboxMailboxUid;
    MailboxUid *_draftsMailboxUid;
    MailboxUid *_sentMessagesMailboxUid;
    MailboxUid *_trashMailboxUid;
    MFError *_lastConnectionError;
    MessageLibrary *_library;
}

+ (void)initialize;
+ (BOOL)mailboxListingNotificationAreEnabled;
+ (void)disableMailboxListingNotifications;
+ (void)enableMailboxListingNotifications:(BOOL)fp8;
+ (BOOL)haveAccountsBeenConfigured;
+ (void)_addAccountToSortedPaths:(id)fp8;
+ (id)mailAccounts;
+ (void)setMailAccounts:(id)fp8;
+ (void)_removeAccountFromSortedPaths:(id)fp8;
+ (id)activeAccounts;
+ (void)setMailAccounts:(id)fp8 saveIfChanged:(BOOL)fp12;
+ (void)saveAccountInfoToDefaults;
+ (id)accountWithUniqueId:(id)fp8;
+ (id)existingAccountWithType:(id)fp8 hostname:(id)fp12 username:(id)fp16;
+ (void)resetMailboxTimers;
+ (id)allEmailAddressesIncludingFullUserName:(BOOL)fp8;
+ (id)_accountContainingEmailAddress:(id)fp8 matchingAddress:(id *)fp12 fullUserName:(id *)fp16;
+ (id)accountContainingEmailAddress:(id)fp8;
+ (id)accountForHeaders:(id)fp8 message:(id)fp12;
+ (id)accountUsingHeadersFromMessage:(id)fp8;
+ (id)accountThatMessageIsFrom:(id)fp8;
+ (id)addressesThatReceivedMessage:(id)fp8;
+ (id)outboxMailboxUid;
+ (id)outboxMessageStore:(BOOL)fp8;
+ (id)allMailboxUids;
+ (id)accountWithPath:(id)fp8;
+ (id)newAccountWithPath:(id)fp8;
+ (id)createAccountWithDictionary:(id)fp8;
+ (id)defaultPathForAccountWithHostname:(id)fp8 username:(id)fp12;
+ (id)defaultAccountDirectory;
+ (id)defaultPathNameForAccountWithHostname:(id)fp8 username:(id)fp12;
+ (id)defaultDeliveryAccount;
+ (BOOL)isPredefinedAccountType;
+ (BOOL)isAnyAccountOffline;
+ (BOOL)isAnyAccountOnline;
+ (void)_setOnlineStateOfAllAccountsTo:(BOOL)fp8;
+ (void)disconnectAllAccounts;
+ (void)connectAllAccounts;
+ (void)saveStateForAllAccounts;
+ (void)synchronouslyEmptyMailboxUidType:(int)fp8 inAccounts:(id)fp12;
+ (id)mailboxUidForFileSystemPath:(id)fp8 create:(BOOL)fp12;
+ (void)deleteMailboxUidIfEmpty:(id)fp8;
+ (id)_accountForURL:(id)fp8 includeInactiveAccounts:(BOOL)fp12;
+ (id)_accountForURL:(id)fp8;
+ (id)infoForURL:(id)fp8;
+ (id)URLForInfo:(id)fp8;
+ (id)accountWithURLString:(id)fp8;
+ (id)accountWithURLString:(id)fp8 includeInactiveAccounts:(BOOL)fp12;
+ (id)mailboxUidForURL:(id)fp8;
+ (id)standardAccountClass:(Class)fp8 valueForKey:(id)fp12;
+ (id)predefinedValueForKey:(id)fp8;
+ (BOOL)usernameIsEmailAddress;
- (void)resetMailboxTimer;
- (BOOL)isValidAccountWithError:(id)fp8 accountBeingEdited:(id)fp12 userCanOverride:(char *)fp16;
- (BOOL)cheapStoreAtPathIsEmpty:(id)fp8;
- (id)init;
- (id)initWithPath:(id)fp8;
- (void)dealloc;
- (id)path;
- (void)setPath:(id)fp8;
- (id)tildeAbbreviatedPath;
- (id)fullUserName;
- (void)setFullUserName:(id)fp8;
- (id)deliveryAccount;
- (void)setDeliveryAccount:(id)fp8;
- (void)deliveryAccountWillBeRemoved:(id)fp8;
- (BOOL)isDotMacAccount;
- (id)firstEmailAddress;
- (id)emailAddresses;
- (void)setEmailAddresses:(id)fp8;
- (id)valueInAccountInfoForKey:(id)fp8;
- (BOOL)shouldAutoFetch;
- (void)setShouldAutoFetch:(BOOL)fp8;
- (BOOL)fileManager:(id)fp8 shouldProceedAfterError:(id)fp12;
- (void)_deleteHook;
- (void)_synchronouslyInvalidateAndDelete:(unsigned int)fp8;
- (void)_synchronouslyInvalidateAndDeleteWrapper:(id)fp8;
- (id)deleteAccountWithOptions:(unsigned int)fp8;
- (id)deleteAccount;
- (void)saveState;
- (void)releaseAllConnections;
- (void)releaseAllForcedConnections;
- (void)setIsOffline:(BOOL)fp8;
- (BOOL)canFetch;
- (id)defaultsDictionary;
- (void)nowWouldBeAGoodTimeToStartBackgroundSynchronization;
- (void)fetchMailboxList;
- (BOOL)canAppendMessages;
- (BOOL)canBeSynchronized;
- (void)synchronizeAllMailboxes;
- (void)fetchAsynchronously;
- (void)fetchAsynchronouslyLite;
- (int)fetchSynchronouslyLite;
- (int)fetchSynchronously;
- (BOOL)isFetching;
- (void)newMailHasBeenReceived;
- (id)primaryMailboxUid;
- (id)rootMailboxUid;
- (BOOL)shouldExpungeMessagesOnDelete;
- (id)mailboxUidOfType:(int)fp8 createIfNeeded:(BOOL)fp12;
- (id)specialMailboxNameForType:(int)fp8;
- (id)allMailboxUids;
- (id)transferDisabledMailboxUids;
- (void)setMailboxUid:(id)fp8 forMailboxType:(int)fp12;
- (void)deleteMessagesFromMailboxUid:(id)fp8 olderThanNumberOfDays:(unsigned int)fp12;
- (void)_setEmptyFrequency:(int)fp8 forKey:(id)fp12;
- (int)_emptyFrequencyForKey:(id)fp8 defaultValue:(id)fp12;
- (int)emptyFrequencyForMailboxType:(int)fp8;
- (void)setEmptyFrequency:(int)fp8 forMailboxType:(int)fp12;
- (id)displayName;
- (id)displayNameForMailboxUid:(id)fp8;
- (BOOL)containsMailboxes;
- (BOOL)_resetSpecialMailboxes;
- (void)resetSpecialMailboxes;
- (id)mailboxPathExtension;
- (BOOL)canCreateNewMailboxes;
- (BOOL)newMailboxNameIsAcceptable:(id)fp8 reasonForFailure:(id *)fp12;
- (BOOL)canMailboxBeRenamed:(id)fp8;
- (BOOL)canMailboxBeDeleted:(id)fp8;
- (id)createMailboxWithParent:(id)fp8 name:(id)fp12;
- (BOOL)renameMailbox:(id)fp8 newName:(id)fp12 parent:(id)fp16;
- (BOOL)deleteMailbox:(id)fp8;
- (void)_resetAllMailboxURLs:(BOOL)fp8;
- (void)resetMailboxURLs;
- (void)setUsername:(id)fp8;
- (void)setHostname:(id)fp8;
- (void)setPortNumber:(unsigned int)fp8;
- (void)setValueInAccountInfo:(id)fp8 forKey:(id)fp12;
- (void)postUserInfoHasChangedForMailboxUid:(id)fp8 userInfo:(id)fp12;
- (void)setConnectionError:(id)fp8;
- (id)connectionError;
- (id)storeForMailboxUid:(id)fp8;
- (Class)storeClass;
- (Class)storeClassForMailbox:(id)fp8;
- (void)setUnreadCount:(unsigned int)fp8 forMailbox:(id)fp12;
- (BOOL)hasUnreadMail;
- (id)mailboxUidForRelativePath:(id)fp8 create:(BOOL)fp12;
- (id)URLString;
- (int)fetchWindowSize;
- (id)beginningOfDefaultFetchWindow;
- (int)numberOfMessagesToFetch;
- (void)emptyTrash;
- (BOOL)receivesNewMailNotifications;
- (void)startListeningForNotifications;
- (void)stopListeningForNotifications;
- (void)systemDidWake;
- (void)systemWillSleep;
- (BOOL)canForwardWithoutDownload;
- (void)setLibrary:(id)fp8;
- (id)library;
- (void)setupLibrary;
- (id)displayUsername;
- (BOOL)archiveSentMessages;
- (BOOL)deleteInPlace;
- (id)displayNameUsingSpecialNamesForMailboxUid:(id)fp8;

@end

@interface NSArray (SortedMailboxes)
- (unsigned int)indexOfMailboxDictionaryWithName:(id)fp8;
@end

@interface MailAccount (Internal)
+ (id)_accountWithPath:(id)fp8;
+ (void)_postMailAccountsHaveChanged;
+ (void)_setOutboxMailboxUid:(id)fp8;
- (BOOL)_setPath:(id)fp8;
- (void)setIsActive:(BOOL)fp8;
- (void)_postMailAccountsHaveChangedIfNeeded;
- (id)_pathComponentForUidName:(id)fp8;
- (id)_uidNameForPathComponent:(id)fp8;
- (id)_copyMailboxUidWithParent:(id)fp8 name:(id)fp12 attributes:(unsigned int)fp16 existingMailboxUid:(id)fp20 permanentTag:(id)fp24;
- (void)_synchronouslyLoadListingForParent:(id)fp8;
- (void)_loadMailboxListingIntoCache:(id)fp8 attributes:(unsigned int)fp12 children:(id)fp16 parent:(id)fp20;
- (void)_mailboxesWereRemovedFromTree:(id)fp8 withFileSystemPaths:(id)fp12;
- (BOOL)_usesMailboxCache;
- (id)_mailboxCachePath;
- (void)_synchronizeMailboxListWithFileSystem;
- (void)_loadEntriesFromFileSystemPath:(id)fp8 parent:(id)fp12;
- (void)_writeMailboxCacheWithPrejudice:(BOOL)fp8;
- (id)_insertMailbox:(id)fp8 intoParent:(id)fp12 withName:(id)fp16;
- (BOOL)_setChildren:(id)fp8 forMailboxUid:(id)fp12;
- (BOOL)_deleteMailbox:(id)fp8;
- (id)description;
- (void)_fetchSynchronouslyIfNeeded;
- (void)_backgroundFetchCompletedCount:(unsigned int)fp8;
- (void)_backgroundFetchCompleted;
- (id)_defaultSpecialMailboxNameForType:(int)fp8;
- (BOOL)_assignSpecialMailboxToAppropriateIvar:(id)fp8 forType:(int)fp12 delete:(BOOL)fp16;
- (void)_setSpecialMailboxName:(id)fp8 forType:(int)fp12;
- (void)_setSpecialMailbox:(id)fp8 forType:(int)fp12;
- (id)_specialMailboxUidWithType:(int)fp8 create:(BOOL)fp12;
- (BOOL)_canEmptyMessagesFromMailboxUid:(id)fp8;
- (BOOL)_shouldLogDeleteActivity;
- (id)_infoForMatchingURL:(id)fp8;
- (id)_URLScheme;
- (id)_URLForInfo:(id)fp8;
- (id)_mailboxPathPrefix;
- (void)_readCustomInfoFromMailboxCache:(id)fp8;
- (void)_writeCustomInfoToMailboxCache:(id)fp8;
- (id)URLForMessage:(id)fp8;
- (void)_cleanInboxDuplication:(id)fp8;
@end

@interface MailboxUidChildrenEnumerator : NSEnumerator
{
    struct __CFTree *_root;
    struct __CFTree *_currentTree;
    BOOL _includeHidden;
}

- (void)dealloc;
- (id)_initWithTree:(struct __CFTree *)fp8 includeHiddenChildren:(BOOL)fp12;
- (id)nextObject;

@end

@interface _MailboxUidEnumerator : NSEnumerator
{
    struct __CFTree *_startTree;
    struct __CFTree *_lastTree;
}

- (void)dealloc;
- (id)initWithTree:(struct __CFTree *)fp8;
- (id)nextObject;

@end

@interface MailboxUid : NSObject
{
    NSString *uniqueId;
    id _accountOrPathComponent;
    unsigned int _attributes;
    void *_tree;
    NSString *pendingNameChange;
    MessageCriterion *_criterion;
    BOOL allCriteriaMustBeSatisfied;
    NSString *_realFullPath;
    unsigned int _numberOfGenericChildren;
    NSString *_permanentTag;
}

+ (id)specialNameForType:(int)fp8;
+ (id)specialMailboxUids;
- (void)dealloc;
- (id)init;
- (id)initWithAccount:(id)fp8;
- (id)initWithName:(id)fp8 attributes:(unsigned int)fp12 forAccount:(id)fp16 permanentTag:(id)fp20;
- (id)uniqueId;
- (id)displayName;
- (void)setPendingNameChange:(id)fp8;
- (id)name;
- (id)displayNameUsingSpecialNames;
- (void)setName:(id)fp8;
- (id)permanentTag;
- (void)setPermanentTag:(id)fp8;
- (unsigned int)attributes;
- (void)setAttributes:(unsigned int)fp8;
- (unsigned int)unreadCount;
- (BOOL)setUnreadCount:(unsigned int)fp8;
- (unsigned int)nonDeletedCount;
- (id)children;
- (BOOL)hasChildren;
- (void)invalidateCachedNumberOfGenericChildren;
- (unsigned int)numberOfGenericChildren;
- (id)childEnumerator;
- (id)childEnumeratorIncludingHiddenChildren:(BOOL)fp8;
- (id)depthFirstEnumerator;
- (unsigned int)numberOfChildren;
- (id)childAtIndex:(unsigned int)fp8;
- (unsigned int)indexOfChild:(id)fp8;
- (id)childWithName:(id)fp8;
- (id)childWithPermanentTag:(id)fp8;
- (id)descendantWithPermanentTag:(id)fp8;
- (id)mutableCopyOfChildren;
- (void)_deleteChildrenWithURLsIfInvalid:(id)fp8 fullPaths:(id)fp12;
- (BOOL)setChildren:(id)fp8;
- (void)sortChildren;
- (id)parent;
- (void)setParent:(id)fp8;
- (void)flushCriteria;
- (void)setRepresentedAccount:(id)fp8;
- (id)representedAccount;
- (id)account;
- (BOOL)isValid;
- (void)invalidate;
- (BOOL)isContainer;
- (BOOL)isStore;
- (BOOL)isSpecialMailboxUid;
- (BOOL)isOutgoingMailboxUid;
- (id)accountRelativePath;
- (id)fullPathNonNil;
- (id)fullPath;
- (id)realFullPath;
- (id)tildeAbbreviatedPath;
- (id)pathRelativeToMailbox:(id)fp8;
- (id)URL;
- (id)URLStringWithAccount:(id)fp8;
- (id)oldURLString;
- (id)URLString;
- (int)compareWithMailboxUid:(id)fp8;
- (int)indexToInsertChildMailboxUid:(id)fp8;
- (BOOL)isDescendantOfMailbox:(id)fp8;
- (id)description;
- (int)type;
- (void)setType:(int)fp8;
- (BOOL)isVisible;
- (id)_loadUserInfo;
- (id)userInfoObjectForKey:(id)fp8;
- (void)setUserInfoObject:(id)fp8 forKey:(id)fp12;
- (BOOL)userInfoBoolForKey:(id)fp8;
- (void)setUserInfoBool:(BOOL)fp8 forKey:(id)fp12;
- (void)saveUserInfo;
- (id)userInfoDictionary;
- (void)setUserInfoWithDictionary:(id)fp8;
- (id)userInfo;
- (id)ancestralAccount;
- (id)criterion;
- (void)setCriterion:(id)fp8;
- (id)store;
- (id)copyWithZone:(id)fp8;
- (BOOL)isSelectable;

@end

@interface IMAPAccount : MailAccount <IMAPMailboxListFilter>
{
    NSString *_separatorChar;
    struct __CFArray *_lastKnownCapabilities;
    struct __CFArray *_cachedConnections;
    struct __CFArray *_mailboxesToSynchronize;
    unsigned int _readBufferSize:31;
    unsigned int _lastConnectionFailed:1;
    IMAPOperationCache *_offlineCache;
    NSLock *_mailboxListingLock;
    NSMutableSet *_mailboxesWithChangedUidNext;
    int _greatestInboxUid;
    double _timeLastFetchedMailboxList;
    NSRecursiveLock *_flagChangesLock;
    NSMutableArray *_recentFlagChanges;
    int _nextConnectionTag;
}

+ (void)initialize;
+ (id)saslProfileName;
+ (id)accountTypeString;
+ (void)_deleteQueuedMailboxes:(id)fp8;
- (id)init;
- (void)messagesAdded:(id)fp8;
- (int)greatestInboxUid;
- (int)minUID;
- (int)minID;
- (void)_readCustomInfoFromMailboxCache:(id)fp8;
- (void)_writeCustomInfoToMailboxCache:(id)fp8;
- (void)dealloc;
- (void)saveState;
- (Class)storeClass;
- (id)mailboxPathExtension;
- (void)setDisplayName:(id)fp8;
- (unsigned int)defaultPortNumber;
- (unsigned int)defaultSecurePortNumber;
- (id)serviceName;
- (id)secureServiceName;
- (BOOL)requiresAuthentication;
- (Class)connectionClass;
- (BOOL)compactWhenClosingMailboxes;
- (void)setCompactWhenClosingMailboxes:(BOOL)fp8;
- (void)setCachePolicy:(int)fp8;
- (int)cachePolicy;
- (BOOL)useIDLEIfAvailable;
- (void)setUseIDLEIfAvailable:(BOOL)fp8;
- (BOOL)needToSynchronizeMailboxCaches;
- (void)_didSynchronizeMailboxCachesAndFoundChanges:(BOOL)fp8;
- (BOOL)_setChildren:(id)fp8 forMailboxUid:(id)fp12;
- (BOOL)storeMailboxTypeOnServer:(int)fp8;
- (void)setStoreMailboxType:(int)fp8 onServer:(BOOL)fp12;
- (id)primaryMailboxUid;
- (void)handleAlertResponse:(id)fp8;
- (unsigned int)readBufferSize;
- (void)setReadBufferSize:(unsigned int)fp8;
- (void)_synchronizeMailboxesSynchronously;
- (void)synchronizeMailboxes:(id)fp8;
- (void)synchronizeAllMailboxes;
- (void)_checkForNewMessagesInStore:(id)fp8 unreadCountDelta:(unsigned int)fp12;
- (id)_dataForTemporaryUid:(unsigned long)fp8;
- (unsigned int)minimumPartialDownloadSize;
- (BOOL)allowsPartialDownloads;
- (void)setAllowsPartialDownloads:(BOOL)fp8;
- (BOOL)deleteInPlace;
- (BOOL)connectAndAuthenticate:(id)fp8;
- (id)connectionForStore:(id)fp8 delegate:(id)fp12 options:(int)fp16;
- (void)handleOpenMailboxError:(id)fp8;
- (void)_purgeStaleFlagChanges;
- (void)checkInConnection:(id)fp8;
- (void)checkInConnectionsForStore:(id)fp8;
- (void)unselectMailbox:(id)fp8;
- (void)filterMailboxList:(id)fp8 forMailbox:(id)fp12 options:(int)fp16;
- (void)_releaseAllConnectionsAndCallSuper:(BOOL)fp8 edgeForcedOnly:(BOOL)fp12 ifIdleForTimeInterval:(double)fp16;
- (void)_releaseAllConnectionsAndCallSuper:(BOOL)fp8;
- (void)releaseAllConnections;
- (void)releaseAllForcedConnections;
- (void)releaseAllConnectionsIdleForTimeInterval:(double)fp8;
- (void)_validateConnections;
- (void)validateConnections;
- (void)connectionDidDisconnect:(id)fp8;
- (BOOL)connection:(id)fp8 shouldHandleUntaggedResponse:(id)fp12 forCommand:(CDAnonymousStruct8 *)fp16;
- (void)connection:(id)fp8 didReceiveResponse:(id)fp12 forCommand:(CDAnonymousStruct8 *)fp16;
- (BOOL)canGoOffline;
- (void)_setIsOffline:(BOOL)fp8;
- (void)_setIsOfflineWrapper:(id)fp8;
- (void)setIsOffline:(BOOL)fp8;
- (int)fetchSynchronously;
- (int)fetchSynchronouslyLite;
- (id)separatorChar;
- (id)lastKnownCapabilities;
- (BOOL)supportsIDLE;
- (BOOL)xListSupportedOnConnection:(id)fp8;
- (id)_listingForMailboxUid:(id)fp8 listAllChildren:(BOOL)fp12 onlySubscribed:(BOOL)fp16 withConnection:(id)fp20;
- (id)_listingForMailboxUid:(id)fp8 listAllChildren:(BOOL)fp12 onlySubscribed:(BOOL)fp16;
- (id)_listingForMailboxUid:(id)fp8 listAllChildren:(BOOL)fp12;
- (id)createMailboxWithParent:(id)fp8 name:(id)fp12;
- (BOOL)_deleteMailbox:(id)fp8;
- (void)_setSpecialMailbox:(id)fp8 forType:(int)fp12;
- (id)specialMailboxNameForType:(int)fp8;
- (BOOL)_isMailboxTypeStoredLocally:(int)fp8;
- (id)_localMailboxNameForType:(int)fp8 usingDisplayName:(id)fp12;
- (void)_renameLocalSpecialMailboxesToName:(id)fp8;
- (id)_specialMailboxUidWithType:(int)fp8 create:(BOOL)fp12;
- (BOOL)canBeSynchronized;
- (void)considerSynchronizingNow;
- (void)nowWouldBeAGoodTimeToStartBackgroundSynchronization;
- (void)_fetchUnreadCountsForMailboxUid:(id)fp8 recursively:(BOOL)fp12 connection:(id)fp16 checkForNewMessages:(BOOL)fp20;
- (void)_fetchUnreadCountsForMailboxUid:(id)fp8 recursively:(BOOL)fp12 connection:(id)fp16;
- (void)_fetchUnreadCountsCheckForNewMessages:(BOOL)fp8;
- (void)resetMailboxTimer;
- (void)getMailboxListIfNecessaryWithConnection:(id)fp8;
- (void)_synchronizeAccountWithServer;
- (void)fetchMailboxList;
- (id)_copyMailboxUidWithParent:(id)fp8 name:(id)fp12 attributes:(unsigned int)fp16 existingMailboxUid:(id)fp20 permanentTag:(id)fp24;
- (void)_synchronouslyLoadListingForParent:(id)fp8;
- (void)refreshMailboxListingRootedAtUid:(id)fp8;
- (void)_waitForMailboxListingLoadToComplete;
- (void)_mailboxesWereRemovedFromTree:(id)fp8 withFileSystemPaths:(id)fp12;
- (BOOL)renameMailbox:(id)fp8 newName:(id)fp12 parent:(id)fp16;
- (void)insertInMailboxes:(id)fp8 atIndex:(unsigned int)fp12;
- (id)_pathComponentForUidName:(id)fp8;
- (id)_uidNameForPathComponent:(id)fp8;
- (id)_nameForMailboxUid:(id)fp8;
- (id)nameForMailboxUid:(id)fp8;
- (id)_mailboxUidForName:(id)fp8;
- (BOOL)canMailboxBeDeleted:(id)fp8;
- (id)serverPathPrefix;
- (void)setServerPathPrefix:(id)fp8 shouldSync:(BOOL)fp12;
- (void)setServerPathPrefix:(id)fp8;
- (id)_fileSystemServerPathPrefix;
- (id)_mailboxPathPrefix;
- (void)_loadEntriesFromFileSystemPath:(id)fp8 parent:(id)fp12;
- (void)deleteMessagesFromMailboxUid:(id)fp8 olderThanNumberOfDays:(unsigned int)fp12;
- (id)offlineCacheIfExists;
- (id)offlineCacheIfOffline;
- (id)offlineCache;
- (id)offlineCacheDirectoryPath;
- (BOOL)hasPendingOfflineOperations;
- (BOOL)requiresDataForOfflineTransfersFromStore:(id)fp8;
- (id)mailboxUidForRelativePath:(id)fp8 create:(BOOL)fp12;
- (id)_URLScheme;
- (id)_infoForMatchingURL:(id)fp8;
- (void)_setCapabilities:(id)fp8;
- (void)setValueInAccountInfo:(id)fp8 forKey:(id)fp12;
- (id)flagChangesLock;
- (void)addFlagChanges:(id)fp8 forMailboxPath:(id)fp12 UID:(unsigned int)fp16;
- (id)flagChangesForMailboxPath:(id)fp8 UID:(unsigned int)fp12 connectTime:(double)fp16;
- (void)removeFlagChanges:(id)fp8 forMessages:(id)fp12;
- (void)removeFlagChangesCommittedBefore:(double)fp8;
- (void)setCommitTime:(double)fp8 forConnectionTag:(unsigned int)fp16;
- (void)setConnectionTag:(unsigned int)fp8 forFlagChanges:(id)fp12 forMessages:(id)fp16;
- (id)valueInAccountInfoForKey:(id)fp8;
- (void)setLibrary:(id)fp8;

@end

@interface FlagChangeEntry : NSObject
{
    NSString *path;
    unsigned int uid;
    NSDictionary *changes;
    unsigned int connectionTag;
    double commitTime;
}

- (id)initWithPath:(id)fp8 UID:(unsigned int)fp12 changes:(id)fp16;
- (void)dealloc;

@end

@interface _IMAPMailboxDeletionQueueEntry : NSObject
{
    NSArray *urls;
    NSArray *paths;
    IMAPAccount *account;
}

- (void)dealloc;

@end

@interface iToolsAccount : IMAPAccount
{
}

+ (id)emailAddressHostPart;
+ (id)defaultPathNameForAccountWithHostname:(id)fp8 username:(id)fp12;
+ (id)iToolsMailHostname;
+ (id)iToolsSMTPHostname;
+ (id)accountTypeString;
+ (id)displayedAccountTypeString;
+ (BOOL)isPredefinedAccountType;
+ (id)accountInfoValueForKey:(id)fp8 value:(id)fp12;
- (id)hostname;
- (void)setHostname:(id)fp8;
- (void)setUsername:(id)fp8;
- (void)setPasswordInKeychain:(id)fp8;
- (void)_removePasswordInKeychain;
- (id)passwordFromKeychain;
- (id)emailAddresses;
- (void)setDeliveryAccount:(id)fp8;
- (Class)connectionClass;
- (id)deliveryAccount;

@end

@interface POPAccount : MailAccount
{
    ActivityMonitor *_fetchMonitor;
    POP3Connection *_connection;
    NSArray *_currentUIDs;
    NSLock *_connectionActivityLock;
    float _connectionTimeout;
    BOOL _fetcherNeedsReset;
    BOOL _deletingMessages;
    BOOL _hasDoneBackgroundSynchronization;
    BOOL _shouldAttemptAPOP;
    NSString *_oldestMessageUID;
    NSString *_newestMessageUID;
    int _numberOfKnownUIDs;
}

+ (id)accountTypeString;
+ (id)saslProfileName;
- (id)init;
- (void)dealloc;
- (void)finalize;
- (int)fetchSynchronously;
- (int)fetchSynchronouslyLite;
- (int)fetchNumNewMessages:(unsigned int)fp8 oldMessages:(unsigned int)fp12 preservingUID:(id)fp16 withStore:(id)fp20;
- (void)releaseAllConnections;
- (void)releaseAllForcedConnections;
- (BOOL)canGoOffline;
- (void)setIsOffline:(BOOL)fp8;
- (unsigned int)defaultPortNumber;
- (unsigned int)defaultSecurePortNumber;
- (id)serviceName;
- (id)secureServiceName;
- (BOOL)requiresAuthentication;
- (Class)storeClass;
- (Class)storeClassForMailbox:(id)fp8;
- (Class)connectionClass;
- (void)setPreferredAuthScheme:(id)fp8;
- (id)mailboxPathExtension;
- (id)primaryMailboxUid;
- (BOOL)canCreateNewMailboxes;
- (BOOL)canMailboxBeRenamed:(id)fp8;
- (int)bigMessageWarningSize;
- (void)setBigMessageWarningSize:(int)fp8;
- (BOOL)shouldAttemptAPOP;
- (void)setShouldAttemptAPOP:(BOOL)fp8;
- (void)setMessageDeletionPolicy:(int)fp8;
- (void)setDelayedMessageDeletionInterval:(unsigned int)fp8;
- (int)messageDeletionPolicy;
- (unsigned int)delayedMessageDeletionInterval;
- (BOOL)deletingMessages;
- (void)deleteMessagesNow:(id)fp8;
- (void)deleteSeenMessagesNow;
- (void)insertInMailboxes:(id)fp8 atIndex:(unsigned int)fp12;
- (void)acquireConnectionActivityLock;
- (void)relinquishConnectionActivityLock;
- (id)_URLScheme;
- (id)_infoForMatchingURL:(id)fp8;
- (void)setOldestKnownMessageUID:(id)fp8;
- (void)setNewestKnownMessageUID:(id)fp8;
- (id)oldestKnownMessageUID;
- (id)newestKnownMessageUID;
- (void)setNumberOfKnownUIDs:(int)fp8;
- (int)numberOfKnownUIDs;
- (void)_deleteHook;
- (id)authenticatedConnection;
- (void)checkInConnection:(id)fp8 currentUIDs:(id)fp12;
- (void)scheduleDisconnect;
- (void)closeConnection:(id)fp8 andSaveUIDs:(id)fp12;
- (void)closeCachedConnectionForcedOnly:(id)fp8;
- (void)closeCachedConnection;
- (id)loginName;

@end

@interface _RootlessMailboxUid : MailboxUid
{
}

- (id)displayName;
- (id)fullPath;
- (id)tildeAbbreviatedPath;
- (id)storeForMailboxUid:(id)fp8;

@end

@interface LocalAccount : MailAccount
{
    NSMutableArray *_disembodiedUids;
}

+ (id)localAccount;
+ (id)accountTypeString;
- (id)initWithPath:(id)fp8;
- (id)uniqueId;
- (Class)storeClass;
- (id)mailboxPathExtension;
- (id)primaryMailboxUid;
- (void)setPath:(id)fp8;
- (id)displayName;
- (void)setHostname:(id)fp8;
- (void)setUsername:(id)fp8;
- (id)password:(BOOL)fp8;
- (void)setPassword:(id)fp8;
- (BOOL)canFetch;
- (void)fetchSynchronously;
- (BOOL)shouldAutoFetch;
- (BOOL)isOffline;
- (void)setIsOffline:(BOOL)fp8;
- (void)_synchronouslyLoadListingForParent:(id)fp8;
- (id)_copyMailboxUidWithParent:(id)fp8 name:(id)fp12 attributes:(unsigned int)fp16 existingMailboxUid:(id)fp20 permanentTag:(id)fp24;
- (BOOL)_setChildren:(id)fp8 forMailboxUid:(id)fp12;
- (BOOL)renameMailbox:(id)fp8 newName:(id)fp12 parent:(id)fp16;
- (void)insertInMailboxes:(id)fp8 atIndex:(unsigned int)fp12;
- (id)mailboxUidForFileSystemPath:(id)fp8;
- (id)_URLScheme;
- (id)_infoForMatchingURL:(id)fp8;

@end

@interface ConnectionSettings : NSObject
{
    NSString *_hostname;
    NSString *_serviceName;
    unsigned int _portNumber;
    NSData *_serverCertificateDigest;
    int _dataContextIdentifier;
    unsigned int _usesSSL:1;
    unsigned int _tryDirectSSLConnection:1;
}

- (id)init;
- (void)dealloc;
- (id)hostname;
- (void)setHostname:(id)fp8;
- (id)serviceName;
- (void)setServiceName:(id)fp8;
- (unsigned int)portNumber;
- (void)setPortNumber:(unsigned int)fp8;
- (BOOL)usesSSL;
- (void)setUsesSSL:(BOOL)fp8;
- (BOOL)tryDirectSSL;
- (void)setTryDirectSSL:(BOOL)fp8;
- (long)dataContextIdentifier;
- (void)setDataContextIdentifier:(long)fp8;
- (id)serverCertificateDigest;
- (void)setServerCertificateDigest:(id)fp8;
- (id)description;

@end

@interface Connection : NSObject
{
    id <SASLSecurityLayer> _securityLayer;
    _NSSocket *_socket;
    char *_buffer;
    int _bufferRemainingBytes;
    unsigned int _bufferStart;
    unsigned int _bufferLength;
    unsigned int _desiredBufferLength;
    NSData *_logData;
    unsigned int _isFetching:1;
    unsigned int _allowFallbacks:1;
}

+ (void)initialize;
+ (void)logBytes:(const char *)fp8 length:(int)fp12;
+ (void)flushLog;
+ (id)logClasses;
+ (void)setLogClasses:(id)fp8;
+ (BOOL)logAllSocketActivity;
+ (void)setLogAllSocketActivity:(BOOL)fp8;
+ (id)logActivityOnPorts;
+ (void)setLogActivityOnPorts:(id)fp8;
+ (id)logActivityOnHosts;
+ (void)setLogActivityOnHosts:(id)fp8;
+ (BOOL)shouldTryFallbacksAfterError:(id)fp8;
- (void)dealloc;
- (BOOL)isForcedConnection;
- (BOOL)isFetching;
- (void)setIsFetching:(BOOL)fp8;
- (BOOL)connectUsingSettings:(id)fp8;
- (BOOL)connectUsingAccount:(id)fp8;
- (BOOL)connectUsingFallbacksForAccount:(id)fp8;
- (void)setAllowsFallbacks:(BOOL)fp8;
- (BOOL)authenticateUsingAccount:(id)fp8;
- (id)capabilities;
- (id)authenticationMechanisms;
- (BOOL)writeData:(id)fp8 dontLogBytesInRange:(struct _NSRange)fp12;
- (BOOL)writeData:(id)fp8;
- (void)setDesiredReadBufferLength:(unsigned int)fp8;
- (BOOL)readLineIntoData:(id)fp8;
- (BOOL)readBytesIntoData:(id)fp8 desiredLength:(unsigned int)fp12;
- (BOOL)authenticateUsingAccount:(id)fp8 authenticator:(id)fp12;
- (BOOL)startTLSForAccount:(id)fp8;
- (BOOL)isValid;
- (void)disconnect;
- (void *)_socket;
- (BOOL)hasBytesAvailable;
- (double)lastUsedTime;

@end

@interface MailDelivery : NSObject
{
    id _delegate;
    Message *_message;
    MailAccount *_archiveAccount;
    DeliveryAccount *_account;
    MutableMessageHeaders *_headers;
    NSArray *_mixedContent;
    BOOL _textPartsAreHTML;
    NSString *_htmlString;
    PlainTextDocument *_plainTextAlternative;
    NSArray *_otherStringsAndAttachments;
    unsigned int _threaded:1;
    unsigned int _status:4;
    unsigned int __UNUSED__:25;
}

+ (id)newWithMessage:(id)fp8;
+ (id)newWithHeaders:(id)fp8 mixedContent:(id)fp12 textPartsAreHTML:(BOOL)fp16;
+ (id)newWithHeaders:(id)fp8 HTML:(id)fp12 plainTextAlternative:(id)fp16 other:(id)fp20;
+ (BOOL)deliverMessage:(id)fp8;
- (id)initWithMessage:(id)fp8;
- (id)initWithHeaders:(id)fp8 mixedContent:(id)fp12 textPartsAreHTML:(BOOL)fp16;
- (id)initWithHeaders:(id)fp8 HTML:(id)fp12 plainTextAlternative:(id)fp16 other:(id)fp20;
- (void)dealloc;
- (id)message;
- (id)delegate;
- (void)setDelegate:(id)fp8;
- (id)archiveAccount;
- (void)setArchiveAccount:(id)fp8;
- (id)account;
- (void)setAccount:(id)fp8;
- (int)deliveryStatus;
- (id)originalHeaders;
- (id)headersForDelivery;
- (void)deliverAsynchronously;
- (int)deliverSynchronously;
- (int)deliverMessageData:(id)fp8 toRecipients:(id)fp12;

@end

@interface DeliveryAccount : Account
{
}

+ (void)_postDeliveryAccountsHaveChanged;
+ (id)deliveryAccounts;
+ (void)setDeliveryAccounts:(id)fp8;
+ (void)addDeliveryAccount:(id)fp8;
+ (void)removeDeliveryAccount:(id)fp8;
+ (void)saveAccountInfoToDefaults;
+ (id)accountWithUniqueId:(id)fp8;
+ (id)accountWithIdentifier:(id)fp8;
+ (id)existingAccountWithHostname:(id)fp8 username:(id)fp12;
+ (id)accountWithHostname:(id)fp8 username:(id)fp12;
+ (id)accountWithHostname:(id)fp8 username:(id)fp12 lookForExistingAccounts:(BOOL)fp16;
+ (id)newDefaultInstance;
- (Class)deliveryClass;
- (id)identifier;
- (BOOL)shouldUseAuthentication;
- (void)setShouldUseAuthentication:(BOOL)fp8;
- (unsigned long long)maximumMessageBytes;
- (void)setMaximumMessageBytes:(unsigned long long)fp8;
- (id)mailAccountIfAvailable;

@end

@interface SMTPDelivery : MailDelivery
{
    SMTPConnection *_connection;
}

- (Class)deliveryClass;
- (int)deliverMessageData:(id)fp8 toRecipients:(id)fp12;

@end

@interface SMTPConnection : Connection
{
    unsigned int _lastResponseCode:31;
    unsigned int _hideLoggedData:1;
    id _lastResponse;
    NSMutableArray *_serviceExtensions;
    NSMutableData *_mdata;
    NSString *_domainName;
    int _originalSocketTimeout;
    int _lastCommandTimestamp;
    id _delegate;
}

+ (void)initialize;
- (id)init;
- (void)setDelegate:(id)fp8;
- (void)dealloc;
- (int)state;
- (id)lastResponse;
- (unsigned int)lastResponseCode;
- (id)domainName;
- (void)setDomainName:(id)fp8;
- (BOOL)supportsOutboxCopy;
- (BOOL)supportsPipelining;
- (unsigned long long)maximumMessageBytes;
- (id)authenticationMechanisms;
- (BOOL)authenticateUsingAccount:(id)fp8;
- (BOOL)authenticateUsingAccount:(id)fp8 authenticator:(id)fp12;
- (BOOL)connectUsingAccount:(id)fp8;
- (int)mailFrom:(id)fp8;
- (int)rcptTo:(id)fp8;
- (int)noop;
- (int)sendData:(id)fp8;
- (int)quit;
- (id)dataForMailFrom:(id)fp8;
- (id)dataForRcptTo:(id)fp8;
- (id)dataForDataCmd;
- (int)mailFrom:(id)fp8 recipients:(id)fp12 withData:(id)fp16 host:(id)fp20 errorMessage:(id *)fp24 serverResponse:(id *)fp28 displayError:(char *)fp32;
- (long)timeLastCommandWasSent;

@end

@interface SMTPConnection (PrivateCommands)
- (id)_dataForCommand:(const char *)fp8 length:(unsigned int)fp12 argument:(id)fp16 trailer:(unsigned char)fp20;
- (int)_sendCommand:(const char *)fp8 length:(unsigned int)fp12 argument:(id)fp16 trailer:(unsigned char)fp20;
- (int)_getReply;
- (void)_readResponseRange:(struct _NSRange *)fp8 isContinuation:(char *)fp12;
- (BOOL)_connectUsingAccount:(id)fp8;
- (int)_doHandshakeUsingAccount:(id)fp8;
- (BOOL)_hasParameter:(id)fp8 forKeyword:(id)fp12;
@end

@interface SMTPAccount : DeliveryAccount
{
    Class _deliveryClass;
    SMTPConnection *_connection;
    NSTimer *_timer;
    int _lastTimerSetTime;
    unsigned int _supportsPipelining:1;
}

+ (id)accountTypeString;
+ (id)newDefaultInstance;
+ (id)saslProfileName;
- (Class)deliveryClass;
- (void)setDeliveryClass:(Class)fp8;
- (unsigned int)defaultPortNumber;
- (id)serviceName;
- (BOOL)isCommonPortNumber:(unsigned int)fp8;
- (unsigned int)keychainPortNumber;
- (Class)connectionClass;
- (id)_defaultSettingsWithPort:(unsigned int)fp8 useSSL:(BOOL)fp12 directSSL:(BOOL)fp16;
- (id)connectionSettingsForAuthentication:(BOOL)fp8 secure:(id)fp12 insecure:(id)fp16;
- (id)secureConnectionSettings;
- (id)insecureConnectionSettings;
- (id)alternateConnectionSettings;
- (BOOL)_shouldTryDirectSSLConnectionOnPort:(unsigned int)fp8;
- (id)preferredAuthScheme;
- (void)setPreferredAuthScheme:(id)fp8;
- (id)customAuthenticationErrorStringForError:(id)fp8 authScheme:(id)fp12;
- (BOOL)supportsPipelining;
- (void)setSupportsPipelining:(BOOL)fp8;
- (id)authenticatedConnection;
- (void)checkInConnection:(id)fp8;
- (void)setTimer;
- (void)connectionExpired:(id)fp8;
- (void)disconnect:(id)fp8;
- (void)releaseAllConnections;
- (void)releaseAllForcedConnections;
- (void)setPasswordInKeychain:(id)fp8;
- (id)passwordFromKeychain;
- (void)dealloc;

@end

@interface ActivityMonitorMultiTarget : NSObject
{
    id _primaryTarget;
    NSMutableSet *_allTargets;
}

- (void)dealloc;
- (BOOL)addActivityTarget:(id)fp8;
- (BOOL)removeActivityTarget:(id)fp8;
- (id)primaryTarget;
- (void)setPrimaryTarget:(id)fp8;
- (id)allTargets;
- (id)displayName;

@end

@interface ActivityMonitor : NSObject
{
    struct __CFMessagePort *_cancelPort;
    NSString *_cancelPortName;
    NSString *_taskName;
    NSString *_displayName;
    NSString *_statusMessage;
    NSString *_descriptionString;
    InvocationQueue *_ourQueue;
    double _percentDone;
    unsigned int _key:13;
    unsigned int _canCancel:1;
    unsigned int _shouldCancel:1;
    unsigned int _isActive:1;
    unsigned int _priority:8;
    unsigned int _changeCount:8;
    id _delegate;
    id _target;
    MFError *_error;
    unsigned int _expectedLength;
    unsigned int _maxCount;
    unsigned int _currentCount;
    NSString *_uniqueID;
    double _lastTime;
    double _startTime;
    BOOL _gotNewMessages;
}

+ (void)postNetworkActivityStarting:(id)fp8;
+ (void)postNetworkActivityFinished:(id)fp8;
+ (id)currentMonitor;
+ (void)destroyMonitor;
- (id)init;
- (void)dealloc;
- (BOOL)isActive;
- (void)setDelegate:(id)fp8;
- (void)postActivityStarting;
- (void)postActivityFinished;
- (void)notifyConnectionEstablished;
- (id)userInfoForNotification;
- (void)postDidChangeWithUserInfo:(id)fp8;
- (void)_didChange;
- (void)setMaxCount:(int)fp8;
- (void)setCurrentCount:(int)fp8;
- (void)incrementCurrentCount;
- (void)reset;
- (void)setGotNewMessages;
- (BOOL)gotNewMessages;
- (int)changeCount;
- (void)setStatusMessage:(id)fp8;
- (void)setStatusMessage:(id)fp8 percentDone:(double)fp12;
- (id)statusMessage;
- (void)setPercentDone:(double)fp8;
- (double)percentDone;
- (void)setUniqueID:(id)fp8;
- (id)uniqueId;
- (void)setExpectedLength:(unsigned int)fp8;
- (unsigned int)expectedLength;
- (unsigned char)priority;
- (void)setPriority:(unsigned char)fp8;
- (id)description;
- (id)taskName;
- (void)setTaskName:(id)fp8;
- (id)displayName;
- (void)setDisplayName:(id)fp8 maxCount:(int)fp12;
- (void)setDisplayName:(id)fp8;
- (void)setActivityTarget:(id)fp8;
- (id)activityTarget;
- (BOOL)_lockedAddActivityTarget:(id)fp8;
- (void)addActivityTarget:(id)fp8;
- (void)addActivityTargets:(id)fp8;
- (void)removeActivityTarget:(id)fp8;
- (void)setPrimaryTarget:(id)fp8;
- (id)primaryTarget;
- (id)activityTargets;
- (BOOL)canBeCancelled;
- (void)setCanBeCancelled:(BOOL)fp8;
- (BOOL)shouldCancel;
- (id)cancelPortName;
- (void)setCancelPortName:(id)fp8;
- (void)setShouldCancel:(BOOL)fp8;
- (void)cancel;
- (void)setInvocationQueue:(id)fp8;
- (int)acquireExclusiveAccessKey;
- (void)relinquishExclusiveAccessKey:(int)fp8;
- (void)setStatusMessage:(id)fp8 percentDone:(double)fp12 withKey:(int)fp20;
- (void)setStatusMessage:(id)fp8 withKey:(int)fp12;
- (void)setPercentDone:(double)fp8 withKey:(int)fp16;
- (id)error;
- (void)setError:(id)fp8;
- (struct __CFMessagePort *)cancelPort;

@end

@interface MutableByteSet : ByteSet
{
}

- (void)addBytesInRange:(struct _NSRange)fp8;
- (void)removeBytesInRange:(struct _NSRange)fp8;
- (void)invert;

@end

@interface ByteSet : NSObject <NSCopying, NSMutableCopying>
{
    char mySet[32];
}

+ (id)asciiWhitespaceSet;
+ (id)ASCIIByteSet;
+ (id)nonASCIIByteSet;
+ (id)suspiciousCodepage1252ByteSet;
- (BOOL)byteIsMember:(BOOL)fp8;
- (id)invertedSet;
- (id)initWithRange:(struct _NSRange)fp8;
- (id)initWithCString:(const char *)fp8;
- (id)initWithBytes:(const void *)fp8 length:(unsigned int)fp12;
- (id)_initWithSet:(const char *)fp8;
- (id)copyWithZone:(struct _NSZone *)fp8;
- (id)mutableCopyWithZone:(struct _NSZone *)fp8;

@end

@interface DataScanner : NSObject
{
    NSData *myData;
    unsigned int myLocation;
}

+ (id)scannerWithData:(id)fp8;
- (void)setData:(id)fp8;
- (void)dealloc;
- (id)data;
- (unsigned int)scanLocation;
- (void)setScanLocation:(unsigned int)fp8;
- (BOOL)scanByte:(char *)fp8;
- (BOOL)scanInt:(int *)fp8;
- (BOOL)scanData:(id)fp8 intoData:(id *)fp12;
- (BOOL)scanCString:(const char *)fp8 intoData:(id *)fp12;
- (BOOL)scanBytesFromSet:(id)fp8 intoData:(id *)fp12;
- (void)incrementLocation;
- (BOOL)scanUpToData:(id)fp8 intoData:(id *)fp12;
- (BOOL)scanUpToCString:(const char *)fp8 intoData:(id *)fp12;
- (BOOL)scanUpToBytesFromSet:(id)fp8 intoData:(id *)fp12;
- (BOOL)isAtEnd;
- (BOOL)byteAtScanLocation;
- (id)nextTokenWithPunctuation:(id)fp8;
- (id)initWithData:(id)fp8;

@end

@interface Defaults : NSObject
{
    NSUserDefaults *defaults;
}

+ (id)sharedInstance;
+ (void)setupLoggingDefaults;
+ (id)logMessages;
+ (id)basicHeaders;
- (id)primaryEmailAddress;
- (void)setPrimaryEmailAddress:(id)fp8;
- (id)mailAccountDirectory;
- (void)setDefaultMailDirectory:(id)fp8;
- (id)defaultMailDirectory;
- (id)archiveMailbox;
- (id)draftsMailbox;
- (id)trashMailboxName;
- (BOOL)autosaveWindows;
- (void)setAutosaveWindows:(BOOL)fp8;
- (id)alternateAddressesForSelf;
- (id)dictionaryForKey:(id)fp8;
- (id)stringForKey:(id)fp8;
- (void)removeObjectForKey:(id)fp8;
- (void)setObject:(id)fp8 forKey:(id)fp12;
- (id)objectForKey:(id)fp8;
- (void)setBool:(BOOL)fp8 forKey:(id)fp12;
- (BOOL)boolForKey:(id)fp8;
- (int)integerForKey:(id)fp8;
- (BOOL)synchronize;

@end

@interface NSArray (NSEmailAddressArray)
- (id)uncommentedAddressList;
@end

@interface NSString (NSEmailAddressString)
+ (id)nameExtensions;
+ (id)nameExtensionsThatDoNotNeedCommas;
+ (id)partialSurnames;
+ (id)formattedAddressWithName:(id)fp8 email:(id)fp12 useQuotes:(BOOL)fp16;
- (id)copyUncommentedAddress;
- (id)uncommentedAddress;
- (id)uncommentedAddressRespectingGroups;
- (id)addressComment;
- (id)copyAddressComment;
- (void)firstName:(id *)fp8 middleName:(id *)fp12 lastName:(id *)fp16 extension:(id *)fp20;
- (BOOL)appearsToBeAnInitial;
- (id)addressList;
- (id)trimCommasSpacesQuotes;
- (id)componentsSeparatedByCommaRespectingQuotesAndParens;
- (id)searchStringComponents;
- (BOOL)isLegalCommentedEmailAddress;
- (BOOL)isLegalEmailAddress;
- (id)addressDomain;
@end

@interface SafeObserver : NSObject <SafeObserverProtocol>
{
    unsigned int _retainCount;
}

+ (void)initialize;
+ (void)lockSafeObservers;
+ (void)unlockSafeObservers;
- (id)init;
- (id)copyWithZone:(struct _NSZone *)fp8;
- (id)retain;
- (id)willBeReleased;
- (void)release;
- (unsigned int)retainCount;

@end

@interface NSMutableDictionary (Goodies)
- (void)setBool:(BOOL)fp8 forKey:(id)fp12;
- (void)setInteger:(int)fp8 forKey:(id)fp12;
- (void)addObject:(id)fp8 forKey:(id)fp12;
@end

@interface NSDictionary (Goodies)
- (BOOL)boolForKey:(id)fp8;
- (int)integerForKey:(id)fp8;
@end

@interface NSDate (Goodies)
+ (id)createDateInCommonFormatsWithString:(id)fp8;
+ (id)createLenientDateInCommonFormatsWithString:(id)fp8;
- (id)descriptionInBSDMailboxFormat;
- (id)descriptionForMimeHeaders;
- (id)replyPrefixForSender:(id)fp8 withSpacer:(BOOL)fp12;
@end

@interface InvocationQueue : NSObject
{
    NSMutableArray *_items;
    unsigned int _maxThreads:16;
    unsigned int _numThreads:16;
    double _threadRecycleTimeout;
    NSConditionLock *_threadRecycleLock;
}

+ (void)initialize;
- (id)init;
- (void)setMaxThreadCount:(unsigned int)fp8;
- (unsigned int)maxThreadCount;
- (void)dealloc;
- (void)removeAllItems;
- (void)_drainQueue;
- (void)addInvocation:(id)fp8;
- (void)didCancel:(id)fp8;
- (unsigned int)invocationCount;
- (void)setThreadRecycleTimeout:(double)fp8;
- (double)threadRecycleTimeout;

@end

@interface MainThread : NSObject
{
    struct __CFMessagePort *_ticklePort;
    NSMutableArray *_requests;
}

+ (void)setupMainThreadObject;
+ (id)mainThread;
+ (BOOL)runningOnMainThread;
+ (unsigned long)priorityKey;
- (id)init;
- (BOOL)_runningOnMainThread;
- (void)performOneway:(BOOL)fp8 invocation:(id)fp12;
- (void)_postNotificationInMainThread:(id)fp8;
- (void)_threadWillDie:(id)fp8;

@end

@interface NSNotificationCenter (MainThreadPosting)
- (void)postNotificationInMainThread:(id)fp8;
@end

@interface NSObject (MainThreadMessaging)
- (void)performSelectorInMainThread:(SEL)fp8;
- (void)performSelectorInMainThread:(SEL)fp8 withObject:(id)fp12;
- (void)performSelectorInMainThread:(SEL)fp8 withObject:(id)fp12 withObject:(id)fp16;
- (void)performOnewaySelectorInMainThread:(SEL)fp8 withObject:(id)fp12;
- (void)performOnewaySelectorInMainThread:(SEL)fp8 withObject:(id)fp12 withObject:(id)fp16;
@end

@interface MFError : NSError
{
    NSMutableDictionary *_moreUserInfo;
}

+ (id)errorWithDomain:(id)fp8 code:(long)fp12 localizedDescription:(id)fp16;
+ (id)errorWithDomain:(id)fp8 code:(long)fp12 localizedDescription:(id)fp16 title:(id)fp20 userInfo:(id)fp24;
+ (id)errorWithException:(id)fp8;
- (void)setUserInfoObject:(id)fp8 forKey:(id)fp12;
- (id)userInfo;
- (id)localizedDescription;
- (id)moreInfo;
- (id)shortDescription;
- (void)setLocalizedDescription:(id)fp8;
- (void)setMoreInfo:(id)fp8;
- (void)setShortDescription:(id)fp8;
- (void)useGenericDescription:(id)fp8;
- (void)dealloc;

@end

@interface NSError (MessageAdditions)
- (BOOL)isUserCancelledError;
- (BOOL)shouldBeReportedToUser;
- (id)moreInfo;
- (id)shortDescription;
@end

@interface MonitoredInvocation : MessageInvocation
{
    ActivityMonitor *_monitor;
    unsigned int _shouldLogInvocation:1;
}

+ (id)invocationWithSelector:(SEL)fp8 target:(id)fp12 taskName:(id)fp16 priority:(unsigned char)fp20 canBeCancelled:(BOOL)fp24;
+ (id)invocationWithSelector:(SEL)fp8 target:(id)fp12 object:(id)fp16 taskName:(id)fp20 priority:(unsigned char)fp24 canBeCancelled:(BOOL)fp28;
+ (id)invocationWithSelector:(SEL)fp8 target:(id)fp12 object1:(id)fp16 object2:(id)fp20 taskName:(id)fp24 priority:(unsigned char)fp28 canBeCancelled:(BOOL)fp32;
- (id)init;
- (void)dealloc;
- (id)monitor;
- (void)setMonitor:(id)fp8;
- (BOOL)shouldLogInvocation;
- (void)setShouldLogInvocation:(BOOL)fp8;
- (id)invoke;
- (id)description;

@end

@interface MessageInvocation : NSObject
{
    id _target;
    SEL _selector;
    id _argument1;
    id _argument2;
}

+ (id)invocationWithSelector:(SEL)fp8 target:(id)fp12;
+ (id)invocationWithSelector:(SEL)fp8 target:(id)fp12 object:(id)fp16;
+ (id)invocationWithSelector:(SEL)fp8 target:(id)fp12 object1:(id)fp16 object2:(id)fp20;
- (id)invoke;
- (id)invokeWithObject:(id)fp8;
- (id)target;
- (SEL)selector;
- (void)dealloc;
- (id)description;

@end

@interface NetworkController : NSObject
{
    struct __SCDynamicStore *_store;
    NSString *_domainName;
    unsigned int _waitingForDialToFinish:1;
    unsigned int _checkedNetwork:1;
    unsigned int _isNetworkUp:1;
    unsigned int _isFatPipe:1;
    unsigned int _edgeRequested:1;
    NSTimer *_notificationTimer;
}

+ (id)sharedInstance;
- (void)dealloc;
- (id)init;
- (BOOL)isNetworkUp;
- (BOOL)isFatPipe;
- (id)domainName;
- (BOOL)isHostReachable:(id)fp8;
- (id)primaryEthernetAddressAsString;
- (void)registerCTServerRunLoopSource;
- (id)IMEI;
- (id)edgeInterfaceName;
- (BOOL)isEdgeUp;
- (void)bringUpEdge;
- (void)keepEdgeUp;

@end

@interface NetworkController (Private)
- (void)_postNotification:(id)fp8;
- (void)_postNetworkChangeNotification:(id)fp8;
- (void)_triggerDialForHostname:(id)fp8;
- (void)_registerForNotificationKeys:(id)fp8 patterns:(id)fp12;
@end

@interface NSArray (DateComparisonForRecents)
- (int)indexOfOldestDate;
@end

@interface NSArray (MessagesFromMixedStoresConvenience)
- (id)dictionaryWithMessagesSortedByStore;
@end

@interface NSMutableArray (SortedArrayExtensions)
- (unsigned int)indexWhereObjectWouldBeInserted:(id)fp8 usingSortFunction:(void *)fp12 context:(void *)fp16;
- (unsigned int)insertObject:(id)fp8 usingSortFunction:(void *)fp12 context:(void *)fp16;
- (unsigned int)indexOfObject:(id)fp8 usingSortFunction:(void *)fp12 context:(void *)fp16;
@end

@interface NSMutableArray (Convenience)
- (BOOL)addObjectIfAbsent:(id)fp8;
- (BOOL)addObjectIfAbsentAccordingToEquals:(id)fp8;
@end

@interface NSArray (DerivedArray)
- (id)arrayByApplyingSelector:(SEL)fp8;
- (id)indicesOfStringsWithPrefix:(id)fp8;
@end

@interface PartialNetworkData : NSObject
{
    NSMutableData *_rawData;
    NSMutableData *_unixData;
}

- (void)appendRawData:(id)fp8;
- (void)setRawDataToMappedData:(id)fp8;
- (id)rawData;
- (unsigned int)rawDataLength;
- (id)dataWithUnixLineEndings;
- (id)copyDataWithUnixLineEndings;
- (void)dealloc;
- (void)purgeCaches;

@end

@interface NSMutableData (NSDataUtils)
- (void)appendCString:(const char *)fp8;
- (void)appendByte:(BOOL)fp8;
- (void)convertNetworkLineEndingsToUnixInRange:(struct _NSRange)fp8;
- (void)convertNetworkLineEndingsToUnix;
@end

@interface NSData (NSDataUtils)
- (struct _NSRange)rangeOfRFC822HeaderData;
- (id)subdataToIndex:(unsigned int)fp8;
- (id)subdataFromIndex:(unsigned int)fp8;
- (struct _NSRange)rangeOfData:(id)fp8;
- (struct _NSRange)rangeOfData:(id)fp8 options:(unsigned int)fp12;
- (struct _NSRange)rangeOfData:(id)fp8 options:(unsigned int)fp12 range:(struct _NSRange)fp16;
- (struct _NSRange)rangeOfByteFromSet:(id)fp8;
- (struct _NSRange)rangeOfByteFromSet:(id)fp8 options:(unsigned int)fp12;
- (struct _NSRange)rangeOfByteFromSet:(id)fp8 options:(unsigned int)fp12 range:(struct _NSRange)fp16;
- (struct _NSRange)rangeOfCString:(const char *)fp8;
- (struct _NSRange)rangeOfCString:(const char *)fp8 options:(unsigned int)fp12;
- (struct _NSRange)rangeOfCString:(const char *)fp8 options:(unsigned int)fp12 range:(struct _NSRange)fp16;
- (id)componentsSeparatedByData:(id)fp8;
- (id)dataByConvertingUnixNewlinesToNetwork;
- (id)MD5Digest;
@end

@interface NSFileHandle (MessageAdditions)
+ (id)createFileAtPath:(id)fp8 flags:(int)fp12 mode:(int)fp16;
+ (id)fileHandleForUniqueFile:(id *)fp8 atPath:(id)fp12 mode:(int)fp16 extension:(id)fp20;
+ (id)fileHandleForUniqueFile:(id *)fp8 atPath:(id)fp12 mode:(int)fp16;
+ (id)fileHandleForTempFile:(id *)fp8 atPath:(id)fp12 mode:(int)fp16;
@end

@interface NSFileManager (NSFileManagerAdditions)
- (id)makeUniqueFileInDirectory:(id)fp8;
- (id)makeUniqueDirectoryWithPath:(id)fp8;
- (BOOL)makeCompletePath:(id)fp8 mode:(int)fp12;
- (BOOL)canWriteToDirectoryAtPath:(id)fp8;
- (BOOL)canWriteToFileAtPath:(id)fp8;
- (void)deleteFilesInArray:(id)fp8 fromDirectory:(id)fp12;
- (long long)fileSizeAtPath:(id)fp8 traverseLink:(BOOL)fp12;
- (id)fileModificationDateAtPath:(id)fp8 traverseLink:(BOOL)fp12;
- (id)rawDirectoryContentsAtPath:(id)fp8;
- (id)pathsAtDirectory:(id)fp8 beginningWithString:(id)fp12;
- (void)deleteFilesInSortedArray:(id)fp8 matchingPrefix:(id)fp12 fromDirectory:(id)fp16;
@end

@interface MessageKeychainManager : NSObject
{
}

+ (void)initialize;
+ (id)_passwordForHost:(id)fp8 username:(id)fp12 port:(int)fp16 protocol:(id)fp20;
+ (id)passwordForHost:(id)fp8 username:(id)fp12 port:(int)fp16 protocol:(id)fp20;
+ (void)setPassword:(id)fp8 forHost:(id)fp12 username:(id)fp16 port:(int)fp20 protocol:(id)fp24;
+ (void)removePasswordForHost:(id)fp8 username:(id)fp12 port:(int)fp16 protocol:(id)fp20;
+ (id)_passwordForGenericAccount:(id)fp8 service:(id)fp12;
+ (id)passwordForServiceName:(id)fp8 accountName:(id)fp12;
+ (void)setPassword:(id)fp8 forServiceName:(id)fp12 accountName:(id)fp16;
+ (void)removePasswordForServiceName:(id)fp8 accountName:(id)fp12;

@end

@interface NSLock (MessageAdditions)
- (void)waitForLock;
@end

@interface NSObject (LockingAdditions)
+ (void)clearLocks;
- (void)lock;
- (BOOL)tryLock;
- (void)lockWithPriority;
- (BOOL)tryLockWithPriority;
- (void)unlock;
- (void)yieldLock;
- (BOOL)isLocked;
@end

@interface NSScanner (NSScannerUtils)
- (id)nextTokenWithPunctuation:(struct __CFCharacterSet *)fp8;
- (BOOL)scanUpAndOverString:(id)fp8;
@end

@interface NSSet (MessageAdditions)
- (id)getAllObjectsAsArray;
- (void)getAllObjects:(id *)fp8;
@end

@interface NSMutableSet (MessageAdditions)
- (id)uniquedObject:(id)fp8;
@end

@interface _NSSocket : NSObject
{
    struct __CFReadStream *_readStream;
    struct __CFWriteStream *_writeStream;
    NSString *_protocol;
    void *_stats;
    void *_request;
    unsigned int _numTimeoutSecs:16;
    unsigned int _openCompleted:1;
    unsigned int _canRead:1;
    unsigned int _canWrite:1;
    unsigned int _error:1;
    unsigned int _closed:1;
    double _lastUsedTime;
    int _dataContextIdentifier;
    MessageInvocation *_eventHandler;
}

+ (void)initialize;
+ (int)simulatedSocketSpeed;
+ (void)setSimulatedSocketSpeed:(int)fp8;
+ (void)resetStatistics;
+ (unsigned long long)outBytes;
+ (unsigned long long)inBytes;
+ (unsigned long long)outBytesPerSecond;
+ (unsigned long long)inBytesPerSecond;
+ (unsigned long long)totalBytesPerSecond;
+ (unsigned int)connects;
+ (unsigned int)writes;
+ (unsigned int)reads;
+ (void)showStatistics;
- (id)securityProtocol;
- (BOOL)setSecurityProtocol:(id)fp8 serverCertificateDigest:(id)fp12;
- (id)serverCertificates;
- (void)setDataContextIdentifier:(long)fp8;
- (id)initWithTimeout:(int)fp8;
- (id)init;
- (int)timeout;
- (void)setTimeout:(int)fp8;
- (void)dealloc;
- (void)abort;
- (BOOL)isReadable;
- (BOOL)isWritable;
- (struct __CFReadStream *)copyReadStream;
- (struct __CFWriteStream *)copyWriteStream;
- (BOOL)isValid;
- (BOOL)connectToHost:(id)fp8 withPort:(unsigned int)fp12 protocol:(id)fp16 serverCertificateDigest:(id)fp20;
- (int)writeBytes:(const char *)fp8 length:(int)fp12;
- (int)readBytes:(char *)fp8 length:(int)fp12;
- (void)registerForEvents;
- (void)setEventHandler:(id)fp8;
- (id)remoteHostname;
- (unsigned int)remotePortNumber;
- (id)sourceIPAddress;
- (int)fileDescriptor;
- (double)lastUsedTime;

@end

@interface NSString (NSStringUtils)
+ (id)UUID;
+ (id)messageIDStringWithDomainHint:(id)fp8;
+ (id)stringWithData:(id)fp8 encoding:(unsigned int)fp12;
+ (id)stringRepresentationForBytes:(long long)fp8;
+ (id)stringWithAttachmentCharacter;
- (BOOL)boolValue;
- (id)stringByReplacingString:(id)fp8 withString:(id)fp12;
- (id)stringByLocalizingReOrFwdPrefix;
- (unsigned int)subjectPrefixLength;
- (id)fileSystemString;
- (id)stringWithNoExtraSpaces;
- (id)MD5Digest;
- (id)messageIDSubstring;
- (id)encodedMessageID;
- (id)encodedMessageIDString;
- (id)uniqueFilenameWithRespectToFilenames:(id)fp8;
- (int)caseInsensitiveCompareExcludingXDash:(id)fp8;
- (id)componentsSeparatedByPattern:(id)fp8;
- (id)stringByEscapingForXML;
- (id)stringByEscapingHTMLCodes;
@end

@interface ObjectCache : NSObject
{
    unsigned int _arrayCapacity;
    struct __CFArray *_keysAndValues;
    BOOL _useIsEqual;
}

- (id)initWithCapacity:(unsigned int)fp8;
- (void)dealloc;
- (void)setCapacity:(unsigned int)fp8;
- (void)setUsesIsEqualForComparison:(BOOL)fp8;
- (void)setObject:(id)fp8 forKey:(id)fp12;
- (id)objectForKey:(id)fp8;
- (void)removeObjectForKey:(id)fp8;
- (void)removeAllObjects;
- (BOOL)isObjectInCache:(id)fp8;

@end

@interface NSString (PathUtils)
- (BOOL)makeDirectoryWithMode:(int)fp8;
- (BOOL)isSubdirectoryOfPath:(id)fp8;
- (id)stringByReallyAbbreviatingWithTildeInPath;
- (id)betterStringByResolvingSymlinksInPath;
@end

@interface NSData (UuEnDeCode)
- (id)uudecodedDataIntoFile:(id *)fp8 mode:(unsigned int *)fp12;
- (id)uuencodedDataWithFile:(id)fp8 mode:(unsigned int)fp12;
@end

@interface WorkerThread : NSThread
{
}

+ (void)initialize;
+ (void)addInvocationToQueue:(id)fp8;
+ (void)_execute:(id)fp8;

@end

@interface AuthScheme : NSObject
{
}

+ (void)initialize;
+ (id)knownSchemes;
+ (void)registerSchemeClass:(Class)fp8;
+ (id)schemeWithName:(id)fp8;
+ (id)authSchemesForAccount:(id)fp8 connection:(id)fp12;
- (id)retain;
- (unsigned int)retainCount;
- (void)release;
- (Class)connectionClassForAccountClass:(Class)fp8;
- (Class)authenticatorClassForAccountClass:(Class)fp8;
- (unsigned int)defaultPortForAccount:(id)fp8;
- (BOOL)hasEncryption;
- (BOOL)canAuthenticateAccountClass:(Class)fp8 connection:(id)fp12;
- (id)authenticatorForAccount:(id)fp8 connection:(id)fp12;
- (BOOL)requiresPassword;
- (BOOL)requiresDomain;
- (id)name;
- (id)humanReadableName;

@end

@interface SASLAuthenticator : NSObject
{
    void *_context;
    AuthScheme *_authScheme;
    Account *_account;
    int _authenticationState;
}

- (id)initWithAuthScheme:(id)fp8 account:(id)fp12 connection:(id)fp16;
- (void)dealloc;
- (id)authScheme;
- (id)account;
- (id)saslName;
- (id)responseForServerData:(id)fp8;
- (int)authenticationState;
- (void)setAuthenticationState:(int)fp8;
- (BOOL)justSentPlainTextPassword;
- (id)securityLayer;
- (id)localAddress;
- (id)remoteAddress;
- (BOOL)isUsingSSL;
- (BOOL)base64EncodeResponseData;
- (BOOL)couldRetry;

@end

@interface Connection (Gross)
- (id)_nssocket;
@end

@interface LoginAuthenticator : SASLAuthenticator
{
    BOOL _justSentPassword;
}

- (id)saslName;
- (id)responseForServerData:(id)fp8;
- (BOOL)justSentPlainTextPassword;

@end

@interface PlainAuthenticator : SASLAuthenticator
{
}

- (id)saslName;
- (id)responseForServerData:(id)fp8;
- (BOOL)justSentPlainTextPassword;

@end

@interface PlainAuthScheme : AuthScheme
{
}

- (Class)authenticatorClassForAccountClass:(Class)fp8;
- (id)authenticatorForAccount:(id)fp8 connection:(id)fp12;
- (BOOL)canAuthenticateAccountClass:(Class)fp8 connection:(id)fp12;
- (id)name;
- (id)humanReadableName;

@end

@interface MimeCharset : NSObject
{
    unsigned int _encoding;
    NSString *_primaryLanguage;
    NSString *_charsetName;
    unsigned int _coversLargeUnicodeSubset:1;
    unsigned int _useBase64InHeaders:1;
    unsigned int _canBeUsedForOutgoingMessages:1;
}

+ (id)allMimeCharsets;
+ (id)charsetForEncoding:(unsigned long)fp8;
+ (id)preferredMimeCharset;
- (id)retain;
- (void)release;
- (unsigned int)retainCount;
- (id)initWithEncoding:(unsigned long)fp8;
- (unsigned long)encoding;
- (id)charsetName;
- (BOOL)canBeUsedForOutgoingMessages;
- (BOOL)coversLargeUnicodeSubset;
- (BOOL)useBase64InHeaders;
- (id)displayName;
- (id)primaryLanguage;
- (id)description;

@end

@interface NSString (MimeCharsetSupport)
- (id)bestMimeCharset;
- (id)_bestMimeCharset:(id)fp8;
- (id)bestMimeCharsetUsingHint:(unsigned long)fp8;
@end

@interface LibraryMessage : Message
{
    unsigned int _libraryID;
    NSString *_remoteID;
    unsigned int _uid;
    unsigned int _size;
    CDAnonymousStruct6 _imapFlags;
    unsigned int _mailboxID;
    unsigned int _originalMailboxID;
    NSString *_messageID;
}

+ (id)messageWithLibraryID:(unsigned int)fp8;
- (id)initWithLibraryID:(unsigned int)fp8;
- (id)library;
- (void)setLibraryID:(unsigned int)fp8;
- (id)messageID;
- (id)persistentID;
- (unsigned int)libraryID;
- (unsigned int)mailboxID;
- (void)setMailboxID:(unsigned int)fp8;
- (unsigned int)originalMailboxID;
- (void)setOriginalMailboxID:(unsigned int)fp8;
- (id)originalMailboxURL;
- (unsigned int)messageSize;
- (void)setMessageSize:(unsigned int)fp8;
- (id)messageStore;
- (void)setMessageStore:(id)fp8;
- (id)mailbox;
- (void)_updateUID;
- (void)setRemoteID:(id)fp8;
- (id)remoteID;
- (BOOL)isEqual:(id)fp8;
- (unsigned int)hash;
- (void)setIMAPFlags:(CDAnonymousStruct6)fp8;
- (CDAnonymousStruct6)imapFlags;
- (unsigned long)uid;
- (void)setUid:(unsigned long)fp8;
- (BOOL)isPartial;
- (void)setIsPartial:(BOOL)fp8;
- (BOOL)isMessageContentsLocallyAvailable;
- (void)setPreferredEncoding:(unsigned long)fp8;
- (BOOL)hasTemporaryUid;
- (void)setHasTemporaryUid:(BOOL)fp8;
- (id)mailboxName;
- (int)compareByUidWithMessage:(id)fp8;
- (void)setMessageFlagsWithoutCommitting:(unsigned long)fp8;
- (void)setMessageFlags:(unsigned long)fp8;
- (void)setFlags:(unsigned long long)fp8;
- (void)setSummary:(id)fp8;
- (void)setLibraryColor:(char *)fp8;
- (void)commit;
- (void)setMutableInfoFromMessage:(id)fp8;
- (id)description;
- (void)dealloc;
- (id)path;
- (id)dataPathForMimePart:(id)fp8;
- (id)account;
- (void)markAsViewed;
- (void)markAsNotViewed;
- (void)markAsReplied;
- (void)markAsForwarded;
- (id)preferredEmailAddressToReplyWith;
- (void)setRemoteID:(const char *)fp8 flags:(unsigned long long)fp12 size:(unsigned int)fp20 mailboxID:(unsigned int)fp24 originalMailboxID:(unsigned int)fp28 color:(char *)fp32;
- (void)setMessageData:(id)fp8 isPartial:(BOOL)fp12;
- (id)dataConsumerForMimePart:(id)fp8;

@end

@interface LibraryStore : MessageStore
{
    MessageLibrary *_library;
    MessageCriterion *_criterion;
    double _lastUpdated;
    unsigned int _openOptions;
    NSMutableSet *_memberMessageIDs;
    unsigned int _messageAvailabilityCount;
    BOOL _mailboxUnreadCountUpdatePending;
    NSMutableArray *_allMessagesDuringOpening;
    unsigned int _serverMessageCount;
    unsigned int _serverUnreadCount;
}

+ (void)initialize;
+ (id)_storeCacheMapTable;
+ (unsigned int)defaultLoadOptions;
+ (id)storeWithCriterion:(id)fp8;
+ (id)storeWithMailbox:(id)fp8;
+ (id)sharedInstance;
+ (BOOL)createEmptyStoreForPath:(id)fp8;
+ (BOOL)storeAtPathIsWritable:(id)fp8;
- (id)initWithCriterion:(id)fp8 mailbox:(id)fp12 readOnly:(BOOL)fp16;
- (id)initWithCriterion:(id)fp8;
- (id)initWithMailboxUid:(id)fp8 readOnly:(BOOL)fp12;
- (id)initWithMailbox:(id)fp8;
- (void)setLibrary:(id)fp8;
- (id)library;
- (id)mailbox;
- (void)updateCriterionFromMailbox;
- (void)_updateMailboxUnreadCount;
- (unsigned int)serverMessageCount;
- (unsigned int)serverUnreadCount;
- (void)addCountsForMessages:(id)fp8 shouldUpdateUnreadCount:(BOOL)fp12;
- (BOOL)shouldCancel;
- (void)_newMessagesAvailable:(id)fp8;
- (void)_addInvocationToQueue:(id)fp8;
- (void)newMessagesAvailable:(id)fp8;
- (void)libraryFinishedSendingMessages;
- (void)openAsynchronouslyWithOptions:(unsigned int)fp8;
- (void)openSynchronously;
- (unsigned int)totalCount;
- (unsigned int)nonDeletedCount;
- (id)copyOfMessagesInRange:(struct _NSRange)fp8 options:(unsigned int)fp16;
- (id)copyOfAllMessagesWithOptions:(unsigned int)fp8;
- (id)copyOfAllMessages;
- (id)copyOfAllMessagesWithoutSummaries;
- (id)mutableCopyOfAllMessages;
- (id)filterMessagesByMembership:(id)fp8;
- (void)messagesAdded:(id)fp8;
- (void)handleMessagesAdded:(id)fp8;
- (void)messagesWereAdded:(id)fp8 forIncrementalLoading:(BOOL)fp12;
- (void)messageFlagsChanged:(id)fp8;
- (void)_handleFlagsChangedForMessages:(id)fp8 oldFlagsByMessage:(id)fp12;
- (void)handleMessageFlagsChanged:(id)fp8;
- (void)messagesCompacted:(id)fp8;
- (void)handleMessagesCompacted:(id)fp8;
- (void)dealloc;
- (id)messageForMessageID:(id)fp8;
- (id)_fetchHeaderDataForMessage:(id)fp8 downloadIfNecessary:(BOOL)fp12;
- (id)_fetchBodyDataForMessage:(id)fp8 andHeaderDataIfReadilyAvailable:(id *)fp12 downloadIfNecessary:(BOOL)fp16;
- (id)fullBodyDataForMessage:(id)fp8 andHeaderDataIfReadilyAvailable:(id *)fp12 isComplete:(char *)fp16 downloadIfNecessary:(BOOL)fp20;
- (id)bodyDataForMessage:(id)fp8 isComplete:(char *)fp12 downloadIfNecessary:(BOOL)fp16;
- (unsigned int)indexOfMessage:(id)fp8;
- (void)deleteMessages:(id)fp8 moveToTrash:(BOOL)fp12;
- (void)deleteMessagesOlderThanNumberOfDays:(int)fp8 compact:(BOOL)fp12;
- (id)setFlagsFromDictionary:(id)fp8 forMessages:(id)fp12;
- (void)setNumberOfAttachments:(unsigned int)fp8 isSigned:(BOOL)fp12 isEncrypted:(BOOL)fp16 forMessage:(id)fp20;
- (BOOL)allowsAppend;
- (int)appendMessages:(id)fp8 unsuccessfulOnes:(id)fp12 newMessageIDs:(id)fp16 newMessages:(id)fp20 flagsToSet:(id)fp24;
- (BOOL)canCompact;
- (void)doCompact;
- (void)compactMessages:(id)fp8;
- (id)dataForMimePart:(id)fp8 inRange:(struct _NSRange)fp12 isComplete:(char *)fp20;
- (id)dataPathForMessage:(id)fp8 part:(id)fp12;
- (void)writeUpdatedMessageDataToDisk;
- (void)updateMetadata;
- (void)updateUserInfoToLatestValues;
- (void)_setNeedsAutosave;
- (id)criterion;
- (id)URLString;
- (unsigned int)unreadCount;
- (void)_flushAllMessageData;
- (void)rebuildTableOfContentsAsynchronously;
- (void)_rebuildTableOfContentsSynchronously;
- (void)_flushAllCaches;
- (id)_cachedBodyForMessage:(id)fp8 valueIfNotPresent:(id)fp12;
- (id)_cachedHeadersForMessage:(id)fp8 valueIfNotPresent:(id)fp12;
- (id)_cachedBodyDataForMessage:(id)fp8 valueIfNotPresent:(id)fp12;
- (id)_cachedBodyDataContainerForMessage:(id)fp8 valueIfNotPresent:(id)fp12;
- (id)_cachedHeaderDataForMessage:(id)fp8 valueIfNotPresent:(id)fp12;
- (BOOL)setPreferredEncoding:(unsigned long)fp8 forMessage:(id)fp12;
- (void)purgeMessages:(id)fp8;
- (void)purgeMessagesBeyond:(unsigned int)fp8;
- (BOOL)hasMessageForAccount:(id)fp8;

@end

@interface LibraryIMAPStore : LibraryStore
{
    unsigned int _supportsCustomPermanentFlags:1;
    unsigned int _supportsJunkFlag:1;
    unsigned int _supportsDollarJunkFlag:1;
    unsigned int _supportsNotJunkFlag:1;
    unsigned int _supportsDollarNotJunkFlag:1;
    unsigned int _supportsForwardedFlag:1;
    unsigned int _supportsDollarForwardedFlag:1;
    unsigned int _updatingCache:1;
    unsigned int _updateMetadata:1;
    unsigned int _readyToDealloc:1;
    unsigned int _didSynchronizeOldMessages:1;
    unsigned int _recentsExist:1;
    unsigned int _settingServerCount:1;
    unsigned int _reserved:16;
    NSString *_mailboxName;
    IMAPDownloadCache *_downloadCache;
    IMAPCommandPipeline *_fetchPipeline;
    IMAPMailboxSyncEngine *_syncEngine;
    unsigned int _serverDeletedCount;
    unsigned int _serverUidNext;
    NSString *_selectedUID;
    unsigned int _currentFetchUid;
    NSString *_relativePath;
    id _downloadDelegate;
}

- (id)initWithMailboxUid:(id)fp8 readOnly:(BOOL)fp12;
- (void)dealloc;
- (id)willBeReleased;
- (void)_invalidate;
- (void)focusedMessageDidChange:(id)fp8;
- (int)_fetchMessagesWithArguments:(id)fp8 idRange:(id)fp12 onConnection:(id)fp16 synchronize:(BOOL)fp20 limit:(unsigned int)fp24 topUIDToCompact:(unsigned int)fp28 topKnownUID:(unsigned int)fp32 success:(char *)fp36 examinedRange:(struct _NSRange *)fp40 fetchableUIDsFound:(unsigned int *)fp44 preserveUID:(int *)fp48;
- (void)updateDeletedCountWithNotDeletedCount:(unsigned int)fp8;
- (void)updateDeletedCount;
- (int)fetchNumMessages:(unsigned int)fp8 preservingUID:(id)fp12 beforeUID:(unsigned int)fp16 synchronize:(BOOL)fp20;
- (void)syncOlderMessages;
- (int)syncMessagesInIMAPRange:(CDAnonymousStruct4)fp8 withConnection:(id)fp16 compactingExpungedMessagesToUid:(unsigned int)fp20;
- (int)fetchNewMessagesAndSynchronizeOldMessages:(BOOL)fp8;
- (void)synchronize;
- (int)checkNewMail;
- (int)fetchSynchronously;
- (BOOL)canRebuild;
- (void)removeAllLocalMessages;
- (id)mailboxName;
- (void)setMailboxUidValidity:(unsigned int)fp8;
- (BOOL)canCompact;
- (void)doCompact;
- (void)deleteMessagesOlderThanNumberOfDays:(int)fp8 compact:(BOOL)fp12;
- (BOOL)allowsAppend;
- (void)_addOfflineTransferMessages:(id)fp8;
- (BOOL)_doUidCopy:(CDAnonymousStruct1 *)fp8 toStore:(id)fp12 newMessages:(id)fp16;
- (int)_doAppend:(CDAnonymousStruct1 *)fp8;
- (int)appendMessages:(id)fp8 unsuccessfulOnes:(id)fp12 newMessageIDs:(id)fp16 newMessages:(id)fp20 flagsToSet:(id)fp24 customIMAPFlagsToSet:(id)fp28;
- (int)appendMessages:(id)fp8 unsuccessfulOnes:(id)fp12 newMessageIDs:(id)fp16 newMessages:(id)fp20 flagsToSet:(id)fp24;
- (id)createDictionaryForLocalFlags:(unsigned long)fp8 serverFlags:(unsigned long)fp12 existingDictionary:(id)fp16;
- (void)_synchronouslySetFlags:(id)fp8 clearFlags:(id)fp12 forMessages:(id)fp16 originalChanges:(id)fp20;
- (void)_setFlagsFromDictionary:(id)fp8 forMessages:(id)fp12;
- (void)addFlagChanges:(id)fp8 forMessages:(id)fp12;
- (id)setFlagsFromDictionary:(id)fp8 forMessages:(id)fp12;
- (id)willSetFlagsFromDictionary:(id)fp8 forMessages:(id)fp12;
- (void)setFlagsCancelled:(id)fp8 forMessages:(id)fp12;
- (BOOL)setPreferredEncoding:(unsigned long)fp8 forMessage:(id)fp12;
- (id)_cachedBodyForMessage:(id)fp8 valueIfNotPresent:(id)fp12;
- (id)_cachedHeadersForMessage:(id)fp8 valueIfNotPresent:(id)fp12;
- (id)_cachedHeaderDataForMessage:(id)fp8 valueIfNotPresent:(id)fp12;
- (id)_dataForMessage:(id)fp8 readHeadersOnly:(BOOL)fp12;
- (id)_createDataFromMimePart:(id)fp8 threshold:(unsigned int)fp12 downloadIfNecessary:(BOOL)fp16;
- (id)_fetchDataForMimePart:(id)fp8 keepInMemory:(BOOL)fp12 writeToDisk:(BOOL)fp16 range:(struct _NSRange)fp20 isComplete:(char *)fp28;
- (id)dataForMimePart:(id)fp8 inRange:(struct _NSRange)fp12 isComplete:(char *)fp20 downloadIfNecessary:(BOOL)fp24 didDownload:(char *)fp28;
- (id)dataForMimePart:(id)fp8 inRange:(struct _NSRange)fp12;
- (id)dataForMimePart:(id)fp8;
- (void)setData:(id)fp8 forMimePart:(id)fp12 isComplete:(BOOL)fp16;
- (id)fullBodyDataForMessage:(id)fp8 andHeaderDataIfReadilyAvailable:(id *)fp12 isComplete:(char *)fp16 downloadIfNecessary:(BOOL)fp20 usePartDatas:(BOOL)fp24;
- (id)fullBodyDataForMessage:(id)fp8 andHeaderDataIfReadilyAvailable:(id *)fp12 isComplete:(char *)fp16 downloadIfNecessary:(BOOL)fp20;
- (id)_downloadForMessageBodyData:(id)fp8;
- (id)_performBodyDataDownload:(id)fp8 usingConnection:(id)fp12 isPartial:(char *)fp16;
- (BOOL)shouldRetryEmptyBodyDownloadForMessage:(id)fp8;
- (id)_fetchBodyDataForMessage:(id)fp8 andHeaderDataIfReadilyAvailable:(id *)fp12 downloadIfNecessary:(BOOL)fp16 partial:(char *)fp20;
- (id)_fetchBodyDataForMessage:(id)fp8 andHeaderDataIfReadilyAvailable:(id *)fp12 downloadIfNecessary:(BOOL)fp16;
- (id)bodyDataForMessage:(id)fp8 isComplete:(char *)fp12 downloadIfNecessary:(BOOL)fp16;
- (id)_fetchHeaderDataForMessage:(id)fp8 downloadIfNecessary:(BOOL)fp12;
- (id)connectionWithOptions:(int)fp8;
- (id)connectionCreateIfNeeded:(BOOL)fp8;
- (id)connection;
- (id)lockedConnection:(char *)fp8;
- (BOOL)_changedFlagsForMessage:(id)fp8 fetchResponse:(id)fp12 newFlags:(unsigned int *)fp16;
- (void)connection:(id)fp8 didReceiveResponse:(id)fp12 forCommand:(CDAnonymousStruct8 *)fp16;
- (void)startSynchronization;
- (id)_uidsForMessages:(id)fp8;
- (BOOL)connection:(id)fp8 shouldHandleUntaggedResponse:(id)fp12 forCommand:(CDAnonymousStruct8 *)fp16;
- (void)connectionDidDisconnect:(id)fp8;
- (void)_retrieveNewMessagesForCheckingNewMail:(BOOL)fp8;
- (void)forceResync;
- (BOOL)hasValidCacheFileForMessage:(id)fp8;
- (void)setUid:(unsigned long)fp8 forMessageWithTemporaryUid:(unsigned long)fp12;
- (id)addMessages:(id)fp8 newMessagesByOldMessage:(id)fp12;
- (id)deletedMessages;
- (void)_handleFlagsChangedForMessages:(id)fp8 oldFlagsByMessage:(id)fp12;
- (void)_setFlagsForMessages:(id)fp8 mask:(unsigned long)fp12;
- (void)_setFlagsAndColorForMessages:(id)fp8;
- (id)fetchPipeline;
- (id)downloadCache;
- (id)offlineCache;
- (id)offlineCacheIfOffline;
- (BOOL)canPerformOfflineAppend;
- (void)close;
- (id)messageForRemoteID:(id)fp8;
- (BOOL)hasMoreMessages:(unsigned int)fp8;
- (void)setServerMessageCount:(unsigned int)fp8;
- (unsigned int)serverMessageCount;
- (unsigned int)serverUnreadCount;
- (id)relativePath;
- (void)setDownloadDelegate:(id)fp8;
- (void)connection:(id)fp8 didBeginBodyLoad:(id)fp12;
- (void)connection:(id)fp8 didLoadMoreBodyData:(id)fp12;
- (void)connection:(id)fp8 didFinishLoadingBodyData:(id)fp12;

@end

@interface SyncResponseQueue : BufferedMessageQueue
{
    LibraryIMAPStore *_store;
    IMAPConnection *_connection;
    NSString *_url;
    unsigned int _currentUID;
    NSMutableArray *_missingUIDs;
    NSArray *_libraryDetails;
    NSRecursiveLock *_flagChangesLock;
    BOOL _shouldCompact;
    BOOL _shouldFetch;
}

- (id)init;
- (unsigned int)sizeForItem:(id)fp8;
- (BOOL)handleItems:(id)fp8;
- (BOOL)addItem:(id)fp8;
- (void)dealloc;

@end

@interface FetchResponseQueue : BufferedMessageQueue
{
    LibraryIMAPStore *_store;
    IMAPConnection *_connection;
    unsigned int _localUidNext;
    unsigned int _numNewUIDs;
    int newMessageCount;
}

- (id)init;
- (unsigned int)sizeForItem:(id)fp8;
- (BOOL)handleItems:(id)fp8;
- (BOOL)addItem:(id)fp8;

@end

@interface IMAPFetchResult : NSObject
{
    int _itemType;
    union {
        NSArray *envelope;
        NSDate *internalDate;
        unsigned int messageSize;
        NSArray *bodyStructure;
        struct {
            NSString *section;
            unsigned int startOffset;
            NSData *sectionData;
        } bodySectionInfo;
        unsigned int uid;
        struct {
            unsigned int messageFlags;
            NSArray *customFlags;
        } flags;
    } _typeSpecific;
}

- (id)initWithType:(int)fp8;
- (void)dealloc;
- (int)type;
- (id)envelope;
- (void)setEnvelope:(id)fp8;
- (id)internalDate;
- (void)setInternalDate:(id)fp8;
- (id)fetchData;
- (void)setFetchData:(id)fp8;
- (unsigned long)messageSize;
- (void)setMessageSize:(unsigned long)fp8;
- (id)bodyStructure;
- (void)setBodyStructure:(id)fp8;
- (unsigned long)startOffset;
- (void)setStartOffset:(unsigned long)fp8;
- (id)section;
- (void)setSection:(id)fp8;
- (unsigned long)uid;
- (void)setUid:(unsigned long)fp8;
- (id)flagsArray;
- (void)setFlagsArray:(id)fp8;
- (void)setMessageFlags:(unsigned long)fp8;
- (unsigned long)messageFlags;
- (void)setCustomFlagsArray:(id)fp8;
- (id)customFlagsArray;
- (unsigned long)encoding;
- (id)description;

@end

@interface IMAPCompoundDownload : IMAPDownload
{
    NSMutableArray *_subdownloads;
}

- (void)dealloc;
- (id)subdownloads;
- (void)addSubdownload:(id)fp8;
- (void)removeSubdownload:(id)fp8;
- (void)addCommandsToPipeline:(id)fp8 withCache:(id)fp12;
- (void)processResults;
- (BOOL)isComplete;
- (unsigned long)expectedLength;
- (unsigned long)bytesFetched;

@end

@interface IMAPSimpleDownload : IMAPDownload
{
    MappedData *_mdata;
    NSString *_section;
    NSError *_error;
    unsigned int _length:32;
    unsigned int _knownLength:1;
    unsigned int _complete:1;
    struct _NSRange _range;
}

- (id)initWithUid:(unsigned long)fp8 section:(id)fp12 estimatedLength:(unsigned long)fp16;
- (id)initWithUid:(unsigned long)fp8 section:(id)fp12 length:(unsigned long)fp16;
- (id)initWithUid:(unsigned long)fp8 section:(id)fp12 range:(struct _NSRange)fp16;
- (id)section;
- (unsigned long)expectedLength;
- (unsigned long)bytesFetched;
- (void)dealloc;
- (void)handleFetchResult:(id)fp8;
- (void)processResults;
- (void)addCommandsToPipeline:(id)fp8 withCache:(id)fp12;
- (BOOL)isComplete;
- (id)data;
- (id)error;
- (void)setError:(id)fp8;

@end

@interface IMAPDownload : NSObject
{
    unsigned int _uid;
    NSMutableArray *_pendingFetchResults;
}

- (void)dealloc;
- (id)initWithUid:(unsigned long)fp8;
- (unsigned long)uid;
- (unsigned long)expectedLength;
- (BOOL)isComplete;
- (unsigned long)bytesFetched;
- (id)data;
- (id)error;
- (void)setError:(id)fp8;
- (void)handleFetchResult:(id)fp8;
- (void)processResults;
- (void)addCommandsToPipeline:(id)fp8 withCache:(id)fp12;

@end

@interface _IMAPFetchUnit : NSObject
{
    unsigned int uid;
    NSString *fetchItem;
    IMAPFetchResult *_expectedFetchResult;
}

- (void)dealloc;
- (void)_setupExpectedFetchResult;
- (BOOL)matchesFetchResponse:(id)fp8;
- (id)createFailedFetchResponse;

@end

@interface IMAPCommandPipeline : NSObject
{
    unsigned int _chunkSize;
    unsigned int _expectedSize;
    unsigned int _full:1;
    unsigned int _sending:1;
    NSMutableArray *_fetchUnits;
}

- (void)dealloc;
- (void)addFetchCommandForUid:(unsigned long)fp8 fetchItem:(id)fp12 expectedLength:(unsigned long)fp16;
- (unsigned long)expectedSize;
- (void)setChunkSize:(unsigned long)fp8;
- (unsigned long)chunkSize;
- (void)setFull:(BOOL)fp8;
- (BOOL)isFull;
- (void)_removeFetchUnitMatchingResponse:(id)fp8;
- (id)failureResponsesFromSendingCommandsWithConnection:(id)fp8;
- (BOOL)isSending;

@end

@interface IMAPDownloadCache : NSObject
{
    NSMutableArray *_downloads;
}

- (void)dealloc;
- (id)downloadForMessage:(id)fp8;
- (id)downloadForUid:(unsigned long)fp8 section:(id)fp12 length:(unsigned long)fp16;
- (id)downloadForUid:(unsigned long)fp8 section:(id)fp12 expectedLength:(unsigned long)fp16;
- (id)downloadForUid:(unsigned long)fp8 section:(id)fp12 range:(struct _NSRange)fp16;
- (void)handleFetchResponse:(id)fp8 forUid:(unsigned long)fp12;
- (void)handleFetchResponses:(id)fp8;
- (void)processResultsForUid:(unsigned long)fp8;
- (void)cleanUpDownloadsForUid:(unsigned long)fp8;
- (void)addCommandsForDownload:(id)fp8 toPipeline:(id)fp12;

@end

@interface IMAPMessageDownload : IMAPCompoundDownload
{
    Message *_message;
    MimePart *_topLevelPart;
    unsigned int _allowsPartialDownloads:1;
    unsigned int _usingPartialDownloads:1;
    unsigned int _startedFetch:1;
    unsigned int _fetchingMessageContents:1;
    unsigned int _fetchingBodyText:1;
    unsigned int _doneAddingSubdownloads:1;
    unsigned int _writesCacheFile:1;
    unsigned int _fetchBodyData:1;
}

- (void)dealloc;
- (id)initWithMessage:(id)fp8;
- (id)message;
- (BOOL)allowsPartialDownloads;
- (void)setAllowsPartialDownloads:(BOOL)fp8;
- (BOOL)partial;
- (BOOL)writesCacheFile;
- (void)setWritesCacheFile:(BOOL)fp8;
- (id)topLevelPart;
- (void)setTopLevelPart:(id)fp8;
- (id)data;
- (BOOL)isComplete;
- (void)handleFetchResult:(id)fp8;
- (void)processResults;
- (void)addCommandsToPipeline:(id)fp8 withCache:(id)fp12;
- (void)setFetchBodyData:(BOOL)fp8;
- (BOOL)fetchBodyData;

@end

@interface IMAPAttachmentsDownload : IMAPCompoundDownload
{
    LibraryMessage *_message;
}

- (void)dealloc;
- (id)initWithLibraryMessage:(id)fp8;
- (id)message;
- (void)saveCompletedDownloads;

@end

@interface MessageCriterion : NSObject
{
    NSString *_uniqueId;
    NSString *_criterionIdentifier;
    NSString *_expression;
    int _qualifier;
    NSArray *_criteria;
    int _dateUnitType;
    NSString *_name;
    unsigned int _allCriteriaMustBeSatisfied:1;
    unsigned int _dateIsRelative:1;
    int _type;
    NSArray *_requiredHeaders;
}

+ (void)initialize;
+ (id)criteriaFromDefaultsArray:(id)fp8;
+ (id)criteriaFromDefaultsArray:(id)fp8 removingRecognizedKeys:(BOOL)fp12;
+ (id)defaultsArrayFromCriteria:(id)fp8;
+ (void)_updateAddressComments:(id)fp8;
+ (int)criterionTypeForString:(id)fp8;
+ (id)stringForCriterionType:(int)fp8;
+ (id)criterionForMailboxURL:(id)fp8;
+ (id)messageIsDeletedCriterion:(BOOL)fp8;
- (id)init;
- (id)initWithCriterion:(id)fp8 expression:(id)fp12;
- (id)initWithType:(int)fp8 qualifier:(int)fp12 expression:(id)fp16;
- (id)initWithDictionary:(id)fp8;
- (id)initWithDictionary:(id)fp8 andRemoveRecognizedKeysIfMutable:(BOOL)fp12;
- (void)dealloc;
- (BOOL)isEqual:(id)fp8;
- (id)descriptionWithDepth:(unsigned int)fp8;
- (id)description;
- (id)dictionaryRepresentation;
- (int)criterionType;
- (void)setCriterionType:(int)fp8;
- (id)criterionIdentifier;
- (void)setCriterionIdentifier:(id)fp8;
- (id)_qualifierString;
- (int)qualifier;
- (void)setQualifier:(int)fp8;
- (id)expression;
- (void)setExpression:(id)fp8;
- (id)name;
- (void)setName:(id)fp8;
- (id)_headersRequiredForEvaluation;
- (BOOL)_evaluateHeaderCriterion:(id)fp8;
- (BOOL)_evaluateAddressBookCriterion:(id)fp8;
- (BOOL)_evaluateFullNameCriterion:(id)fp8;
- (BOOL)_evaluateIsDigitallySignedCriterion:(id)fp8;
- (BOOL)_evaluateIsEncryptedCriterion:(id)fp8;
- (BOOL)_evaluatePriorityIsNormalCriterion:(id)fp8;
- (BOOL)_evaluatePriorityIsHighCriterion:(id)fp8;
- (BOOL)_evaluatePriorityIsLowCriterion:(id)fp8;
- (BOOL)_evaluateAttachmentCriterion:(id)fp8;
- (BOOL)_evaluateAccountCriterion:(id)fp8;
- (BOOL)_evaluateAddressHistoryCriterion:(id)fp8;
- (BOOL)_evaluateDateCriterion:(id)fp8;
- (BOOL)doesMessageSatisfyCriterion:(id)fp8;
- (int)messageRuleQualifierForString:(id)fp8;
- (id)stringForMessageRuleQualifier:(int)fp8;
- (id)criteria;
- (void)setCriteria:(id)fp8;
- (BOOL)allCriteriaMustBeSatisfied;
- (void)setAllCriteriaMustBeSatisfied:(BOOL)fp8;
- (int)dateUnits;
- (void)setDateUnits:(int)fp8;
- (BOOL)dateIsRelative;
- (void)setDateIsRelative:(BOOL)fp8;
- (id)emailAddressesForGroupCriterion;

@end

@interface MessageCriterion (PrivateLibraryAdditions)
- (id)fixOnce;
- (id)SQLExpressionWithContext:(CDAnonymousStruct3 *)fp8 depth:(unsigned int)fp12;
- (BOOL)hasNumberCriterion;
@end

@interface MessageCriterion (LibraryAdditions)
- (id)criterionForSQL;
- (id)SQLExpressionWithTables:(unsigned int *)fp8 baseTable:(unsigned int)fp12;
- (unsigned int)bestBaseTable;
@end

@interface APOPConnection : POP3Connection
{
}

- (BOOL)authenticateUsingAccount:(id)fp8;

@end

@interface APOPAuthScheme : AuthScheme
{
}

- (BOOL)supportsAccountType:(id)fp8;
- (Class)connectionClassForAccountClass:(Class)fp8;
- (Class)authenticatorClassForAccountClass:(Class)fp8;
- (BOOL)hasEncryption;
- (BOOL)requiresPassword;
- (BOOL)requiresDomain;
- (id)name;
- (id)humanReadableName;
- (BOOL)canAuthenticateAccountClass:(Class)fp8 connection:(id)fp12;

@end

@interface IMAPMessage : Message
{
    unsigned int _size;
    CDAnonymousStruct6 _imapFlags;
    NSArray *_customFlags;
    unsigned int _uid;
}

+ (void)initialize;
- (id)initWithFlags:(unsigned long)fp8 customFlags:(id)fp12 size:(unsigned int)fp16 uid:(unsigned long)fp20;
- (void)dealloc;
- (id)description;
- (unsigned int)messageSize;
- (id)messageID;
- (int)compareByNumberWithMessage:(id)fp8;
- (unsigned long)uid;
- (void)setUid:(unsigned long)fp8;
- (BOOL)isPartial;
- (void)setIsPartial:(BOOL)fp8;
- (BOOL)isMessageContentsLocallyAvailable;
- (void)setPreferredEncoding:(unsigned long)fp8;
- (BOOL)hasTemporaryUid;
- (void)setHasTemporaryUid:(BOOL)fp8;
- (CDAnonymousStruct6)imapFlags;
- (id)customFlags;
- (id)mailboxName;
- (id)remoteID;
- (id)remoteMailboxURL;
- (id)originalMailboxURL;

@end

@interface IMAPMessageWithCache : IMAPMessage
{
    NSData *_messageData;
    MessageHeaders *_headers;
}

- (void)dealloc;
- (id)messageData;
- (void)setMessageData:(id)fp8 isPartial:(BOOL)fp12;
- (BOOL)isMessageContentsLocallyAvailable;
- (id)headers;
- (void)setHeaders:(id)fp8;
- (id)headerData;

@end

@interface PlaceholderFileWrapper : MessageFileWrapper
{
}

- (BOOL)isPlaceholder;

@end

@interface MessageFileWrapper : NSObject
{
    NSString *_path;
    NSString *_filename;
    NSString *_preferredFilename;
    NSData *_data;
    NSMutableDictionary *_attributes;
    NSString *_linkDestination;
    NSString *_url;
    int _type;
}

- (void)setResourceForkData:(id)fp8;
- (id)resourceForkData;
- (void)setType:(unsigned long)fp8;
- (unsigned long)type;
- (void)setCreator:(unsigned long)fp8;
- (unsigned long)creator;
- (void)setFinderFlags:(unsigned short)fp8;
- (unsigned short)finderFlags;
- (void)setShouldHideExtension:(BOOL)fp8;
- (BOOL)shouldHideExtension;
- (void)setMimeType:(id)fp8;
- (id)mimeType;
- (id)inferredMimeType;
- (void)setContentID:(id)fp8;
- (id)contentID;
- (void)setMessageID:(id)fp8;
- (id)messageID;
- (BOOL)couldConfuseWindowsClients;
- (void)setShouldBeViewedInline:(BOOL)fp8;
- (BOOL)shouldBeViewedInline;
- (BOOL)isImageFile;
- (void)setImageSize:(struct _NSSize)fp8 imageBytes:(unsigned int)fp16;
- (struct _NSSize)imageSize;
- (unsigned int)imageBytes;
- (id)preferredFilenameWithoutHiddenExtension;
- (id)tmpFullPath;
- (void)setSavedPath:(id)fp8;
- (id)savedPath;
- (BOOL)writeToFile:(id)fp8 atomically:(BOOL)fp12 updateFilenames:(BOOL)fp16;
- (id)initWithPath:(id)fp8;
- (BOOL)isPlaceholder;
- (id)dictionaryRepresentation;
- (id)initWithDictionaryRepresentation:(id)fp8;
- (id)URL;
- (void)setURL:(id)fp8;
- (id)initRegularFileWithContents:(id)fp8;
- (id)initSymbolicLinkWithDestination:(id)fp8;
- (void)setPreferredFilename:(id)fp8;
- (id)preferredFilename;
- (void)setFilename:(id)fp8;
- (id)filename;
- (BOOL)isSymbolicLink;
- (BOOL)isRegularFile;
- (BOOL)isDirectory;
- (id)fileWrappers;
- (id)symbolicLinkDestination;
- (id)regularFileContents;
- (void)setFileAttributes:(id)fp8;
- (id)fileAttributes;
- (void)dealloc;

@end

@interface POP3Fetcher : NSObject
{
}

+ (int)_fetchWithAccount:(id)fp8 intoQueue:(id)fp12 newMessages:(unsigned int)fp16 oldMessages:(unsigned int)fp20 preservingUID:(id)fp24 withStore:(id)fp28;
+ (int)fetchWithAccount:(id)fp8 newMessages:(unsigned int)fp12 oldMessages:(unsigned int)fp16 preservingUID:(id)fp20 withStore:(id)fp24;

@end

@interface POPDownloadQueue : BufferedMes