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

struct CGColor;

struct CGContext;

struct CGPoint {
    float x;
    float y;
};

struct CGRect {
    struct CGPoint origin;
    struct CGSize size;
};

struct CGSize {
    float width;
    float height;
};

struct CPRecord;

struct __CFArray;

struct __CTSMSMessage;

struct __GSEvent;

struct __GSFont;

typedef struct {
    int _field1;
    int _field2;
} CDAnonymousStruct1;

/*
 * File: Applications/MobileSMS.app/MobileSMS
 */

@interface mSMSApplication : UIApplication
{
    mSMSUIController *_uiController;
    BOOL _waitToSendFinishLaunching;
    BOOL _isLocked;
}

+ (BOOL)use24HourTime;
- (void)applicationDidFinishLaunching:(id)fp8;
- (BOOL)isLocked;
- (void)applicationWillSuspendForEventsOnly;
- (void)applicationDidResumeForEventsOnly;
- (BOOL)willHandleWithURL;
- (void)applicationOpenURL:(id)fp8;
- (void)setWaitToSendFinishLaunching:(BOOL)fp8;
- (void)reportAppLaunchFinished;
- (void)openURL:(id)fp8;
- (BOOL)applicationSuspend:(struct __GSEvent *)fp8 settings:(id)fp12;
- (void)significantTimeChange;

@end

@interface mSMSMessageGroup : NSObject
{
    NSMutableArray *_messages;
    NSCalendarDate *_nextEligibleTimestamp;
    NSString *_name;
    int _unreadCount;
    SMSMessage *_latestFailedMessage;
    NSMutableArray *_pendingMessages;
    SMSMessage *_latestIncomingMessage;
    struct CPRecord *_abRecord;
    int _identifier;
    BOOL _hasPlaceholder;
    SMSMessage *_placeholderMessage;
    NSArray *_abRecords;
    int *_identifiers;
    NSArray *_names;
    NSArray *_recipients;
    int _groupID;
    NSMutableDictionary *_groupMessages;
    NSMutableArray *_queuedGroupMessages;
    int _groupAddStack;
}

- (int)groupID;
- (id)initWithGroupID:(int)fp8;
- (struct CPRecord *)recipient;
- (void)dealloc;
- (void)setName:(id)fp8;
- (id)name;
- (struct CPRecord *)abRecord;
- (int)identifier;
- (id)latestMessage;
- (id)date;
- (void)setRecipients:(id)fp8;
- (id)recipients;
- (void)_setupNextEligibleTimestamp:(id)fp8;
- (BOOL)_shouldShowTimestampForDate:(id)fp8;
- (void)_recalculateUnreadCounts;
- (void)removeMessage:(struct __CTSMSMessage *)fp8;
- (void)_setLatestFailedMessage:(id)fp8 delete:(BOOL)fp12;
- (void)resetFailedMessageDeletingFailure:(BOOL)fp8;
- (BOOL)isEmpty;
- (BOOL)isPlaceholder;
- (id)placeholderMessage;
- (void)_setPlaceholderMessage:(id)fp8;
- (int)addSMSMessage:(id)fp8 incrementUnreadCount:(BOOL)fp12;
- (void)_beginGroupAdd;
- (void)_addGroupMessage:(id)fp8;
- (int)_endGroupAdd:(BOOL)fp8;
- (int)addMessage:(struct __CTSMSMessage *)fp8 incrementUnreadCount:(BOOL)fp12;
- (void)resetPendingMessages;
- (void)removeAllMessages;
- (void)_deleteAllMessagesAndRemoveGroup:(BOOL)fp8;
- (void)deleteAllMessages;
- (void)deleteAllMessagesAndRemoveGroup;
- (void)loadAllMessages;
- (id)pendingMessages;
- (id)messages;
- (id)latestFailedMessage;
- (id)latestIncomingMessage;
- (void)setUnreadCount:(int)fp8;
- (int)unreadCount;
- (BOOL)hasUnreadMessages;
- (int)compareByDateDescending:(id)fp8;
- (void)resetCaches;
- (id)groupMessageWithAssociationID:(int)fp8;

@end

@interface mSMSMessageListController : UIViewController
{
    mSMSUIController *_uiController;
    UITable *_table;
    UIButtonBar *_buttonBar;
    mSMSMessageListModel *_messageListModel;
    unsigned int _willBeMarkedReadCount;
    unsigned int _dirty:1;
    unsigned int _isVisible:1;
    unsigned int _isUpdatingDisabled:1;
}

- (id)initWithUIController:(id)fp8;
- (void)dealloc;
- (void)resetSelection;
- (id)messageListModel;
- (void)messageGroupWillBeMarkedRead:(id)fp8;
- (void)noteUnreadCountsChanged;
- (void)significantTimeChange;
- (void)updateMessageList;
- (void)disableMessageListUpdates;
- (void)enableMessageListUpdates;
- (void)noteMessageListChanged;
- (id)view;
- (void)viewWillDisplayWithAnimation:(BOOL)fp8;
- (void)viewDidDisplayWithAnimation:(BOOL)fp8;
- (void)viewDidHideWithAnimation:(BOOL)fp8;
- (id)navigationTitle;
- (id)shortNavigationTitle;
- (int)editButton;
- (void)editingDidChange:(BOOL)fp8 animate:(BOOL)fp12;
- (id)imageForNavigationButton:(int)fp8;
- (BOOL)clickedNavigationButton:(int)fp8;
- (void)table:(id)fp8 deleteRow:(int)fp12;
- (BOOL)table:(id)fp8 canDeleteRow:(int)fp12;
- (id)table:(id)fp8 cellForRow:(int)fp12 column:(id)fp16 reusing:(id)fp20;
- (BOOL)table:(id)fp8 showDisclosureForRow:(int)fp12;
- (int)numberOfRowsInTable:(id)fp8;
- (void)tableSelectionDidChange:(id)fp8;
- (void)table:(id)fp8 willSwipeToDeleteRow:(int)fp12;
- (void)table:(id)fp8 willCancelSwipeToDeleteRow:(int)fp12;

@end

@interface mSMSMessageListModel : NSObject
{
    NSMutableArray *_messageGroups;
    mSMSMessageGroup *_pendingMessageGroup;
    NSMutableArray *_groupsToDelete;
}

+ (id)sharedInstance;
- (id)initWithMessageListController:(id)fp8;
- (id)messageGroupForRecipients:(id)fp8 create:(BOOL)fp12;
- (id)_recipientsForGroupID:(int)fp8;
- (struct CPRecord *)_recipientForMessage:(struct __CTSMSMessage *)fp8;
- (id)_createMessageGroupForMessage:(struct __CTSMSMessage *)fp8 groupID:(int)fp12;
- (id)_messageGroupForMessage:(struct __CTSMSMessage *)fp8 groupID:(int)fp12 create:(BOOL)fp16;
- (id)messageGroupForMessage:(struct __CTSMSMessage *)fp8 create:(BOOL)fp12;
- (void)resetCaches;
- (void)fixupNames;
- (id)activeMessageGroups;
- (void)_addGroupToDeletionSchedule:(int)fp8;
- (void)_deleteGroups;
- (id)messageGroups;
- (void)resort;
- (void)addMessageGroup:(id)fp8;
- (void)unpendMessageGroup;
- (void)applyPendingMessageGroup;
- (id)pendingMessageGroup:(BOOL)fp8;
- (int)unreadCount;
- (void)markMessageGroupAsRead:(id)fp8;
- (void)deleteMessageGroupAtIndex:(int)fp8;

@end

@interface SMSMessageSynopsisLabel : UITextLabel
{
}

- (void)drawRect:(struct CGRect)fp8;

@end

@interface mSMSMessageSynopsisLayer : UIImageAndTextTableCell
{
    mSMSMessageGroup *_messageGroup;
    UIDateLabel *_dateLabel;
    SMSMessageSynopsisLabel *_messageLabel;
    SMSMessageSynopsisLabel *_backupMessageLabel;
    BOOL _willShowRemove;
}

+ (float)cellHeight;
- (id)initWithFrame:(struct CGRect)fp8 messageGroup:(id)fp24;
- (void)setMessageGroup:(id)fp8;
- (void)dealloc;
- (void)clearText;
- (void)updateContents;
- (void)updateHighlightColors;
- (void)_setupBackupMessageLabel;
- (void)layoutSubviews;
- (void)removeControlWillShowRemoveConfirmation:(id)fp8;
- (void)removeControlWillHideRemoveConfirmation:(id)fp8;

@end

@interface mSMSMessageTranscriptBackPlacard : UIView
{
}

@end

@interface MessageURLButton : UIPushButton
{
    NSString *_message;
}

- (void)setMessage:(id)fp8;
- (id)message;
- (void)dealloc;

@end

@interface TranscriptFrameAnimation : UIFrameAnimation
{
    struct CGPoint _startTopLeftPoint;
    struct CGPoint _endTopLeftPoint;
}

- (void)setProgress:(float)fp8;
- (void)setStartTopLeftPoint:(struct CGPoint)fp8;
- (void)setEndTopLeftPoint:(struct CGPoint)fp8;
- (struct CGPoint)endTopLeftPoint;

@end

@interface mSMSMessageTranscriptController : UIViewController
{
    mSMSMessageGroup *_messageGroup;
    mSMSUIController *_uiController;
    mSMSMessageTranscriptBackPlacard *_backPlacard;
    UIKeyboard *_keyboardLayer;
    mSMSMessageTranscriptLayer *_transcriptLayer;
    LabelledAtomList *_recipientList;
    UIControl *_recipientContainer;
    UIScroller *_recipientScroller;
    UIView *_recipientSeparator;
    mSMSMessageEntryView *_entryView;
    UIView *_accessoryView;
    mSMSBalloonTextField *_outboundMessageLayer;
    UIView *_replacementMessageLayer;
    mSMSSendingProgressLayer *_sendingProgressLayer;
    double _progStart;
    float _sendingProgress;
    float _progressRate;
    NSTimer *_sendingProgressTimer;
    NSMutableArray *_recipients;
    SMSMessageDelivery *_delivery;
    int _numberSent;
    int _numberToSend;
    SMSMessage *_outboundMessage;
    BOOL _newRecipient;
    SMSRecipientSelectionView *_recipientSelectionView;
    UIFrameAnimation *_throwAnimation;
    TranscriptFrameAnimation *_transcriptAnimation;
    UIFrameAnimation *_messageEntryViewAnimation;
    unsigned int _rescroll:1;
    unsigned int _sending:1;
    unsigned int _waitingOnMessageSend:1;
    unsigned int _failedToSend:1;
    unsigned int _isThrowingOutboundMessageToTable:1;
    unsigned int _recipientListScrollingEnabled:1;
    unsigned int _recipientListShouldBeExpanded:1;
    NSTimer *_errorDisplayTimer;
    UIAlertSheet *_contactAlertSheet;
    UIAlertSheet *_clearConversationAlertSheet;
}

+ (struct CGColor *)tableColor;
- (id)initWithUIController:(id)fp8;
- (void)dealloc;
- (float)_heightForMessage:(int)fp8;
- (struct CGRect)rectOfMessageAtIndex:(int)fp8;
- (struct CGPoint)bestVisibleOffsetForMessageAtIndex:(int)fp8;
- (void)scrollMessageIndexToVisible:(int)fp8;
- (void)setMessageGroup:(id)fp8;
- (void)reload:(BOOL)fp8;
- (id)messageGroup;
- (void)_setupRecipientSelectionView;
- (void)updateEnablednessOfSendButton;
- (void)_adjustMessageEntryViewOriginDelta:(float)fp8 heightDelta:(float)fp12 animate:(BOOL)fp16 animationLength:(float)fp20;
- (void)_adjustTranscriptLayerFrameDelta:(struct CGRect)fp8 offsetDelta:(struct CGPoint)fp24 animate:(BOOL)fp32 animationLength:(float)fp36;
- (float)smsRecipientSelectionViewMaxHeight:(id)fp8;
- (float)smsRecipientSelectionViewMaxToFieldHeight:(id)fp8;
- (void)smsRecipientSelectionView:(id)fp8 recipientAdded:(id)fp12;
- (void)smsRecipientSelectionViewEmpty:(id)fp8;
- (void)hideKeyboard:(BOOL)fp8;
- (void)showKeyboard:(BOOL)fp8;
- (BOOL)isSendingMessage;
- (id)entryView;
- (id)sendingProgressLayer;
- (id)view;
- (void)viewWillDisplayWithAnimation:(BOOL)fp8;
- (void)viewWasAddedToSuperview;
- (void)viewDidDisplayWithAnimation:(BOOL)fp8;
- (void)viewWillHideWithAnimation:(BOOL)fp8;
- (id)accessoryView;
- (id)shortNavigationTitle;
- (id)navigationTitle;
- (id)titleForNavigationButton:(int)fp8;
- (BOOL)isNavigationButtonEnabled:(int)fp8;
- (BOOL)clickedNavigationButton:(int)fp8;
- (void)scrollerWillStartDragging:(id)fp8;
- (void)resignEntryViewFirstResponder;
- (void)makeRecipientFieldFirstResponder;
- (void)restoreEntryViewCursor;
- (void)makeEntryViewFirstResponder;
- (void)activateURLButton:(id)fp8;
- (void)addressAtomClicked:(id)fp8;
- (void)_setupTranscriptHeader;
- (void)_clearExpandRecipientListFlag;
- (void)_showTranscriptButtons;
- (void)_hideAccessoryView;
- (void)_hideTranscriptButtons;
- (void)_showRecipientList;
- (void)_hideRecipientList;
- (void)_updateRecipientContainerViewFrame;
- (void)_updateRecipientScrollViewFrame;
- (void)_updateTranscriptScrollerIndicatorSubrect;
- (void)_mouseDownInRecipientList:(struct __GSEvent *)fp8;
- (void)labelledAtomList:(id)fp8 frameDidChange:(struct CGRect)fp12;
- (Class)balloonClassForText:(id)fp8 outgoing:(unsigned char)fp12;
- (id)table:(id)fp8 cellForRow:(int)fp12 column:(id)fp16;
- (int)numberOfRowsInTable:(id)fp8;
- (float)table:(id)fp8 heightForRow:(int)fp12;
- (void)cleanUpAfterSendAttempt:(BOOL)fp8;
- (void)animator:(id)fp8 stopAnimation:(id)fp12;
- (struct CGPoint)_transcriptScrollToBottomOffsetWithHeightDelta:(float)fp8;
- (void)throwOutboundMessageToTable:(id)fp8 clearTranscript:(BOOL)fp12;
- (void)didBeginSendingText:(id)fp8 alphaIn:(BOOL)fp12 rebuildOutboundLayer:(BOOL)fp16;
- (void)didBeginSendingText:(id)fp8;
- (void)_scheduleNextProgressUpdate:(SEL)fp8;
- (void)finishProgress;
- (void)updateSendingProgress;
- (void)resetErrorDisplay;
- (void)tearDownErrorDisplay;
- (void)showErrorDisplay;
- (void)mSMSSendingProgressLayerCancelHit:(id)fp8;
- (void)mSMSSendingProgressLayerTryAgainHit:(id)fp8;
- (void)_showPartialFailureDisplay;
- (void)didEndSendingMessage:(id)fp8;
- (void)_fadeOutSendingProgressLayer;
- (void)_actuallyClearCurrentMessageThread;
- (void)clearCurrentMessageThread;
- (void)_startUpdatingSendProgress;
- (void)sendMessage:(id)fp8;
- (void)deliveredSubpart:(int)fp8 totalSubparts:(int)fp12 success:(BOOL)fp16;
- (void)deliveryPartiallyFailedForMessage:(id)fp8;
- (void)deliveryCompletedForMessage:(id)fp8;
- (void)deliveryFailedForMessage:(id)fp8;
- (void)send:(id)fp8;
- (void)transcriptLayerTapped:(id)fp8;
- (struct CGRect)messageEntryViewFinalFrame;
- (id)smsTextEntryViewMessageEntryView:(id)fp8;
- (void)smsTextEntryViewWillBecomeFirstResponder:(id)fp8;
- (void)smsTextEntryViewTextChanged:(id)fp8;
- (void)smsTextEntryViewSizeChanged:(id)fp8 height:(float)fp12 animate:(BOOL)fp16;
- (id)text;
- (void)setText:(id)fp8;
- (void)setText:(id)fp8 resizeEntryView:(BOOL)fp12 animate:(BOOL)fp16;
- (void)findMessageGroupForRecipients:(id)fp8;
- (id)recipients;
- (id)proposedRecipients;
- (void)setNewCompositionAddresses:(id)fp8;
- (void)setupForNewRecipient;
- (BOOL)isNewRecipient;
- (void)addRecipient:(struct CPRecord *)fp8 identifier:(int)fp12 phoneNumber:(id)fp16;
- (void)webView:(id)fp8 decidePolicyForNavigationAction:(id)fp12 request:(id)fp16 frame:(id)fp20 decisionListener:(id)fp24;
- (void)smsTranscriptTopCell:(id)fp8 buttonClicked:(int)fp12;
- (void)alertSheet:(id)fp8 buttonClicked:(int)fp12;

@end

@interface mSMSMessageTranscriptLayer : UITable
{
    id _transcriptDelegate;
}

- (void)setTranscriptDelegate:(id)fp8;
- (void)mouseDown:(struct __GSEvent *)fp8;

@end

@interface SMSNavigationBar : UINavigationBar
{
}

- (id)createButtonWithContents:(id)fp8 width:(float)fp12 barStyle:(int)fp16 buttonStyle:(int)fp20 isRight:(BOOL)fp24;

@end

@interface mSMSUIController : NSObject
{
    UIWindow *_window;
    UINavigationController *_navigationController;
    mSMSMessageListController *_messageListController;
    mSMSMessageTranscriptController *_messageTranscriptController;
    mSMSLinkViewController *_linkViewController;
    MailComposeController *_mailComposeController;
    ABPeoplePickerController *_peoplePickerController;
    BOOL _hasEmail;
    BOOL _restoringState;
    struct __CFArray *_queuedMessages;
    NSDictionary *_propsCache;
    id _navBarLeftButtonTarget;
    SEL _navBarLeftButtonAction;
    id _navBarRightButtonTarget;
    SEL _navBarRightButtonAction;
}

+ (id)sharedInstance;
- (struct CGRect)contentViewRect;
- (void)_init;
- (void)_displaySMSDatabaseFullWarning;
- (void)dealloc;
- (void)didPopViewController:(id)fp8;
- (id)messageListController;
- (id)messageTranscriptController;
- (id)existingMessageGroupForAddresses:(id)fp8;
- (void)showMessagesForAddress:(id)fp8 animate:(BOOL)fp12;
- (BOOL)resumeToMessageGroup:(id)fp8 unsentText:(id)fp12;
- (void)showMessageGroup:(id)fp8 animate:(BOOL)fp12;
- (void)showTranscriptList:(BOOL)fp8;
- (void)showURLListForMessage:(id)fp8;
- (void)showNewMessageCompositionPanel:(BOOL)fp8;
- (BOOL)_shouldPlaySounds;
- (void)_playMessageSent;
- (void)_playMessageRecieved;
- (void)compose:(id)fp8;
- (void)transitionFromNewMessageToConversation;
- (void)_processReceivedMessage:(struct __CTSMSMessage *)fp8 replace:(BOOL)fp12 isLastMessage:(BOOL)fp16 animate:(BOOL)fp20;
- (void)_receivedMessage:(struct __CTSMSMessage *)fp8 replace:(BOOL)fp12;
- (void)markMessageGroupAsRead:(id)fp8;
- (void)noteMessageGroupChanged:(id)fp8 animate:(BOOL)fp12;
- (void)receivedMessage:(struct __CTSMSMessage *)fp8;
- (void)receivedReplaceMessage:(struct __CTSMSMessage *)fp8;
- (void)_sentMessage:(struct __CTSMSMessage *)fp8;
- (void)sentMessage;
- (long)numberOfQueuedMessages;
- (void)dequeueMessages;
- (void)addReceivedMessageToQueue:(struct __CTSMSMessage *)fp8 replace:(BOOL)fp12;
- (void)displayAlertSheet:(id)fp8;
- (void)dismissAlertSheet:(id)fp8;
- (void)alertSheet:(id)fp8 buttonClicked:(int)fp12;
- (void)dismissPeoplePicker;
- (void)_presentPeoplePickerOverlayViewController;
- (void)showPeoplePickerWithDelegate:(id)fp8;
- (void)tearDownPeoplePicker;
- (void)peoplePickerDidEndPicking:(id)fp8;
- (void)peoplePicker:(id)fp8 editedPerson:(struct CPRecord *)fp12 property:(int)fp16 identifier:(int)fp20;
- (void)peoplePicker:(id)fp8 selectedPerson:(struct CPRecord *)fp12 property:(int)fp16 identifier:(int)fp20;
- (void)peoplePicker:(id)fp8 enteredOtherValue:(void *)fp12 forProperty:(int)fp16;
- (BOOL)peoplePicker:(id)fp8 shouldShowCardForPerson:(struct CPRecord *)fp12;
- (void)peoplePicker:(id)fp8 displayedMembersOfGroup:(struct CPRecord *)fp12;
- (void)peoplePickerDisplayedGroups:(id)fp8;
- (void)_updateUI;
- (void)_abUpdated:(id)fp8;
- (void)handleURL:(id)fp8;
- (BOOL)restoringState;
- (BOOL)_restoreState;
- (BOOL)showUnreadConversations;
- (BOOL)isShowingTranscriptWithUnsentText;
- (void)storeState:(id)fp8;
- (id)_abCardViewControllerForPerson:(struct CPRecord *)fp8 property:(int)fp12 withIdentifier:(int)fp16;
- (id)_unknownCardViewControllerForProps:(id)fp8;
- (id)_cardViewControllerForProps:(id)fp8;
- (void)_displayABCardViewController:(id)fp8;
- (void)showABCardForPerson:(struct CPRecord *)fp8 highlightedProperty:(int)fp12 identifier:(int)fp16;
- (void)showABCardForLinkProperties:(id)fp8;
- (void)cardViewer:(id)fp8 presentActionsSheet:(id)fp12;
- (void)cardViewer:(id)fp8 dismissActionsSheet:(id)fp12;
- (void)cardViewer:(id)fp8 presentActionsView:(id)fp12 withTitle:(id)fp16;
- (void)unknownPersonCardViewer:(id)fp8 presentPickingOverlay:(id)fp12;
- (void)unknownPersonCardViewer:(id)fp8 dismissPickingOverlay:(id)fp12;
- (void)unknownPersonCardViewer:(id)fp8 didResolveToPerson:(struct CPRecord *)fp12;
- (void)_showMailComposeSheet;
- (void)_showComposeEmailForAddress:(id)fp8;
- (void)mailComposeControllerCompositionFinished:(id)fp8;
- (void)_emailDeliveryFailed:(id)fp8;
- (void)_backgroundDeliverEmail:(id)fp8;
- (void)mailComposeController:(id)fp8 willUseMessageHeaders:(id)fp12;
- (void)mailComposeControllerContentsDidChange:(id)fp8;
- (BOOL)mailComposeControllerIsEditingDraft:(id)fp8;
- (void)mailComposeController:(id)fp8 loadedAttachments:(id)fp12;
- (void)showNewContactViewForNumber:(id)fp8;
- (void)_dismissNewContactView:(id)fp8;
- (void)newContactViewCancelled:(id)fp8;
- (void)newContactViewCompleted:(id)fp8 withNewPerson:(struct CPRecord *)fp12;
- (void)showAddToExistingContactViewForNumber:(id)fp8;

@end

@interface mSMSBubblizationAnimation : UIAnimation
{
}

- (void)setProgress:(float)fp8;

@end

@interface mSMSBalloonTextField : UITableCell
{
    id _delegate;
    int _orientation;
    float _bubbleAlpha;
    float _tightenedWidth;
    unsigned int _hasURLs:1;
    unsigned int _draws:1;
    unsigned int _forceTighten:1;
}

+ (struct CGSize)defaultSize;
+ (struct __GSFont *)defaultFont;
+ (float)heightForText:(id)fp8;
+ (struct CGContext *)sharedSizingContext;
- (id)initWithFrame:(struct CGRect)fp8;
- (void)setOrientation:(int)fp8;
- (void)animateToBubbleWithDuration:(float)fp8;
- (void)setBubbleAlpha:(float)fp8;
- (void)setText:(id)fp8;
- (void)setDraws:(BOOL)fp8;
- (id)text;
- (void)setFrame:(struct CGRect)fp8;
- (float)tightenedWidth;
- (void)setForceTighten:(BOOL)fp8;
- (void)tighten;
- (void)drawBalloonImage:(id)fp8 inRect:(struct CGRect)fp12;
- (struct CGRect)balloonBounds;
- (void)drawRect:(struct CGRect)fp8;
- (void)setDelegate:(id)fp8;
- (id)delegate;
- (BOOL)hasURLs;
- (unsigned int)becomeFirstResponder;
- (void)animator:(id)fp8 stopAnimation:(id)fp12;

@end

@interface mSMSSendingProgressLayer : UIView
{
    UIProgressBar *_progressLayer;
    NSString *_displayString;
    UIView *_partialFailurePane;
    id _delegate;
}

- (id)initWithSize:(struct CGSize)fp8;
- (void)dealloc;
- (void)showPartialFailurePane;
- (void)sendPushed;
- (void)cancelPushed;
- (void)hidePartialFailurePane;
- (void)setDelegate:(id)fp8;
- (void)setDisplayString:(id)fp8;
- (void)setProgress:(float)fp8;
- (void)drawRect:(struct CGRect)fp8;

@end

@interface WhiteOutlineButton : UIPushButton
{
}

- (struct CGColor *)currentTitleColor;
- (void)drawRect:(struct CGRect)fp8;

@end

@interface mSMSTimeStampLayer : UITableCell
{
    NSDate *_date;
}

- (id)initWithDate:(id)fp8;
- (void)dealloc;
- (void)drawRect:(struct CGRect)fp8;

@end

@interface mSMSMessageEntryView : UI9PartImageView
{
    SMSTextEntryView *_textField;
    UI9PartImageView *_balloonBGView;
    UIThreePartButton *_sendButton;
    struct CGRect _finalFrame;
    BOOL _isAnimating;
    struct CGColor *_disabledColor;
}

+ (float)defaultHeight;
+ (float)maximumHeight;
+ (float)verticalPaddingForTextView;
- (id)initWithDefaultSize;
- (void)dealloc;
- (void)send:(id)fp8;
- (id)textField;
- (void)enableSendButton;
- (struct CGColor *)_disabledColor;
- (void)disableSendButton;
- (void)mouseUp:(struct __GSEvent *)fp8;
- (struct CGRect)balloonFrame;
- (void)setIsAnimating:(BOOL)fp8;
- (void)setFinalFrame:(struct CGRect)fp8;
- (struct CGRect)finalFrame;

@end

@interface mSMSSendButtonView : UIThreePartButton
{
}

- (BOOL)pointInside:(struct CGPoint)fp8 forEvent:(struct __GSEvent *)fp16;
- (float)minTitleMargin;

@end

@interface mSMSMessageTranscriptController (testingAdditions)
- (void)setMessageText:(id)fp8;
- (id)transcriptLayer;
@end

@interface mSMSApplication (mSMSApplicationTesting)
- (BOOL)runTest:(id)fp8 options:(id)fp12;
- (void)finishedTest:(id)fp8 extraResults:(id)fp12;
- (void)failedTest:(id)fp8;
- (void)showTranscriptList;
- (void)didShowAMessage;
- (void)didShowTranscriptList;
- (void)didSendMessage;
- (void)showNextMessage;
- (void)startShowMessagesTest:(id)fp8;
- (void)startSendMessageTest:(id)fp8;
- (void)sendNextMessage;
- (void)startThrowTest:(id)fp8;
- (void)flickFinished:(id)fp8;
- (void)_scrollTranscriptTest:(id)fp8;
- (void)startScrollTranscriptTest:(id)fp8;
@end

@interface mSMS1PartImageView : UIView
{
}

- (id)initWithFrame:(struct CGRect)fp8 image:(id)fp24;

@end

@interface mSMSLinkViewController : UIViewController
{
    mSMSUIController *_uiController;
    NSArray *_linkProps;
    UIPreferencesTable *_table;
}

- (id)initWithUIController:(id)fp8;
- (void)dealloc;
- (void)setLinkProperties:(id)fp8;
- (id)view;
- (id)navigationTitle;
- (void)tableSelectionDidChange:(id)fp8;
- (int)numberOfGroupsInPreferencesTable:(id)fp8;
- (int)preferencesTable:(id)fp8 numberOfRowsInGroup:(int)fp12;
- (id)preferencesTable:(id)fp8 cellForRow:(int)fp12 inGroup:(int)fp16;

@end

@interface NSString (LinkProperties)
- (id)linkProperties;
@end

@interface SMSTextEntryView : UIView
{
    SMSTextView *_textView;
    id _delegate;
    BOOL _visible;
    BOOL _settingContent;
    float _minHeight;
    float _resizeDuration;
}

+ (struct CGSize)defaultSize;
- (id)initWithFrame:(struct CGRect)fp8;
- (void)mouseUp:(struct __GSEvent *)fp8;
- (BOOL)canBecomeFirstResponder;
- (BOOL)canResignFirstResponder;
- (unsigned int)becomeFirstResponder;
- (BOOL)isFirstResponder;
- (BOOL)resignFirstResponder;
- (void)smsTextViewWillBecomeFirstResponder:(id)fp8;
- (float)bottomBufferHeight;
- (void)setText:(id)fp8;
- (id)text;
- (void)setDelegate:(id)fp8;
- (id)delegate;
- (void)setDraws:(BOOL)fp8;
- (void)animator:(id)fp8 stopAnimation:(id)fp12;
- (BOOL)keyboardInputChanged:(id)fp8;
- (void)resizeToFit:(BOOL)fp8;
- (void)setResizeDuration:(float)fp8;
- (BOOL)textView:(id)fp8 shouldScrollForPendingContentSize:(struct CGSize)fp12;
- (id)keyboardInputOverlayContainer:(id)fp8;
- (int)keyboardInput:(id)fp8 positionForAutocorrection:(id)fp12;
- (void)saveCursorPosition;
- (void)restoreCursorPosition;

@end

@interface SMSTextView : UITextView
{
    BOOL _ignoresEnsureSelection;
    int _lastCursorLocation;
}

- (void)ensureSelection;
- (void)setText:(id)fp8;
- (void)mouseUp:(struct __GSEvent *)fp8;
- (void)_forceSetContentSize:(struct CGSize)fp8;
- (void)_setCursorLocation:(int)fp8;
- (int)_cursorLocation;
- (void)restoreCursorPosition;
- (id)initWithFrame:(struct CGRect)fp8;
- (unsigned int)becomeFirstResponder;
- (void)saveCursorPosition;

@end

@interface NSObject (SMSTextEntryViewDelegate)
- (void)smsTextEntryViewSizeChanged:(id)fp8 height:(float)fp12 animate:(BOOL)fp16;
- (id)smsTextEntryViewMessageEntryView:(id)fp8;
- (void)smsTextEntryViewTextChanged:(id)fp8;
- (void)smsTextEntryViewWillBecomeFirstResponder:(id)fp8;
- (struct CGRect)smsTextEntryViewFinalFrame:(id)fp8;
@end

@interface UITextView (ReachingIn)
- (id)_webView;
@end

@interface SMSRecipientSelectionView : UIView
{
    ComposeRecipientView *_toField;
    UIScroller *_toFieldScrollingView;
    UIView *_separator;
    NSMutableArray *_searchResults;
    UITable *_searchResultsTable;
    SearchShadowView *_shadowView;
    BOOL _showingSearchField;
    BOOL _justDismissedPeoplePicker;
    id _delegate;
}

- (id)firstRecipient;
- (id)recipients;
- (float)_maxHeight;
- (float)_properHeight;
- (void)setFrame:(struct CGRect)fp8;
- (void)_resetHeight;
- (void)dealloc;
- (id)initWithFrame:(struct CGRect)fp8;
- (void)reset;
- (id)toField;
- (void)setDelegate:(id)fp8;
- (void)_hideSearchField;
- (void)_showSearchField;
- (int)numberOfRowsInTable:(id)fp8;
- (id)table:(id)fp8 cellForRow:(int)fp12 column:(id)fp16 reusing:(id)fp20;
- (void)tableSelectionDidChange:(id)fp8;
- (void)appendSearchResults:(id)fp8 identifiers:(id)fp12 recipientClass:(Class)fp16;
- (void)searchWithText:(id)fp8;
- (void)composeRecipientView:(id)fp8 textDidChange:(id)fp12;
- (void)composeRecipientView:(id)fp8 requestDeleteRecipientAtIndex:(int)fp12;
- (void)composeRecipientViewDidFinishEnteringRecipient:(id)fp8;
- (void)composeRecipientView:(id)fp8 peoplePicker:(id)fp12 selectedRecord:(struct CPRecord *)fp16 withIdentifier:(int)fp20;
- (id)composeRecipientView:(id)fp8 composeRecipientForAddress:(id)fp12;
- (id)composeRecipientView:(id)fp8 composeRecipientForRecord:(struct CPRecord *)fp12 identifier:(int)fp16;
- (void)animationDidStop:(id)fp8;
- (void)composeRecipientView:(id)fp8 didChangeSize:(struct CGSize)fp12;
- (void)composeRecipientViewRequestAddRecipient:(id)fp8;
- (void)composeRecipientViewDidFinishPickingRecipient:(id)fp8;
- (BOOL)justDismissedPeoplePicker;

@end

@interface ComposeRecipientView (ReachingIn)
- (id)addButton;
@end

@interface SMSTranscriptTopCell : UIView
{
    id _delegate;
    NSMutableArray *_buttonViews;
}

+ (float)defaultHeight;
- (void)dealloc;
- (void)_addButtonWithTitle:(id)fp8 frame:(struct CGRect)fp12;
- (void)setFirstButton:(id)fp8 secondButton:(id)fp12;
- (void)setDelegate:(id)fp8;
- (id)buttonViews;
- (void)_buttonClicked:(id)fp8;

@end

@interface AlwaysHighlightingPlacardButton : UIPlacardButton
{
}

- (BOOL)_alwaysHandleScrollerMouseEvent;

@end

@interface mSMSBalloonSimpleTextField : mSMSBalloonTextField
{
    NSString *_text;
}

+ (float)heightForText:(id)fp8;
- (id)text;
- (void)setText:(id)fp8;
- (void)dealloc;
- (void)drawRect:(struct CGRect)fp8;

@end

@interface mSMSBalloonWebTextField : mSMSBalloonTextField
{
    UIWebView *_webLayer;
    DOMHTMLElement *_textElement;
}

+ (float)heightForText:(id)fp8;
- (id)initWithFrame:(struct CGRect)fp8;
- (void)dealloc;
- (void)setOrientation:(int)fp8;
- (void)setText:(id)fp8;
- (void)setDraws:(BOOL)fp8;
- (id)text;
- (void)setNeedsDisplay;
- (void)tighten;
- (void)cancelInteraction;
- (void)webViewDidChange:(id)fp8;

@end

@interface SMSMessageDelivery : NSObject
{
    id _delegate;
    NSString *_text;
    int _group;
    int _associationID;
    SMSMessage *_message;
    unsigned int _isSending:1;
}

- (id)init;
- (void)dealloc;
- (void)setDelegate:(id)fp8;
- (float)progress;
- (BOOL)isSending;
- (void)_finishedSendingMessages;
- (void)_notifyDelegatesOfMessageDelivery:(struct __CTSMSMessage *)fp8 success:(BOOL)fp12;
- (void)_sentMessage:(struct __CTSMSMessage *)fp8;
- (void)_errorSendingMessage:(struct __CTSMSMessage *)fp8;
- (void)populateWithDeliveringMessage:(id)fp8;
- (void)deliverText:(id)fp8 recipients:(id)fp12 group:(int)fp16 replyTo:(id)fp20;
- (void)sendOutboundMessage:(struct __CTSMSMessage *)fp8;
- (void)redeliverPartiallyFailedMessage:(id)fp8;
- (void)_deliverText:(id)fp8 recipient:(struct CPRecord *)fp12 replyTo:(id)fp16;
- (CDAnonymousStruct1)_sendMessage:(struct __CTSMSMessage *)fp8;
- (void)_fakeSendMessage:(struct __CTSMSMessage *)fp8 afterDelay:(double)fp12;

@end

@interface NSString (SMSPhoneNumberNormalization)
- (id)unformattedPhoneNumber;
@end

@interface LabelledAtomList : UIView
{
    NSMutableArray *_addresses;
    UITextLabel *_toLabel;
    UITextLabel *_inactiveModeLabel;
    UITextLabel *_detailsLabel;
    UITextLabel *_hideDetailsLabel;
    id _delegate;
    unsigned int _expanded:1;
    unsigned int _inReflow:1;
}

- (id)initWithLabel:(id)fp8 width:(float)fp12 addresses:(id)fp16;
- (void)dealloc;
- (void)setDelegate:(id)fp8;
- (id)label;
- (BOOL)isExpanded;
- (void)setExpanded:(BOOL)fp8 animate:(BOOL)fp12;
- (void)_reflowWithAnimation:(BOOL)fp8;
- (void)_setViewHeight:(float)fp8 animate:(BOOL)fp12;
- (float)_heightAfterReflowingForAtom:(id)fp8;
- (void)reflowForAtom:(id)fp8;
- (void)setAddressAtomTarget:(id)fp8 action:(SEL)fp12;
- (id)_inactiveModeText;

@end

@interface AddressAtom : UIControl
{
    struct {
        struct CGRect left;
        struct CGRect middle;
        struct CGRect right;
    } _atomImageSlices;
    SlicedImageView *_leftCap;
    SlicedImageView *_rightCap;
    SlicedImageView *_center;
    UITextLabel *_addressLabel;
    NSString *_fullAddress;
    struct CPRecord *_person;
    NSString *_displayString;
    struct CGPoint _displayStringOrigin;
    unsigned int _maxWidth;
    int _identifier;
    unsigned int _needsToSendMouseUpEvents:1;
    unsigned int _dragging:1;
    unsigned int _updatedABPerson:1;
}

+ (void)initialize;
- (void)_registerForNotifications;
- (void)_unregisterForNotifications;
- (id)initWithAddress:(id)fp8 maxWidth:(float)fp12 useAddressBookDisplayString:(BOOL)fp16;
- (void)setMaxWidth:(float)fp8;
- (void)mouseUp:(struct __GSEvent *)fp8;
- (void)mouseDragged:(struct __GSEvent *)fp8;
- (void)sendAction:(SEL)fp8 toTarget:(id)fp12 forEvent:(struct __GSEvent *)fp16;
- (void)dealloc;
- (void)setFrame:(struct CGRect)fp8;
- (void)autoResizeWithOrigin:(struct CGPoint)fp8;
- (void)autoResize;
- (void)_updateABPerson;
- (void)_updateDisplayString;
- (void)_updateDisplayStringIncludingABPerson:(BOOL)fp8;
- (struct CPRecord *)ABPerson;
- (id)displayString;
- (int)identifier;
- (id)unmodifiedAddressString;
- (void)setHighlighted:(BOOL)fp8;
- (BOOL)_alwaysHandleScrollerMouseEvent;

@end

@interface SlicedImageView : UIView
{
    UIImage *_image;
    UIImage *_imagePressed;
    struct CGRect _imageSlice;
    unsigned int _isPressed:1;
}

- (id)initWithFrame:(struct CGRect)fp8 image:(id)fp24 pressed:(id)fp28 slice:(struct CGRect)fp32;
- (void)dealloc;
- (void)drawRect:(struct CGRect)fp8;
- (void)setPressed:(BOOL)fp8;

@end

@interface SMSMessage : NSObject
{
    NSMutableArray *_messages;
    int _associationID;
    int _groupID;
}

- (id)init;
- (id)initWithMessage:(struct __CTSMSMessage *)fp8;
- (id)initWithMessages:(id)fp8;
- (BOOL)isEqual:(id)fp8;
- (void)dealloc;
- (void)addMessage:(struct __CTSMSMessage *)fp8;
- (int)associationID;
- (int)groupID;
- (id)messages;
- (id)date;
- (void)markAsRead;
- (void)permanentlyRemoveMessage;
- (BOOL)isOutgoing;
- (id)textCopy;
- (unsigned long)height;
- (void)setUIHeight:(unsigned long)fp8 flags:(unsigned long)fp12;
- (void)getUIHeight:(unsigned int *)fp8 flags:(unsigned int *)fp12;
- (int)pendingCount;
- (BOOL)pending;
- (BOOL)failedSend;
- (BOOL)partiallyFailedSend;
- (int)sentCount;
- (BOOL)hasBeenSent;
- (BOOL)hasBeenRead;
- (BOOL)isPlaceholder;
- (int)failedSendCount;
- (BOOL)completelyFailedSend;

@end

@interface SMSMessageAddress : NSObject
{
    struct CPRecord *_address;
    int _hash;
    BOOL _hashComputed;
}

+ (id)addressessForCTMessageAddresses:(id)fp8;
- (id)initWithCTMessageAddress:(struct CPRecord *)fp8;
- (void)dealloc;
- (id)phoneNumber;
- (unsigned int)hash;
- (BOOL)isEqual:(id)fp8;

@end

