#import NS_ASSUME_NONNULL_BEGIN extern NSString *const OWSMimeTypeApplicationOctetStream; extern NSString *const OWSMimeTypeApplicationZip; extern NSString *const OWSMimeTypeApplicationPdf; extern NSString *const OWSMimeTypeImagePng; extern NSString *const OWSMimeTypeImageJpeg; extern NSString *const OWSMimeTypeImageGif; extern NSString *const OWSMimeTypeImageTiff1; extern NSString *const OWSMimeTypeImageTiff2; extern NSString *const OWSMimeTypeImageBmp1; extern NSString *const OWSMimeTypeImageBmp2; extern NSString *const OWSMimeTypeOversizeTextMessage; extern NSString *const OWSMimeTypeUnknownForTests; extern NSString *const kOversizeTextAttachmentUTI; extern NSString *const kOversizeTextAttachmentFileExtension; extern NSString *const kUnknownTestAttachmentUTI; extern NSString *const kSyncMessageFileExtension; @interface MIMETypeUtil : NSObject + (BOOL)isSupportedVideoMIMEType:(NSString *)contentType; + (BOOL)isSupportedAudioMIMEType:(NSString *)contentType; + (BOOL)isSupportedImageMIMEType:(NSString *)contentType; + (BOOL)isSupportedAnimatedMIMEType:(NSString *)contentType; + (BOOL)isSupportedVideoFile:(NSString *)filePath; + (BOOL)isSupportedAudioFile:(NSString *)filePath; + (BOOL)isSupportedImageFile:(NSString *)filePath; + (BOOL)isSupportedAnimatedFile:(NSString *)filePath; + (nullable NSString *)getSupportedExtensionFromVideoMIMEType:(NSString *)supportedMIMEType; + (nullable NSString *)getSupportedExtensionFromAudioMIMEType:(NSString *)supportedMIMEType; + (nullable NSString *)getSupportedExtensionFromImageMIMEType:(NSString *)supportedMIMEType; + (nullable NSString *)getSupportedExtensionFromAnimatedMIMEType:(NSString *)supportedMIMEType; + (BOOL)isAnimated:(NSString *)contentType; + (BOOL)isImage:(NSString *)contentType; + (BOOL)isVideo:(NSString *)contentType; + (BOOL)isAudio:(NSString *)contentType; + (BOOL)isText:(NSString *)contentType; + (BOOL)isMicrosoftDoc:(NSString *)contentType; + (BOOL)isVisualMedia:(NSString *)contentType; // filename is optional and should not be trusted. + (nullable NSString *)filePathForAttachment:(NSString *)uniqueId ofMIMEType:(NSString *)contentType sourceFilename:(nullable NSString *)sourceFilename inFolder:(NSString *)folder; + (NSSet *)supportedVideoUTITypes; + (NSSet *)supportedAudioUTITypes; + (NSSet *)supportedImageUTITypes; + (NSSet *)supportedAnimatedImageUTITypes; + (nullable NSString *)utiTypeForMIMEType:(NSString *)mimeType; + (nullable NSString *)utiTypeForFileExtension:(NSString *)fileExtension; + (nullable NSString *)fileExtensionForUTIType:(NSString *)utiType; + (nullable NSString *)fileExtensionForMIMEType:(NSString *)mimeType; + (nullable NSString *)mimeTypeForFileExtension:(NSString *)fileExtension; @end NS_ASSUME_NONNULL_END