@class SBIcon, NSTimer, NSString, NSHashTable, NSSet, NSOrderedSet, NSDictionary, SBSHomeScreenService, SBRootFolder, NSMutableDictionary, NSMutableSet; @protocol SBHIconModelDelegate, SBIconModelStore, SBHIconModelApplicationDataSource, BSInvalidatable; @interface SBHIconModel : NSObject <SBFolderObserver, SBIconObserver, SBHIconModelApplicationDataSourceObserver, SBSHomeScreenServiceInstalledWebClipsObserver, SBIconDelegate, SBHIconStateUnarchiverIconSource, SBHIconStateUnarchiverDelegate, BSDescriptionProviding> { NSMutableDictionary *_leafIconsByIdentifier; NSMutableDictionary *_widgetIconsByIdentifier; NSMutableDictionary *_applicationIconsByBundleIdentifier; NSMutableSet *_additionalApplicationIconIdentifiers; NSHashTable *_folders; NSMutableSet *_autosaveDisableAssertions; NSMutableSet *_removedIcons; struct __CFRunLoopObserver { } *_iconRunLoopObserver; struct __CFRunLoopObserver { } *_discardCachedOtherRootFoldersRunLoopObserver; BOOL _tagsHaveBeenSet; } @property (class, readonly, nonatomic) Class applicationIconClass; @property (copy, nonatomic) NSSet *archivedLeafIdentifiers; @property (copy, nonatomic) NSDictionary *desiredIconState; @property (copy, nonatomic) NSOrderedSet *desiredIconStateFlattened; @property (retain, nonatomic) SBRootFolder *cachedDesiredRootFolder; @property (retain, nonatomic) SBRootFolder *cachedDefaultRootFolder; @property (nonatomic, getter=isLayingOut) BOOL layingOut; @property (nonatomic, getter=isCheckingModelConsistency) BOOL checkingModelConsistency; @property (retain, nonatomic) SBIcon *rootFolderIcon; @property (nonatomic, getter=isIconStateDirty) BOOL iconStateDirty; @property (retain, nonatomic) NSTimer *autosaveTimer; @property (readonly, nonatomic) SBSHomeScreenService *homeScreenService; @property (retain, nonatomic) id<BSInvalidatable> installedWebClipsObservation; @property (nonatomic) long long lastLayoutStatus; @property (nonatomic) unsigned long long rootFolderAllowedGridSizeClasses; @property (retain, nonatomic) id<SBIconModelStore> store; @property (readonly, nonatomic) id<SBHIconModelApplicationDataSource> applicationDataSource; @property (weak, nonatomic) id<SBHIconModelDelegate> delegate; @property (readonly, nonatomic) SBRootFolder *rootFolder; @property (readonly, nonatomic) unsigned long long maxListCountForFolders; @property (readonly, nonatomic) unsigned long long maxIconCountForDock; @property (readonly, nonatomic) unsigned long long maxColumnCountForTodayList; @property (readonly, nonatomic) unsigned long long maxRowCountForFavoriteTodayList; @property (readonly, nonatomic) struct SBHIconGridSizeClassSizes { struct SBHIconGridSize { unsigned short x0; unsigned short x1; } x0; struct SBHIconGridSize { unsigned short x0; unsigned short x1; } x1; struct SBHIconGridSize { unsigned short x0; unsigned short x1; } x2; struct SBHIconGridSize { unsigned short x0; unsigned short x1; } x3; struct SBHIconGridSize { unsigned short x0; unsigned short x1; } x4; } gridSizeClassSizes; @property (readonly, nonatomic) unsigned long long listRotatedLayoutClusterGridSizeClass; @property (readonly, copy, nonatomic) NSSet *visibleIconIdentifiers; @property (readonly, copy, nonatomic) NSSet *hiddenIconTags; @property (readonly, copy, nonatomic) NSSet *visibleIconTags; @property (readonly, copy, nonatomic) NSSet *leafIcons; @property (readonly, copy, nonatomic) NSSet *visibleLeafIcons; @property (readonly, copy, nonatomic) NSSet *leafIconsUniquedByApplicationBundleIdentifier; @property (nonatomic) BOOL automaticallyAddsApplications; @property (nonatomic) BOOL automaticallyAddsWebClips; @property (readonly, copy, nonatomic) NSSet *currentLeafIdentifiers; @property (readonly, copy, nonatomic) NSSet *leafIconIdentifiers; @property (nonatomic) BOOL ignoresIconsNotInIconState; @property (nonatomic) BOOL sortsIconsAlphabetically; @property (readonly, nonatomic) BOOL hasDesiredIconState; @property (readonly, copy, nonatomic) NSSet *missingDesiredIconIdentifiers; @property (readonly, copy, nonatomic) NSDictionary *defaultIconState; @property (nonatomic, getter=isRestoring) BOOL restoring; @property (readonly, copy, nonatomic) NSString *localizedDefaultFolderName; @property (readonly, copy, nonatomic) NSString *unlocalizedDefaultFolderName; @property (nonatomic) BOOL automaticallyAddsApplicationPlaceholders; @property (retain, nonatomic) id<SBIconModelStore> todayListsStore; @property (nonatomic) BOOL postsDidAddIconNotification; @property (readonly) unsigned long long hash; @property (readonly) Class superclass; @property (readonly, copy) NSString *description; @property (readonly, copy) NSString *debugDescription; + (id)currentLocaleDidChangeNotificationName; + (Class)bookmarkIconClass; + (id)migratedIdentifierForLeafIdentifier:(id)a0; + (Class)iconClassForApplicationWithBundleIdentifier:(id)a0; + (Class)bookmarkClass; + (id)allWebClips; + (id)defaultApplicationDataSource; - (id)iconState; - (void)removeIcon:(id)a0; - (void)removeAllIcons; - (void)folderIconStateDidDirty:(id)a0; - (unsigned long long)allowedGridSizeClassesForTodayList; - (struct SBHIconGridSize { unsigned short x0; unsigned short x1; })listWithNonDefaultSizedIconsGridSizeForFolderClass:(Class)a0; - (unsigned long long)allowedGridSizeClassesForDock; - (void)removeIcons:(id)a0; - (id)modernizeRootArchive:(id)a0; - (BOOL)shouldPlaceIconOnIgnoredList:(id)a0; - (void)importIconState:(id)a0; - (void)markIconStateClean; - (void)addIconsOfClass:(Class)a0 toSet:(id)a1; - (void)icon:(id)a0 launchFromLocation:(id)a1 context:(id)a2; - (void)localeChanged; - (id)localizedFolderNameForDefaultDisplayName:(id)a0; - (void)addIcon:(id)a0; - (long long)listsFixedIconLocationBehaviorForFolderClass:(Class)a0; - (id)addApplicationPlaceholder:(id)a0; - (struct SBHIconGridSize { unsigned short x0; unsigned short x1; })listGridSizeForFolderClass:(Class)a0; - (void)folder:(id)a0 willAddIcon:(id)a1; - (void)markIconStateDirty; - (id)iconsOfClass:(Class)a0; - (BOOL)listsAllowRotatedLayoutForFolderClass:(Class)a0; - (void)layoutIfNeeded; - (id)init; - (unsigned long long)maxListCountForFoldersForIconStateUnarchiver:(id)a0; - (id)applicationWithBundleIdentifier:(id)a0; - (id)widgetIcons; - (unsigned long long)maxColumnCountForListInRootFolderWithInterfaceOrientation:(long long)a0; - (id)leafIconsForIdentifiers:(id)a0 notFoundMarker:(id)a1; - (void)dealloc; - (unsigned long long)listRotatedLayoutClusterGridSizeClassForIconStateUnarchiver:(id)a0; - (void)_rootFolder:(id)a0 moveIconsToFirstPage:(id)a1 placeBumpedIconsSomewhereNice:(id)a2; - (void)iconModelApplicationDataSource:(id)a0 applicationsRemoved:(id)a1; - (void)_noteApplicationIconImageChanged:(id)a0; - (void)iconArchivableStateDidChange:(id)a0; - (unsigned long long)maxIconCountForDockForIconStateUnarchiver:(id)a0; - (id)expectedIconForDisplayIdentifier:(id)a0 createIfNecessary:(BOOL)a1; - (id)_adjustedDesiredIndexPathInRootFolder:(id)a0 forIconWithIdentifier:(id)a1; - (void)loadDesiredIconState; - (id)leafIconsForIdentifiers:(id)a0; - (void)checkModelConsistencyWithListGridCellInfoOptions:(unsigned long long)a0; - (id)succinctDescriptionBuilder; - (BOOL)iconStateUnarchiver:(id)a0 listsAllowRotatedLayoutForFolderClass:(Class)a1; - (BOOL)_saveIconState:(id)a0 error:(id *)a1; - (id)_unarchiveRootFolderWithLayoutStatus:(long long *)a0; - (void)iconModelApplicationDataSource:(id)a0 applicationPlaceholdersRemoved:(id)a1; - (void)iconModelApplicationDataSource:(id)a0 applicationsAdded:(id)a1; - (BOOL)addIconToDesignatedLocationBasedOnDelegate:(id)a0 toRootFolder:(id)a1 options:(unsigned long long)a2 listGridCellInfoOptions:(unsigned long long)a3; - (id)unarchivedRootFolderForAddingIconFromOtherIconState:(id)a0; - (void)enumerateLeafIconsUsingBlock:(id /* block */)a0; - (id)initWithStore:(id)a0; - (void)_tearDownDiscardCachedOtherRootFoldersRunloopObserverIfNeeded; - (unsigned long long)iconStateUnarchiver:(id)a0 listsIconLayoutBehaviorForFolderClass:(Class)a1; - (long long)iconStateUnarchiver:(id)a0 listsFixedIconLocationBehaviorForFolderClass:(Class)a1; - (void)_setUpIconRunLoopObserver; - (BOOL)addIconToDesignatedLocationBasedOnDefaultIconState:(id)a0 toRootFolder:(id)a1 options:(unsigned long long)a2 listGridCellInfoOptions:(unsigned long long)a3; - (struct SBHIconGridSize { unsigned short x0; unsigned short x1; })iconStateUnarchiver:(id)a0 listGridSizeForFolderClass:(Class)a1; - (void)folder:(id)a0 didAddIcons:(id)a1 removedIcons:(id)a2; - (void)scheduleDiscardOfCachedOtherRootFolders; - (id)applicationIconForBundleIdentifier:(id)a0; - (void)clearDesiredIconState; - (struct SBHIconGridSize { unsigned short x0; unsigned short x1; })iconStateUnarchiver:(id)a0 listWithNonDefaultSizedIconsGridSizeForFolderClass:(Class)a1; - (unsigned long long)listsIconLayoutBehaviorForFolderClass:(Class)a0; - (id)iconModelMetadata; - (void)didAddIcon:(id)a0; - (BOOL)isTrackingIcon:(id)a0; - (id)indexPathForIconInPlatformState:(id)a0; - (id)addApplication:(id)a0; - (id)bookmarkIconForWebClipIdentifier:(id)a0; - (unsigned long long)allowedGridSizeClassesForDockForIconStateUnarchiver:(id)a0; - (BOOL)deleteIconStateWithOptions:(unsigned long long)a0; - (void)clearDesiredIconStateIfPossible; - (void)clearDesiredIconStateWithOptions:(unsigned long long)a0; - (void)_removeIconStateAutosaveDisableAssertion:(id)a0; - (id)descriptionBuilderWithMultilinePrefix:(id)a0; - (void)folder:(id)a0 didReplaceIcon:(id)a1 withIcon:(id)a2; - (void)_saveIconState; - (void)removeApplicationIconsForBundleIdentifier:(id)a0; - (unsigned long long)allowedGridSizeClassesForTodayListForIconStateUnarchiver:(id)a0; - (unsigned long long)allowedGridSizeClassesForFolderClass:(Class)a0; - (id)removeApplicationPlaceholder:(id)a0; - (id)widgetIconForLeafIdentifier:(id)a0; - (void)updateExistingBookmarkIcon:(id)a0 forUpdatedWebClip:(id)a1; - (void)checkModelConsistency; - (id)removeApplication:(id)a0 pruneEmptyIcons:(BOOL)a1; - (void)discardCachedOtherRootFolders; - (id)addAdditionalIconMatchingIcon:(id)a0; - (id)removeApplicationWithBundleIdentifier:(id)a0 pruneEmptyIcons:(BOOL)a1; - (void)saveDesiredIconState; - (id)removeApplicationWithBundleIdentifier:(id)a0; - (id)descriptionWithMultilinePrefix:(id)a0; - (void)loadAllIcons; - (id)widgetIconsContainingWidgetsMatchingUniqueIdentifier:(id)a0; - (void)iconWantsUninstall:(id)a0; - (void)installedWebClipsDidChange; - (id)widgetIconsContainingWidgetsMatchingExtensionBundleIdentifier:(id)a0 kind:(id)a1 sizeClass:(long long)a2; - (void)checkModelConsistencyInRootFolder:(id)a0 listGridCellInfoOptions:(unsigned long long)a1; - (unsigned long long)maxRowCountForListInRootFolderWithInterfaceOrientation:(long long)a0; - (unsigned long long)iconStateUnarchiver:(id)a0 allowedGridSizeClassesForFolderClass:(Class)a1; - (void)importDesiredIconState:(id)a0; - (void).cxx_destruct; - (void)autosaveTimerDidFire:(id)a0; - (void)_noteRemovedIcons:(id)a0; - (BOOL)shouldAvoidPlacingIconOnFirstPage:(id)a0; - (id)_adjustedPlatformIndexPathInRootFolder:(id)a0 forIcon:(id)a1; - (void)adjustIconsToShow:(id)a0 iconsToHide:(id)a1 afterChangeToVisibleIconTags:(id)a2 hiddenIconTags:(id)a3; - (id)leafIconForIdentifier:(id)a0; - (id)expectedIconForDisplayIdentifier:(id)a0; - (BOOL)addIcon:(id)a0 toDesignatedLocationInRootFolder:(id)a1 options:(unsigned long long)a2 listGridCellInfoOptions:(unsigned long long)a3; - (id)makeFolderWithDisplayName:(id)a0 uniqueIdentifier:(id)a1; - (void)didUnarchiveMetadata:(id)a0; - (void)layout; - (id)indexPathInRootFolder:(id)a0 forNewIcon:(id)a1 isDesignatedLocation:(BOOL *)a2 replaceExistingIconAtIndexPath:(id *)a3; - (void)setLeafIconsByIdentifier:(id)a0; - (void)scheduleIconStateAutosave; - (BOOL)addIconToDesignatedLocation:(id)a0 options:(unsigned long long)a1 listGridCellInfoOptions:(unsigned long long)a2; - (void)iconModelApplicationDataSource:(id)a0 applicationPlaceholdersAdded:(id)a1; - (BOOL)hasAnyDirtyModelObjects; - (id)succinctDescription; - (id)applicationIconsForBundleIdentifier:(id)a0; - (void)enumerateApplicationIconsForBundleIdentifier:(id)a0 usingBlock:(id /* block */)a1; - (id)_adjustedIndexPathInRootFolder:(id)a0 withinIconState:(id)a1 forIconWithIdentifier:(id)a2; - (id)bookmarkIconForWebClipPlaceholderBundleIdentifier:(id)a0; - (BOOL)_saveIconStateWithError:(id *)a0; - (Class)iconClassForApplicationWithBundleIdentifier:(id)a0; - (id)disableIconStateAutosaveForReason:(id)a0; - (id)initWithStore:(id)a0 applicationDataSource:(id)a1; - (void)_tearDownIconRunloopObserverIfNeeded; - (struct SBHIconGridSizeClassSizes { struct SBHIconGridSize { unsigned short x0; unsigned short x1; } x0; struct SBHIconGridSize { unsigned short x0; unsigned short x1; } x1; struct SBHIconGridSize { unsigned short x0; unsigned short x1; } x2; struct SBHIconGridSize { unsigned short x0; unsigned short x1; } x3; struct SBHIconGridSize { unsigned short x0; unsigned short x1; } x4; })gridSizeClassSizesForIconStateUnarchiver:(id)a0; - (void)iconModelApplicationDataSource:(id)a0 applicationsUpdated:(id)a1; - (BOOL)isIconVisible:(id)a0; - (long long)_getLoadedIconState:(id *)a0 error:(id *)a1; - (void)removeIcon:(id)a0 shouldRemoveFromRootFolder:(BOOL)a1; - (BOOL)addIcon:(id)a0 toDesignatedLocationBasedOnOtherRootFolder:(id)a1 toRootFolder:(id)a2 options:(unsigned long long)a3 listGridCellInfoOptions:(unsigned long long)a4; - (void)folder:(id)a0 didAddList:(id)a1; - (void)reloadIcons; - (void)willLayout; - (id)makeFolderWithDisplayName:(id)a0; - (BOOL)shouldAvoidCreatingIconForApplication:(id)a0; - (void)_checkRemovedIcons; - (BOOL)saveIconStateIfNeeded; - (id)desiredIndexPathForIconWithIdentifier:(id)a0; - (BOOL)deleteIconState; - (id)iconStateUnarchiver:(id)a0 didUnarchiveWidgetIcon:(id)a1; - (id)indexPathForNewIcon:(id)a0 isDesignatedLocation:(BOOL *)a1 replaceExistingIconAtIndexPath:(id *)a2; - (void)removeIconForIdentifier:(id)a0; - (void)setVisibilityOfIconsWithVisibleTags:(id)a0 hiddenTags:(id)a1; - (BOOL)_shouldSkipAddingIcon:(id)a0 toRootFolder:(id)a1; - (id)removeApplication:(id)a0; - (id)addBookmarkIconForWebClip:(id)a0; - (BOOL)addIconToDesignatedLocationBasedOnDesiredIconState:(id)a0 toRootFolder:(id)a1 options:(unsigned long long)a2 listGridCellInfoOptions:(unsigned long long)a3; - (void)setForecastedLeavesOnIconModel:(id)a0 includingMissingIcons:(id)a1; - (id)addApplication:(id)a0 force:(BOOL)a1; @end