# typed: true
# DO NOT EDIT MANUALLY
# This is an autogenerated file for types exported from the `marcel` gem.
# Please instead update this file by running `bin/tapioca gem marcel`.
# This file is auto-generated. Instead of editing this file, please
# add MIMEs to data/custom.xml or lib/marcel/mime_type/definitions.rb.
#
# source://marcel//lib/marcel.rb#3
module Marcel; end
# @private
#
# source://marcel//lib/marcel/tables.rb#9
Marcel::EXTENSIONS = T.let(T.unsafe(nil), Hash)
# @private
#
# source://marcel//lib/marcel/tables.rb#2394
Marcel::MAGIC = T.let(T.unsafe(nil), Array)
# Mime type detection
#
# source://marcel//lib/marcel/magic.rb#12
class Marcel::Magic
# Mime type by type string
#
# @return [Magic] a new instance of Magic
#
# source://marcel//lib/marcel/magic.rb#16
def initialize(type); end
# Allow comparison with string
#
# @return [Boolean]
#
# source://marcel//lib/marcel/magic.rb#103
def ==(other); end
# @return [Boolean]
#
# source://marcel//lib/marcel/magic.rb#54
def audio?; end
# Returns true if type is child of parent type
#
# @return [Boolean]
#
# source://marcel//lib/marcel/magic.rb#58
def child_of?(parent); end
# Get mime comment
#
# source://marcel//lib/marcel/magic.rb#68
def comment; end
# Allow comparison with string
#
# @return [Boolean]
#
# source://marcel//lib/marcel/magic.rb#103
def eql?(other); end
# Get string list of file extensions
#
# source://marcel//lib/marcel/magic.rb#63
def extensions; end
# source://marcel//lib/marcel/magic.rb#107
def hash; end
# Mediatype shortcuts
#
# @return [Boolean]
#
# source://marcel//lib/marcel/magic.rb#53
def image?; end
# Returns the value of attribute mediatype.
#
# source://marcel//lib/marcel/magic.rb#13
def mediatype; end
# Returns the value of attribute subtype.
#
# source://marcel//lib/marcel/magic.rb#13
def subtype; end
# Returns true if type is a text format
#
# @return [Boolean]
#
# source://marcel//lib/marcel/magic.rb#50
def text?; end
# Return type as string
#
# source://marcel//lib/marcel/magic.rb#98
def to_s; end
# Returns the value of attribute type.
#
# source://marcel//lib/marcel/magic.rb#13
def type; end
# @return [Boolean]
#
# source://marcel//lib/marcel/magic.rb#55
def video?; end
class << self
# Add custom mime type. Arguments:
# * type: Mime type
# * options: Options hash
#
# Option keys:
# * :extensions: String list or single string of file extensions
# * :parents: String list or single string of parent mime types
# * :magic: Mime magic specification
# * :comment: Comment string
#
# source://marcel//lib/marcel/magic.rb#30
def add(type, options); end
# Lookup all mime types by magic content analysis.
# This is a slower operation.
#
# source://marcel//lib/marcel/magic.rb#93
def all_by_magic(io); end
# Lookup mime type by file extension
#
# source://marcel//lib/marcel/magic.rb#73
def by_extension(ext); end
# Lookup mime type by magic content analysis.
# This is a slow operation.
#
# source://marcel//lib/marcel/magic.rb#86
def by_magic(io); end
# Lookup mime type by filename
#
# source://marcel//lib/marcel/magic.rb#80
def by_path(path); end
# @return [Boolean]
#
# source://marcel//lib/marcel/magic.rb#113
def child?(child, parent); end
# Removes a mime type from the dictionary. You might want to do this if
# you're seeing impossible conflicts (for instance, application/x-gmc-link).
# * type: The mime type to remove. All associated extensions and magic are removed too.
#
# source://marcel//lib/marcel/magic.rb#42
def remove(type); end
private
# source://marcel//lib/marcel/magic.rb#117
def magic_match(io, method); end
# source://marcel//lib/marcel/magic.rb#127
def magic_match_io(io, matches, buffer); end
end
end
# source://marcel//lib/marcel/mime_type.rb#4
class Marcel::MimeType
class << self
# source://marcel//lib/marcel/mime_type.rb#8
def extend(type, extensions: T.unsafe(nil), parents: T.unsafe(nil), magic: T.unsafe(nil)); end
# Returns the most appropriate content type for the given file.
#
# The first argument should be a +Pathname+ or an +IO+. If it is a +Pathname+, the specified
# file will be opened first.
#
# Optional parameters:
# * +name+: file name, if known
# * +extension+: file extension, if known
# * +declared_type+: MIME type, if known
#
# The most appropriate type is determined by the following:
# * type declared by binary magic number data
# * type declared by the first of file name, file extension, or declared MIME type
#
# If no type can be determined, then +application/octet-stream+ is returned.
#
# source://marcel//lib/marcel/mime_type.rb#29
def for(pathname_or_io = T.unsafe(nil), name: T.unsafe(nil), extension: T.unsafe(nil), declared_type: T.unsafe(nil)); end
private
# source://marcel//lib/marcel/mime_type.rb#36
def for_data(pathname_or_io); end
# source://marcel//lib/marcel/mime_type.rb#62
def for_declared_type(declared_type); end
# source://marcel//lib/marcel/mime_type.rb#54
def for_extension(extension); end
# source://marcel//lib/marcel/mime_type.rb#46
def for_name(name); end
# For some document types (notably Microsoft Office) we recognise the main content
# type with magic, but not the specific subclass. In this situation, if we can get a more
# specific class using either the name or declared_type, we should use that in preference
#
# source://marcel//lib/marcel/mime_type.rb#89
def most_specific_type(*candidates); end
# source://marcel//lib/marcel/mime_type.rb#79
def parse_media_type(content_type); end
# source://marcel//lib/marcel/mime_type.rb#71
def with_io(pathname_or_io, &block); end
end
end
# source://marcel//lib/marcel/mime_type.rb#5
Marcel::MimeType::BINARY = T.let(T.unsafe(nil), String)
# @private
#
# source://marcel//lib/marcel/tables.rb#1260
Marcel::TYPE_EXTS = T.let(T.unsafe(nil), Hash)
# Cooltalk Audio
#
# source://marcel//lib/marcel/tables.rb#2151
Marcel::TYPE_PARENTS = T.let(T.unsafe(nil), Hash)
# source://marcel//lib/marcel/version.rb#4
Marcel::VERSION = T.let(T.unsafe(nil), String)