@class CNContactListStyleApplier, CNAvatarViewController, CNContactListActionHelper, NSIndexPath, CNContactFormatter, CNUIContactsEnvironment, NSString, NSArray, NSObject, NSSet, UIView, CNDuplicateContactsController, CNContactListBannerView, UISearchBar, CNContact, UISearchController, CNContactSuggestionsViewController, UIContentUnavailableConfiguration, CNContactStore, CNVCardImportController; @protocol CNHealthStoreManagerToken, CNContactListViewControllerDelegate, CNContactDataSource, CNCancelable; @interface CNContactListViewController : UICollectionViewController { CNContact *_preferredForNameMeContact; } @property (retain, nonatomic) UISearchController *searchController; @property (retain, nonatomic) UISearchBar *searchBar; @property (copy, nonatomic) id /* block */ searchCompletionBlock; @property (retain, nonatomic) CNContactSuggestionsViewController *suggestionsController; @property (nonatomic) double suggestionsControllerHeight; @property (retain, nonatomic) CNContactListBannerView *meContactBanner; @property (readonly, nonatomic) CNContact *preferredForNameMeContact; @property (readonly, nonatomic) double contentOffsetDueToMeContactBanner; @property (readonly, nonatomic) BOOL presentsSearchUI; @property (readonly, nonatomic) BOOL isSearchController; @property (readonly, nonatomic) CNUIContactsEnvironment *environment; @property (retain, nonatomic) CNAvatarViewController *meBannerAvatarController; @property (retain, nonatomic) NSArray *pendingLayoutBlocks; @property (retain, nonatomic) NSString *pendingSearchQuery; @property (nonatomic) BOOL pendingSearchControllerActivation; @property (retain, nonatomic) CNVCardImportController *vCardImportController; @property (readonly, nonatomic) BOOL shouldUseLargeTitle; @property (nonatomic) BOOL headerViewNeedsUpdate; @property (retain, nonatomic) NSSet *emergencyContactIdentifiers; @property (retain, nonatomic) id medicalIDLookupRegistrationToken; @property (retain, nonatomic) id medicalIDLookupToken; @property (retain, nonatomic) CNContactListStyleApplier *defaultContactListStyleApplier; @property (nonatomic) BOOL allowsMultiSelection; @property (retain, nonatomic) NSIndexPath *indexPathToSelect; @property (retain, nonatomic) CNContactListActionHelper *actionHelper; @property (retain, nonatomic) CNDuplicateContactsController *duplicatesController; @property (nonatomic) BOOL isDuplicatesLaunching; @property (nonatomic) BOOL isViewingTopLevelAllContacts; @property (nonatomic) BOOL isShowingDuplicatesBanner; @property (retain, nonatomic) UIContentUnavailableConfiguration *cellContentUnavailableConfiguration; @property (retain, nonatomic) CNContactListViewController *searchResultsController; @property (nonatomic) BOOL isHandlingSearch; @property (nonatomic) BOOL shouldDisplayGroupsGrid; @property (nonatomic) BOOL shouldDisplayCount; @property (nonatomic) BOOL shouldAllowDrags; @property (nonatomic) BOOL shouldAllowDrops; @property (nonatomic) BOOL shouldDisplayEmergencyContacts; @property (retain, nonatomic) CNContactListStyleApplier *contactListStyleApplier; @property (readonly, nonatomic) id originalDataSource; @property (readonly, nonatomic) CNContactStore *contactStore; @property (readonly, nonatomic) NSString *currentSearchString; @property (nonatomic) BOOL shouldAllowSearchForMultiSelect; @property (nonatomic) BOOL didDeleteContact; @property (nonatomic) BOOL shouldDisplaySuggestionsController; @property (retain, nonatomic) NSArray *suggestionsIgnoredContactIdentifiers; @property (retain, nonatomic) NSArray *suggestionsInteractionDomains; @property (retain, nonatomic) NSArray *suggestedContacts; @property (retain, nonatomic) UIView *listHeaderView; @property (nonatomic) double estimatedListHeaderViewHeight; @property (nonatomic) BOOL allowsMultiSelectContextMenus; @property (nonatomic) BOOL allowsEditingActions; @property (nonatomic) BOOL allowsListEditing; @property (nonatomic) BOOL shouldDisplayAddNewContactRow; @property (nonatomic) BOOL shouldHideDuplicates; @property (weak, nonatomic) id delegate; @property (retain, nonatomic) NSObject *dataSource; @property (readonly, nonatomic) CNContactListViewController *visibleListViewController; @property (nonatomic) BOOL shouldDisplayMeContactBanner; @property (copy, nonatomic) NSString *meContactBannerFootnoteLabel; @property (copy, nonatomic) NSString *meContactBannerFootnoteValue; @property (readonly, nonatomic, getter=isSearching) BOOL searching; @property (readonly, nonatomic) NSArray *selectedContacts; @property (retain, nonatomic) CNContactFormatter *contactFormatter; @property (nonatomic) BOOL disableContextMenus; @property (readonly) unsigned long long hash; @property (readonly) Class superclass; @property (readonly, copy) NSString *description; @property (readonly, copy) NSString *debugDescription; + (id)collectionViewLayout; + (id)collectionViewLayoutWithFloatingHeaderViews:(BOOL)a0 contactListStyleApplier:(id)a1 trailingSwipeActionsProvider:(id /* block */)a2 shouldDisplaySupplementaryHeaderItemForSection:(id /* block */)a3 shouldShowSeparatorsForSection:(id /* block */)a4 directionalLayoutMargins:(id /* block */)a5 collectionViewIsShowingIndexBar:(id /* block */)a6 numberOfItemsInSection:(id /* block */)a7 contentUnavailable:(id /* block */)a8; + (id)descriptorForRequiredKeysForPreferredForNameMeContact; + (id)emptyContact; + (id)layoutSectionForLayoutConfiguration:(id)a0 layoutEnvironment:(id)a1 section:(long long)a2 contactListStyleApplier:(id)a3 shouldDisplaySupplementaryHeaderItemForSection:(id /* block */)a4 headerViewsFloat:(BOOL)a5 directionalLayoutMargins:(id /* block */)a6 collectionViewIsShowingIndexBar:(id /* block */)a7 contentUnavailable:(id /* block */)a8; - (id)getVisibleIndexPaths; - (void)tipKitDismissTip; - (void)searchBarCancelButtonClicked:(id)a0; - (void)contactDataSourceMeContactDidChange:(id)a0; - (id)pathToContentUnavailableRow; - (void)updateMeContactBannerContentsWithTopKeyline:(BOOL)a0; - (void)collectionView:(id)a0 didDeselectItemAtIndexPath:(id)a1; - (void)updateIsViewingTopLevelAllContacts; - (void)scrollToTopAnimated:(BOOL)a0; - (void)setupMeBannerAvatarController; - (void)collectionView:(id)a0 didSelectItemAtIndexPath:(id)a1; - (void)initializeDuplicateContacts; - (void)viewWillAppear:(BOOL)a0; - (BOOL)suggestionsController:(id)a0 shouldSelectContact:(id)a1 atIndexPath:(id)a2; - (void)_applicationEnteringForeground:(id)a0; - (void)dealloc; - (BOOL)isPathToContentUnavailableRow:(id)a0; - (void)willDismissSearchController:(id)a0; - (void)suggestionsController:(id)a0 didChangeToHeight:(double)a1; - (BOOL)hasSearchPrefix; - (void)contactDataSourceDisplayNameDidChange:(id)a0; - (BOOL)collectionView:(id)a0 canEditItemAtIndexPath:(id)a1; - (long long)dataSourceSectionIndexForCollectionViewSection:(long long)a0; - (void)tipKitStartObservation; - (void)startSearchingForString:(id)a0; - (void)viewDidLayoutSubviews; - (void)updateDataSourceAndCollectionViewForDuplicatesBanner; - (id)collectionView:(id)a0 indexPathForIndexTitle:(id)a1 atIndex:(long long)a2; - (void)deleteContact:(id)a0; - (void)didUpdateContentForAvatarViewController:(id)a0; - (id)_contentUnavailableConfigurationState; - (void)dismissKeyboard; - (long long)newDuplicatesCountToDisplay; - (void)performWhenViewIsLaidOut:(id /* block */)a0; - (BOOL)collectionViewIsShowingIndexBar; - (BOOL)collectionView:(id)a0 canHandleDropSession:(id)a1; - (long long)allDuplicatesCountToDisplay; - (BOOL)collectionView:(id)a0 canPerformPrimaryActionForItemAtIndexPath:(id)a1; - (void)collectionView:(id)a0 performDropWithCoordinator:(id)a1; - (BOOL)shouldEnableMultiSelectContextMenus; - (void)contentSizeCategoryDidChange:(id)a0; - (void)reloadVisibleItems; - (BOOL)isContentUnavailableRowSection:(long long)a0; - (void)performWhenSearchCompleted:(id /* block */)a0; - (void)vCardImportController:(id)a0 didSaveContacts:(id)a1; - (void)didDismissSearchController:(id)a0; - (void)reloadTitle; - (void)viewDidLoad; - (BOOL)collectionView:(id)a0 shouldHighlightItemAtIndexPath:(id)a1; - (void)refreshTableViewHeaderForContactChanges; - (BOOL)shouldDisplayTipContentView; - (void)updateSelectedContactCount; - (id)initWithDataSource:(id)a0 searchable:(BOOL)a1 environment:(id)a2 shouldUseLargeTitle:(BOOL)a3; - (void)copy:(id)a0; - (id)getRecentCallCountAndSpeakableName; - (id)collectionView:(id)a0 contextMenuConfigurationForItemsAtIndexPaths:(id)a1 point:(struct CGPoint { double x0; double x1; })a2; - (void)beginSearch:(id)a0; - (void)mergeUnifyContacts:(id)a0; - (BOOL)isDisplayingContentUnavailableViewAsCell; - (void)startSearching; - (void)setNeedsHeaderViewUpdate; - (BOOL)collectionViewShouldDisplayCreateNewContact; - (long long)additionalSectionsAtTopCount; - (void)updateAdditionalSectionsAtTop; - (void)addContactsToListTappedWithSourceView:(id)a0; - (void)setTipKitContext:(id)a0; - (void)contactDataSourceDidChange:(id)a0; - (id)presentingViewControllerForActions; - (id)indexPathForGlobalIndex:(long long)a0; - (long long)createNewContactRowSection; - (void)duplicatesBannerCellDidTapViewDuplicates:(id)a0; - (BOOL)bundleCanManageDuplicates; - (void)configureNavigationBarForLargeTitles; - (void)createNewContactTapped; - (void)searchForString:(id)a0 animated:(BOOL)a1 completionBlock:(id /* block */)a2; - (void)willPerformDuplicatesMergeAll:(id)a0; - (id)contactsForActionsAtIndexPaths:(id)a0; - (void)loadView; - (void)refreshTableViewHeaderIfVisible; - (id)mergableContacts; - (void)duplicatesDidChange:(id)a0; - (void)refreshDuplicates; - (BOOL)shouldShowDuplicateBannerView; - (id)collectionView:(id)a0 dropSessionDidUpdate:(id)a1 withDestinationIndexPath:(id)a2; - (id)recentOutgoingCalls; - (BOOL)suggestionsController:(id)a0 canSelectContact:(id)a1; - (BOOL)isEasyToRecognizeWord:(id)a0; - (void)refreshTableViewHeader; - (void)removeDuplicatesBanner; - (void)contactStoreDidChangeWithNotification:(id)a0; - (long long)contentUnavailableRowSection; - (id)setupDuplicatesController; - (BOOL)isContactWithIdentifierEmergencyContact:(id)a0; - (void)refreshDuplicatesBanner; - (void)collectionView:(id)a0 willPerformPreviewActionForMenuWithConfiguration:(id)a1 animator:(id)a2; - (void)duplicatesBannerCellDidTapDismiss:(id)a0; - (id)_sections; - (BOOL)containsPathToDuplicatesBanner:(id)a0; - (double)contactListHeaderHeight; - (void)updateMeContactBannerTopKeyline; - (id)collectionViewIndexPathForDataSourceIndexPath:(id)a0; - (BOOL)isPathToCreateNewContactRow:(id)a0; - (void)collectionView:(id)a0 willDisplayContextMenuWithConfiguration:(id)a1 animator:(id)a2; - (BOOL)isDuplicatesRowSection:(long long)a0; - (id)duplicatesBannerCell; - (void)setupContactListForMultiSelectContextMenus; - (void)showCardForSelectedContactAtIndexPath:(id)a0; - (void)viewWillDisappear:(BOOL)a0; - (void)pasteContacts:(id)a0; - (BOOL)canSelectContactAtIndexPath:(id)a0; - (id /* block */)trailingSwipeActionsConfigurationProvider; - (void)selectNextContact:(id)a0; - (id)contentUnavailableConfigurationForState:(id)a0; - (BOOL)shouldDisplayListHeaderView; - (void)reloadContacts; - (id)pathToCreateNewContactRow; - (id)contactForActionsAtIndexPath:(id)a0 forMultiSelectAction:(BOOL)a1; - (void)deselectAllSelectedIndexPathsAnimated:(BOOL)a0; - (void)collectionView:(id)a0 didEndDisplayingCell:(id)a1 forItemAtIndexPath:(id)a2; - (id)filteredSearchString; - (void)actionDidFinish:(id)a0; - (long long)numberOfSections; - (void)observeValueForKeyPath:(id)a0 ofObject:(id)a1 change:(id)a2 context:(void *)a3; - (BOOL)shouldDisplaySupplementaryHeaderItemForSection:(long long)a0; - (void)applyStyle; - (void)updateSearchResultsForSearchController:(id)a0; - (BOOL)canBecomeFirstResponder; - (id)initWithDataSource:(id)a0 environment:(id)a1 shouldUseLargeTitle:(BOOL)a2; - (void)_contactCountTelemetry:(unsigned long long)a0; - (void).cxx_destruct; - (id)contextMenuConfigurationForContactsAtIndexPaths:(id)a0; - (BOOL)validateSiriEnabled; - (id)dragItemsForIndexPath:(id)a0; - (BOOL)canManageDuplicateContacts; - (void)collectionView:(id)a0 willEndContextMenuInteractionWithConfiguration:(id)a1 animator:(id)a2; - (void)_searchBarDidEndEditing:(id)a0; - (id)pathToDuplicatesBanner; - (void)deselectAllItemsExceptIndexPath:(id)a0; - (BOOL)canPerformDuplicatesMerge; - (BOOL)collectionView:(id)a0 shouldBeginMultipleSelectionInteractionAtIndexPath:(id)a1; - (id)contextMenuInteraction; - (void)updateDuplicatesCountBanner; - (void)willPresentSearchController:(id)a0; - (BOOL)collectionView:(id)a0 shouldSelectItemAtIndexPath:(id)a1; - (id)collectionView:(id)a0 itemsForAddingToDragSession:(id)a1 atIndexPath:(id)a2 point:(struct CGPoint { double x0; double x1; })a3; - (BOOL)selectContact:(id)a0 animated:(BOOL)a1 scrollPosition:(unsigned long long)a2 shouldScroll:(BOOL)a3; - (void)collectionView:(id)a0 performPrimaryActionForItemAtIndexPath:(id)a1; - (BOOL)isValidIndexPath:(id)a0; - (void)fetchDuplicatesCountWithCompletionBlock:(id /* block */)a0; - (id)dataSourceIndexPathForCollectionViewIndexPath:(id)a0; - (void)tipKitStopObservation; - (void)refreshTableViewHeaderWithSize:(struct CGSize { double x0; double x1; })a0; - (double)contentUnavailableCellHeight; - (void)adjustTableViewOffsetForIncomingSearchUI; - (void)viewDidAppear:(BOOL)a0; - (id)tipKitContentView; - (BOOL)containsPathToContentUnavailableRow:(id)a0; - (BOOL)isPerformingDuplicatesMerge; - (void)reconfigureVisibleItems; - (void)copyContacts:(id)a0; - (void)startHandlingEmergencyContacts; - (void)listActionHelper:(id)a0 didUpdateWithMenu:(id)a1; - (BOOL)isShowingServerSearch; - (long long)collectionView:(id)a0 numberOfItemsInSection:(long long)a1; - (id)initWithDataSource:(id)a0 shouldUseLargeTitle:(BOOL)a1; - (void)setupVCardImportController; - (void)scrollToItemAtIndexPath:(id)a0 animated:(BOOL)a1 scrollPosition:(unsigned long long)a2; - (long long)numberOfSectionsInCollectionView:(id)a0; - (void)viewWillTransitionToSize:(struct CGSize { double x0; double x1; })a0 withTransitionCoordinator:(id)a1; - (void)updateDuplicatesBannerForProcessingState; - (BOOL)selectContact:(id)a0 animated:(BOOL)a1 scrollPosition:(unsigned long long)a2; - (void)_updateContentUnavailableConfigurationUsingState:(id)a0; - (BOOL)showingGroup; - (void)disableSearchUI; - (void)vCardImportController:(id)a0 presentViewController:(id)a1 animated:(BOOL)a2; - (void)setCellStateSelected:(BOOL)a0 forContact:(id)a1 animated:(BOOL)a2; - (id)_contactAtCollectionViewIndexPath:(id)a0; - (void)suggestionsController:(id)a0 didDeselectContact:(id)a1; - (unsigned long long)globalIndexForCollectionViewIndexPath:(id)a0; - (void)refreshTableViewHeaderIfVisibleWithSize:(struct CGSize { double x0; double x1; })a0; - (void)_updateCountStringNow:(BOOL)a0; - (BOOL)canSelectContactAtCollectionViewIndexPath:(id)a0; - (id)_contactAtIndexPath:(id)a0; - (id)initWithCollectionViewLayout:(id)a0; - (BOOL)isPathToDuplicatesBanner:(id)a0; - (void)setTipView:(id)a0; - (id)indexTitlesForCollectionView:(id)a0; - (BOOL)hasNoContacts; - (id)contactProvidersOnPasteboard; - (void)setupForMultiSelection; - (void)selectItemAtIndexPath:(id)a0 animated:(BOOL)a1 scrollPosition:(unsigned long long)a2; - (BOOL)containsPathToCreateNewContactRow:(id)a0; - (id)ignoredContactIdentifiersForSuggestionsController:(id)a0; - (void)cancelSearch:(id)a0; - (BOOL)shouldDisplayCreateNewContactAsRow; - (void)scrollTopToContactWithIdentifier:(id)a0 animated:(BOOL)a1; - (void)willMoveToParentViewController:(id)a0; - (BOOL)shouldEmbedContentUnavailableViewInCell; - (id)collectionView:(id)a0 viewForSupplementaryElementOfKind:(id)a1 atIndexPath:(id)a2; - (id)collectionView:(id)a0 cellForItemAtIndexPath:(id)a1; - (id)createCollectionView; - (BOOL)isShowingAllContacts; - (BOOL)isContactWithIdentifierMeContactOrLinkedToMeContact:(id)a0; - (void)didPresentSearchController:(id)a0; - (void)suggestionsController:(id)a0 didSelectContact:(id)a1; - (id)titleForHeaderInSection:(long long)a0; - (id)collectionView:(id)a0 itemsForBeginningDragSession:(id)a1 atIndexPath:(id)a2; - (void)didSelectViewAllDuplicates; - (id)hostingViewControllerForController:(id)a0; - (BOOL)isCreateNewContactRowSection:(long long)a0; - (void)vCardImportControllerDidCompleteQueue:(id)a0; - (BOOL)collectionView:(id)a0 shouldDeselectItemAtIndexPath:(id)a1; - (BOOL)canPerformAction:(SEL)a0 withSender:(id)a1; - (BOOL)validateSiriLanguage; - (void)bannerView:(id)a0 wasSelectedToPresentMeContact:(id)a1; - (void)action:(id)a0 presentViewController:(id)a1; - (void)selectPreviousContact:(id)a0; - (void)didPerformDuplicatesMerge:(id)a0; @end