@class WBSCacheRetainReleasePolicy, NSMutableDictionary, NSURL, NSMutableSet, NSObject, WBSCoalescedAsynchronousWriter; @protocol WBSSiteMetadataImageCacheDelegate, OS_dispatch_queue; @interface WBSSiteMetadataImageCache : NSObject { NSObject *_diskAccessQueue; NSObject *_internalQueue; struct os_unfair_lock_s { unsigned int _os_unfair_lock_opaque; } _cacheAccessLock; struct atomic { struct __cxx_atomic_impl> { _Atomic BOOL __a_value; } __a_; } _terminating; NSMutableDictionary *_imagesForKeyStrings; NSMutableSet *_missingImageKeyStrings; NSMutableDictionary *_keyStringRequestsToCompletionHandlers; WBSCacheRetainReleasePolicy *_cachePolicy; NSMutableDictionary *_cacheSettings; WBSCoalescedAsynchronousWriter *_cacheSettingsWriter; unsigned long long _fileProtectionOptions; } @property (readonly, nonatomic) NSURL *imageDirectoryURL; @property (readonly, nonatomic) long long imageType; @property (readonly, nonatomic, getter=isTerminating) BOOL terminating; @property (weak) id delegate; - (id)init; - (id)settingForKey:(id)a0; - (void)setSetting:(id)a0 forKey:(id)a1; - (void)emptyCache; - (id).cxx_construct; - (void).cxx_destruct; - (void)savePendingChangesBeforeTermination; - (void)_notifyDidFinishLoadingSettings; - (void)removeAllImages; - (void)setUpImageCache; - (id)_cacheSettingsFileURL; - (void)_didLoadImage:(id)a0 forKeyString:(id)a1 fromDisk:(BOOL)a2; - (id)_diskAccessQueueName; - (void)_dispatchDiskAccessBlock:(id /* block */)a0; - (void)_emptyCacheDirectory; - (id)_fileLocationForKeyString:(id)a0; - (id)_fileNameForKeyString:(id)a0; - (BOOL)_internalDidLoadImageAndShouldNotify:(id)a0 forKeyString:(id)a1 fromDisk:(BOOL)a2; - (long long)_internalImageStateForKeyString:(id)a0; - (void)_internalPurgeUnneededImages; - (id)_internalQueueName; - (void)_internalReleaseImageForKeyString:(id)a0; - (void)_internalRemoveAllImages; - (void)_internalRemoveImagesFromCacheForKeyStrings:(id)a0; - (void)_internalSaveImageToDisk:(id)a0 forKeyString:(id)a1 completionHandler:(id /* block */)a2; - (void)_internalSetImageState:(long long)a0 forKeyString:(id)a1; - (void)_internalSetUpImageCache; - (void)_removeImagesPassingTest:(id /* block */)a0; - (void)_requestImageForKeyString:(id)a0 completionHandler:(id /* block */)a1; - (void)getImageForKeyString:(id)a0 completionHandler:(id /* block */)a1; - (id)imageForKeyString:(id)a0 getImageState:(long long *)a1; - (long long)imageStateForKeyString:(id)a0; - (id)initWithImageDirectoryURL:(id)a0 imageType:(long long)a1; - (id)initWithImageDirectoryURL:(id)a0 imageType:(long long)a1 fileProtectionOptions:(unsigned long long)a2; - (BOOL)isImageRetainedForKeyString:(id)a0; - (void)purgeUnneededImages; - (void)releaseImageForKeyString:(id)a0; - (void)releaseImageWithKeyStringProvider:(id /* block */)a0; - (void)releaseImagesForKeyStrings:(id)a0; - (void)removeImagesFromCacheForKeyStrings:(id)a0; - (void)retainImageForKeyString:(id)a0; - (void)retainImageWithKeyStringProvider:(id /* block */)a0; - (void)retainImagesForKeyStrings:(id)a0; - (void)saveImageToDisk:(id)a0 forKeyString:(id)a1 completionHandler:(id /* block */)a2; - (void)setImage:(id)a0 forKeyString:(id)a1; - (void)setImageState:(long long)a0 forKeyString:(id)a1; @end