// swift-interface-format-version: 1.0
// swift-compiler-version: Apple Swift version 6.2.4 effective-5.10 (swiftlang-6.2.4.1.4 clang-1700.6.4.2)
// swift-module-flags: -target arm64-apple-ios16.0-simulator -enable-objc-interop -enable-library-evolution -swift-version 5 -enforce-exclusivity=checked -O -enable-experimental-feature DebugDescriptionMacro -enable-bare-slash-regex -module-name M2Kit
// swift-module-flags-ignorable: -no-verify-emitted-module-interface -formal-cxx-interoperability-mode=off -interface-compiler-version 6.2.4
import Combine
import CommonCrypto
import Foundation
import JavaScriptCore
import Network
import StoreKit
import Swift
import SwiftUI
import UIKit
import WebKit
import _Concurrency
import _StringProcessing
import _SwiftConcurrencyShims
public enum SwiftyJSONError : Swift.Int, Swift.Error {
  case unsupportedType
  case indexOutOfBounds
  case elementTooDeep
  case wrongType
  case notExist
  case invalidJSON
  #if compiler(>=5.3) && $NonescapableTypes
  public init?(rawValue: Swift.Int)
  #endif
  public typealias RawValue = Swift.Int
  public var rawValue: Swift.Int {
    get
  }
}
extension M2Kit.SwiftyJSONError : Foundation.CustomNSError {
  public static var errorDomain: Swift.String {
    get
  }
  public var errorCode: Swift.Int {
    get
  }
  public var errorUserInfo: [Swift.String : Any] {
    get
  }
}
public enum Type : Swift.Int {
  case number
  case string
  case bool
  case array
  case dictionary
  case null
  case unknown
  #if compiler(>=5.3) && $NonescapableTypes
  public init?(rawValue: Swift.Int)
  #endif
  public typealias RawValue = Swift.Int
  public var rawValue: Swift.Int {
    get
  }
}
public struct JSON {
  public init(data: Foundation.Data, options opt: Foundation.JSONSerialization.ReadingOptions = []) throws
  public init(_ object: Any)
  public init(parseJSON jsonString: Swift.String)
  public mutating func merge(with other: M2Kit.JSON) throws
  public func merged(with other: M2Kit.JSON) throws -> M2Kit.JSON
  public var type: M2Kit.`Type` {
    get
  }
  public var error: M2Kit.SwiftyJSONError? {
    get
  }
  public var object: Any {
    get
    set
  }
  @available(*, unavailable, renamed: "null")
  public static var nullJSON: M2Kit.JSON {
    get
  }
  public static var null: M2Kit.JSON {
    get
  }
}
public enum Index<T> : Swift.Comparable {
  case array(Swift.Int)
  case dictionary(Swift.DictionaryIndex<Swift.String, T>)
  case null
  public static func == (lhs: M2Kit.Index<T>, rhs: M2Kit.Index<T>) -> Swift.Bool
  public static func < (lhs: M2Kit.Index<T>, rhs: M2Kit.Index<T>) -> Swift.Bool
}
public typealias JSONIndex = M2Kit.Index<M2Kit.JSON>
public typealias JSONRawIndex = M2Kit.Index<Any>
extension M2Kit.JSON : Swift.Collection {
  public typealias Index = M2Kit.JSONRawIndex
  public var startIndex: M2Kit.JSON.Index {
    get
  }
  public var endIndex: M2Kit.JSON.Index {
    get
  }
  public func index(after i: M2Kit.JSON.Index) -> M2Kit.JSON.Index
  public subscript(position: M2Kit.JSON.Index) -> (Swift.String, M2Kit.JSON) {
    get
  }
  public typealias Element = (Swift.String, M2Kit.JSON)
  public typealias Indices = Swift.DefaultIndices<M2Kit.JSON>
  public typealias Iterator = Swift.IndexingIterator<M2Kit.JSON>
  public typealias SubSequence = Swift.Slice<M2Kit.JSON>
}
public enum JSONKey {
  case index(Swift.Int)
  case key(Swift.String)
}
public protocol JSONSubscriptType {
  var jsonKey: M2Kit.JSONKey { get }
}
extension Swift.Int : M2Kit.JSONSubscriptType {
  public var jsonKey: M2Kit.JSONKey {
    get
  }
}
extension Swift.String : M2Kit.JSONSubscriptType {
  public var jsonKey: M2Kit.JSONKey {
    get
  }
}
extension M2Kit.JSON {
  public subscript(path: [any M2Kit.JSONSubscriptType]) -> M2Kit.JSON {
    get
    set
  }
  public subscript(path: any M2Kit.JSONSubscriptType...) -> M2Kit.JSON {
    get
    set
  }
}
extension M2Kit.JSON : Swift.ExpressibleByStringLiteral {
  public init(stringLiteral value: Swift.StringLiteralType)
  public init(extendedGraphemeClusterLiteral value: Swift.StringLiteralType)
  public init(unicodeScalarLiteral value: Swift.StringLiteralType)
  public typealias ExtendedGraphemeClusterLiteralType = Swift.StringLiteralType
  public typealias StringLiteralType = Swift.StringLiteralType
  public typealias UnicodeScalarLiteralType = Swift.StringLiteralType
}
extension M2Kit.JSON : Swift.ExpressibleByIntegerLiteral {
  public init(integerLiteral value: Swift.IntegerLiteralType)
  public typealias IntegerLiteralType = Swift.IntegerLiteralType
}
extension M2Kit.JSON : Swift.ExpressibleByBooleanLiteral {
  public init(booleanLiteral value: Swift.BooleanLiteralType)
  public typealias BooleanLiteralType = Swift.BooleanLiteralType
}
extension M2Kit.JSON : Swift.ExpressibleByFloatLiteral {
  public init(floatLiteral value: Swift.FloatLiteralType)
  public typealias FloatLiteralType = Swift.FloatLiteralType
}
extension M2Kit.JSON : Swift.ExpressibleByDictionaryLiteral {
  public init(dictionaryLiteral elements: (Swift.String, Any)...)
  public typealias Key = Swift.String
  public typealias Value = Any
}
extension M2Kit.JSON : Swift.ExpressibleByArrayLiteral {
  public init(arrayLiteral elements: Any...)
  public typealias ArrayLiteralElement = Any
}
extension M2Kit.JSON : Swift.RawRepresentable {
  #if compiler(>=5.3) && $NonescapableTypes
  public init?(rawValue: Any)
  #endif
  public var rawValue: Any {
    get
  }
  public func rawData(options opt: Foundation.JSONSerialization.WritingOptions = JSONSerialization.WritingOptions(rawValue: 0)) throws -> Foundation.Data
  #if compiler(>=5.3) && $NonescapableTypes
  public func rawString(_ encoding: Swift.String.Encoding = .utf8, options opt: Foundation.JSONSerialization.WritingOptions = .prettyPrinted) -> Swift.String?
  #endif
  #if compiler(>=5.3) && $NonescapableTypes
  public func rawString(_ options: [M2Kit.writingOptionsKeys : Any]) -> Swift.String?
  #endif
  public typealias RawValue = Any
}
extension M2Kit.JSON : Swift.CustomStringConvertible, Swift.CustomDebugStringConvertible {
  public var description: Swift.String {
    get
  }
  public var debugDescription: Swift.String {
    get
  }
}
extension M2Kit.JSON {
  #if compiler(>=5.3) && $NonescapableTypes
  public var array: [M2Kit.JSON]? {
    get
  }
  #endif
  public var arrayValue: [M2Kit.JSON] {
    get
  }
  #if compiler(>=5.3) && $NonescapableTypes
  public var arrayObject: [Any]? {
    get
    set
  }
  #endif
}
extension M2Kit.JSON {
  #if compiler(>=5.3) && $NonescapableTypes
  public var dictionary: [Swift.String : M2Kit.JSON]? {
    get
  }
  #endif
  public var dictionaryValue: [Swift.String : M2Kit.JSON] {
    get
  }
  #if compiler(>=5.3) && $NonescapableTypes
  public var dictionaryObject: [Swift.String : Any]? {
    get
    set
  }
  #endif
}
extension M2Kit.JSON {
  #if compiler(>=5.3) && $NonescapableTypes
  public var bool: Swift.Bool? {
    get
    set
  }
  #endif
  public var boolValue: Swift.Bool {
    get
    set
  }
}
extension M2Kit.JSON {
  #if compiler(>=5.3) && $NonescapableTypes
  public var string: Swift.String? {
    get
    set
  }
  #endif
  public var stringValue: Swift.String {
    get
    set
  }
}
extension M2Kit.JSON {
  #if compiler(>=5.3) && $NonescapableTypes
  public var number: Foundation.NSNumber? {
    get
    set
  }
  #endif
  public var numberValue: Foundation.NSNumber {
    get
    set
  }
}
extension M2Kit.JSON {
  #if compiler(>=5.3) && $NonescapableTypes
  public var null: Foundation.NSNull? {
    get
    set
  }
  #endif
  public func exists() -> Swift.Bool
}
extension M2Kit.JSON {
  #if compiler(>=5.3) && $NonescapableTypes
  public var url: Foundation.URL? {
    get
    set
  }
  #endif
}
extension M2Kit.JSON {
  #if compiler(>=5.3) && $NonescapableTypes
  public var double: Swift.Double? {
    get
    set
  }
  #endif
  public var doubleValue: Swift.Double {
    get
    set
  }
  #if compiler(>=5.3) && $NonescapableTypes
  public var float: Swift.Float? {
    get
    set
  }
  #endif
  public var floatValue: Swift.Float {
    get
    set
  }
  #if compiler(>=5.3) && $NonescapableTypes
  public var int: Swift.Int? {
    get
    set
  }
  #endif
  public var intValue: Swift.Int {
    get
    set
  }
  #if compiler(>=5.3) && $NonescapableTypes
  public var uInt: Swift.UInt? {
    get
    set
  }
  #endif
  public var uIntValue: Swift.UInt {
    get
    set
  }
  #if compiler(>=5.3) && $NonescapableTypes
  public var int8: Swift.Int8? {
    get
    set
  }
  #endif
  public var int8Value: Swift.Int8 {
    get
    set
  }
  #if compiler(>=5.3) && $NonescapableTypes
  public var uInt8: Swift.UInt8? {
    get
    set
  }
  #endif
  public var uInt8Value: Swift.UInt8 {
    get
    set
  }
  #if compiler(>=5.3) && $NonescapableTypes
  public var int16: Swift.Int16? {
    get
    set
  }
  #endif
  public var int16Value: Swift.Int16 {
    get
    set
  }
  #if compiler(>=5.3) && $NonescapableTypes
  public var uInt16: Swift.UInt16? {
    get
    set
  }
  #endif
  public var uInt16Value: Swift.UInt16 {
    get
    set
  }
  #if compiler(>=5.3) && $NonescapableTypes
  public var int32: Swift.Int32? {
    get
    set
  }
  #endif
  public var int32Value: Swift.Int32 {
    get
    set
  }
  #if compiler(>=5.3) && $NonescapableTypes
  public var uInt32: Swift.UInt32? {
    get
    set
  }
  #endif
  public var uInt32Value: Swift.UInt32 {
    get
    set
  }
  #if compiler(>=5.3) && $NonescapableTypes
  public var int64: Swift.Int64? {
    get
    set
  }
  #endif
  public var int64Value: Swift.Int64 {
    get
    set
  }
  #if compiler(>=5.3) && $NonescapableTypes
  public var uInt64: Swift.UInt64? {
    get
    set
  }
  #endif
  public var uInt64Value: Swift.UInt64 {
    get
    set
  }
}
extension M2Kit.JSON : Swift.Comparable {
}
public func == (lhs: M2Kit.JSON, rhs: M2Kit.JSON) -> Swift.Bool
public func <= (lhs: M2Kit.JSON, rhs: M2Kit.JSON) -> Swift.Bool
public func >= (lhs: M2Kit.JSON, rhs: M2Kit.JSON) -> Swift.Bool
public func > (lhs: M2Kit.JSON, rhs: M2Kit.JSON) -> Swift.Bool
public func < (lhs: M2Kit.JSON, rhs: M2Kit.JSON) -> Swift.Bool
public enum writingOptionsKeys {
  case jsonSerialization
  case castNilToNSNull
  case maxObjextDepth
  case encoding
  public static func == (a: M2Kit.writingOptionsKeys, b: M2Kit.writingOptionsKeys) -> Swift.Bool
  public func hash(into hasher: inout Swift.Hasher)
  public var hashValue: Swift.Int {
    get
  }
}
extension M2Kit.JSON : Swift.Codable {
  public init(from decoder: any Swift.Decoder) throws
  public func encode(to encoder: any Swift.Encoder) throws
}
@_Concurrency.MainActor public struct M2API {
}
extension M2Kit.M2API {
  #if compiler(>=5.3) && $NonescapableTypes
  @_Concurrency.MainActor public static func searchVideosEx(title: Swift.String, nextToken: Swift.String?, result: @escaping (_ videos: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void)
  #endif
  #if compiler(>=5.3) && $NonescapableTypes
  @_Concurrency.MainActor public static func searchPlaylistsEx(title: Swift.String, nextToken: Swift.String?, result: @escaping (_ playlists: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void)
  #endif
  #if compiler(>=5.3) && $NonescapableTypes
  @_Concurrency.MainActor public static func getVideosOfPlaylistEx(playlistId: Swift.String, nextToken: Swift.String?, result: @escaping (_ videos: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void)
  #endif
  #if compiler(>=5.3) && $NonescapableTypes
  @_Concurrency.MainActor public static func searchChannelsEx(title: Swift.String, nextToken: Swift.String?, result: @escaping (_ channels: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void)
  #endif
  #if compiler(>=5.3) && $NonescapableTypes
  @available(*, deprecated, message: "Use getVideosOfChannelEx(channelId:nextToken:result:) instead.")
  @_Concurrency.MainActor public static func getVideosOfChannelEx(channelName: Swift.String, nextToken: Swift.String?, result: @escaping (_ videos: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void)
  #endif
  #if compiler(>=5.3) && $NonescapableTypes
  @_Concurrency.MainActor public static func getVideosOfChannelEx(channelId: Swift.String, nextToken: Swift.String?, result: @escaping (_ videos: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void)
  #endif
  @_Concurrency.MainActor public static func getAllVideosOfPlaylistEx(playlistId: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
}
extension M2Kit.M2API {
  @available(*, deprecated, message: "Use ytSongsEx(countrycode:result:) instead.")
  @_Concurrency.MainActor public static func topSongsEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
  @available(*, deprecated, message: "Use ytMusicVideosEx(countrycode:result:) instead.")
  @_Concurrency.MainActor public static func topVideosEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
  @available(*, deprecated, message: "Use ytTrendingEx(countrycode:result:) instead.")
  @_Concurrency.MainActor public static func trendingVideosEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
  @available(*, deprecated, message: "Use ytArtistsEx(countrycode:result:) instead.")
  @_Concurrency.MainActor public static func topChannelsEx(result: @escaping (_ channels: [[Swift.AnyHashable : Any]]) -> Swift.Void)
}
extension M2Kit.M2API {
  @available(*, deprecated, message: "Old API, not used.")
  @_Concurrency.MainActor public static func listCategoryEx(result: @escaping (_ categories: [(category_id: Swift.String, title: Swift.String)]) -> Swift.Void)
  @available(*, deprecated, message: "Old API, not used.")
  @_Concurrency.MainActor public static func getVideosOfCategoryEx(categoryId: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
}
extension M2Kit.M2API {
  @_Concurrency.MainActor public static func autocompleteSearchEx(_ text: Swift.String, result: @escaping (_ listSuggestion: [Swift.String]) -> Swift.Void)
  #if compiler(>=5.3) && $NonescapableTypes
  @_Concurrency.MainActor public static func getLocationEx(result: @escaping (_ countryCode: Swift.String?) -> Swift.Void)
  #endif
  @_Concurrency.MainActor public static func getTrendingSearchEx(result: @escaping (_ titles: [Swift.String]) -> Swift.Void)
}
extension M2Kit.M2API {
  #if compiler(>=5.3) && $NonescapableTypes
  @_Concurrency.MainActor public static func getLinkPlayEx(videoId: Swift.String, result: @escaping (_ videoUrl: Foundation.URL?, _ videoId: Swift.String, _ metadata: [Swift.AnyHashable : Any]?) -> Swift.Void)
  #endif
}
extension M2Kit.M2API {
  @_Concurrency.MainActor public static func kworbMusicVideoWWEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
  @_Concurrency.MainActor public static func kworbMusicCategoryWWEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
  @_Concurrency.MainActor public static func kworbGlobalTrendingEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
  @_Concurrency.MainActor public static func kworbTopArtistsEx(result: @escaping (_ artists: [[Swift.AnyHashable : Any]]) -> Swift.Void)
  @_Concurrency.MainActor public static func kworbArtistDetailEx(artistId: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
  @_Concurrency.MainActor public static func kworbListCountriesEx(result: @escaping (_ countries: [[Swift.AnyHashable : Any]]) -> Swift.Void)
  @_Concurrency.MainActor public static func kworbLocalTrendingEx(countryCode: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
}
extension M2Kit.M2API {
  @_Concurrency.MainActor public static func ytListCountriesEx(result: @escaping (_ countries: [[Swift.AnyHashable : Any]]) -> Swift.Void)
  @_Concurrency.MainActor public static func ytTrendingEx(countryCode: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
  @_Concurrency.MainActor public static func ytMusicVideosEx(countryCode: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
  @_Concurrency.MainActor public static func ytSongsEx(countryCode: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
  @_Concurrency.MainActor public static func ytArtistsEx(countryCode: Swift.String, result: @escaping (_ artists: [[Swift.AnyHashable : Any]]) -> Swift.Void)
  @_Concurrency.MainActor public static func ytArtistDetailEx(artistId: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
}
extension M2Kit.M2API {
  #if compiler(>=5.3) && $NonescapableTypes
  @_Concurrency.MainActor public static func searchVideos(title: Swift.String, nextToken: Swift.String?) async -> (videos: [[Swift.AnyHashable : Any]], nextToken: Swift.String?)
  #endif
  #if compiler(>=5.3) && $NonescapableTypes
  @_Concurrency.MainActor public static func searchPlaylists(title: Swift.String, nextToken: Swift.String?) async -> (playlists: [[Swift.AnyHashable : Any]], nextToken: Swift.String?)
  #endif
  #if compiler(>=5.3) && $NonescapableTypes
  @_Concurrency.MainActor public static func getVideosOfPlaylist(playlistId: Swift.String, nextToken: Swift.String?) async -> (videos: [[Swift.AnyHashable : Any]], nextToken: Swift.String?)
  #endif
  #if compiler(>=5.3) && $NonescapableTypes
  @_Concurrency.MainActor public static func searchChannels(title: Swift.String, nextToken: Swift.String?) async -> (channels: [[Swift.AnyHashable : Any]], nextToken: Swift.String?)
  #endif
  #if compiler(>=5.3) && $NonescapableTypes
  @available(*, deprecated, message: "Use getVideosOfChannel(channelId:nextToken:) instead.")
  @_Concurrency.MainActor public static func getVideosOfChannel(channelName: Swift.String, nextToken: Swift.String?) async -> (videos: [[Swift.AnyHashable : Any]], nextToken: Swift.String?)
  #endif
  #if compiler(>=5.3) && $NonescapableTypes
  @_Concurrency.MainActor public static func getVideosOfChannel(channelId: Swift.String, nextToken: Swift.String?) async -> (videos: [[Swift.AnyHashable : Any]], nextToken: Swift.String?)
  #endif
  @_Concurrency.MainActor public static func getAllVideosOfPlaylist(_ playlistId: Swift.String) async -> [[Swift.AnyHashable : Any]]
}
extension M2Kit.M2API {
  @available(*, deprecated, message: "Use ytSongs(countrycode) instead.")
  @_Concurrency.MainActor public static func topSongs() async -> [[Swift.AnyHashable : Any]]
  @available(*, deprecated, message: "Use ytMusicVideosEx(countrycode) instead.")
  @_Concurrency.MainActor public static func topVideos() async -> [[Swift.AnyHashable : Any]]
  @available(*, deprecated, message: "Use ytTrendingEx(countrycode) instead.")
  @_Concurrency.MainActor public static func trendingVideos() async -> [[Swift.AnyHashable : Any]]
  @available(*, deprecated, message: "Use ytArtistsEx(countrycode) instead.")
  @_Concurrency.MainActor public static func topChannels() async -> [[Swift.AnyHashable : Any]]
}
extension M2Kit.M2API {
  @available(*, deprecated, message: "Old API, not used.")
  @_Concurrency.MainActor public static func listCategory() async -> [(category_id: Swift.String, title: Swift.String)]
  @available(*, deprecated, message: "Old API, not used.")
  @_Concurrency.MainActor public static func getVideosOfCategory(categoryId: Swift.String) async -> [[Swift.AnyHashable : Any]]
}
extension M2Kit.M2API {
  @_Concurrency.MainActor public static func autocompleteSearch(_ text: Swift.String) async -> [Swift.String]
  #if compiler(>=5.3) && $NonescapableTypes
  @_Concurrency.MainActor public static func getLocation() async -> Swift.String?
  #endif
  @_Concurrency.MainActor public static func getTrendingSearch() async -> [Swift.String]
}
extension M2Kit.M2API {
  #if compiler(>=5.3) && $NonescapableTypes
  @_Concurrency.MainActor public static func getLinkPlay(videoId: Swift.String) async -> (videoUrl: Foundation.URL?, videoId: Swift.String, metadata: [Swift.AnyHashable : Any]?)
  #endif
}
extension M2Kit.M2API {
  @_Concurrency.MainActor public static func kworbMusicVideoWW() async -> [[Swift.AnyHashable : Any]]
  @_Concurrency.MainActor public static func kworbMusicCategoryWW() async -> [[Swift.AnyHashable : Any]]
  @_Concurrency.MainActor public static func kworbGlobalTrending() async -> [[Swift.AnyHashable : Any]]
  @_Concurrency.MainActor public static func kworbTopArtists() async -> [[Swift.AnyHashable : Any]]
  @_Concurrency.MainActor public static func kworbArtistDetail(artistId: Swift.String) async -> [[Swift.AnyHashable : Any]]
  @_Concurrency.MainActor public static func kworbListCountries() async -> [[Swift.AnyHashable : Any]]
  @_Concurrency.MainActor public static func kworbLocalTrending(countryCode: Swift.String) async -> [[Swift.AnyHashable : Any]]
}
extension M2Kit.M2API {
  @_Concurrency.MainActor public static func ytListCountries() async -> [[Swift.AnyHashable : Any]]
  @_Concurrency.MainActor public static func ytTrending(countryCode: Swift.String) async -> [[Swift.AnyHashable : Any]]
  @_Concurrency.MainActor public static func ytMusicVideos(countryCode: Swift.String) async -> [[Swift.AnyHashable : Any]]
  @_Concurrency.MainActor public static func ytSongs(countryCode: Swift.String) async -> [[Swift.AnyHashable : Any]]
  @_Concurrency.MainActor public static func ytArtists(countryCode: Swift.String) async -> [[Swift.AnyHashable : Any]]
  @_Concurrency.MainActor public static func ytArtistDetail(artistId: Swift.String) async -> [[Swift.AnyHashable : Any]]
}
@_Concurrency.MainActor public struct M2Backup {
  @_Concurrency.MainActor public static var backupCode: Swift.String {
    get
  }
  #if compiler(>=5.3) && $NonescapableTypes
  @_Concurrency.MainActor public static func uploadBackup(code: Swift.String, data: Foundation.Data, result: @escaping (_ url: Swift.String?, _ version: Swift.Int) -> Swift.Void)
  #endif
  #if compiler(>=5.3) && $NonescapableTypes
  @_Concurrency.MainActor public static func getBackup(code: Swift.String, result: @escaping (_ data: Foundation.Data?) -> Swift.Void)
  #endif
  #if compiler(>=5.3) && $NonescapableTypes
  @_Concurrency.MainActor public static func getBackupVersion(code: Swift.String, result: @escaping (_ num: Swift.Int?) -> Swift.Void)
  #endif
  #if compiler(>=5.3) && $NonescapableTypes
  @_Concurrency.MainActor public static func getBackupVersions(codes: [Swift.String], result: @escaping (_ results: [Swift.String : Swift.Int?]) -> Swift.Void)
  #endif
  #if compiler(>=5.3) && $NonescapableTypes
  @_Concurrency.MainActor public static func uploadBackupPlaylist(code: Swift.String, data: Foundation.Data, result: @escaping (_ url: Swift.String?, _ version: Swift.Int) -> Swift.Void)
  #endif
  #if compiler(>=5.3) && $NonescapableTypes
  @_Concurrency.MainActor public static func getBackupPlaylist(code: Swift.String, result: @escaping (_ data: Foundation.Data?) -> Swift.Void)
  #endif
}
public let m2Version: Swift.String
@_Concurrency.MainActor public func setServiceType(_ type: Swift.String)
@_Concurrency.MainActor public func setLogLevel(_ value: Swift.Int)
@_Concurrency.MainActor public struct M2Feedback {
  @_Concurrency.MainActor public static func sendFeedback(content: Swift.String, result: @escaping (_ isOK: Swift.Bool) -> Swift.Void)
}
@_Concurrency.MainActor public struct M2HTTP {
  #if compiler(>=5.3) && $NonescapableTypes
  @_Concurrency.MainActor public static func getDataEx(url: Foundation.URL, result: @escaping (_ data: Foundation.Data?) -> Swift.Void)
  #endif
  #if compiler(>=5.3) && $NonescapableTypes
  @_Concurrency.MainActor public static func getData(url: Foundation.URL) async -> Foundation.Data?
  #endif
  #if compiler(>=5.3) && $NonescapableTypes
  @_Concurrency.MainActor public static func getImageDataEx(url: Foundation.URL, result: @escaping (_ data: Foundation.Data?) -> Swift.Void)
  #endif
  #if compiler(>=5.3) && $NonescapableTypes
  @_Concurrency.MainActor public static func getImageData(url: Foundation.URL) async -> Foundation.Data?
  #endif
}
@_Concurrency.MainActor public struct M2Image {
  #if compiler(>=5.3) && $NonescapableTypes
  @_Concurrency.MainActor public static func uploadImage(_ image: UIKit.UIImage, result: @escaping (_ url: Swift.String?) -> Swift.Void)
  #endif
  #if compiler(>=5.3) && $NonescapableTypes
  @_Concurrency.MainActor public static func uploadImage(_ image: UIKit.UIImage) async -> Swift.String?
  #endif
}
@_Concurrency.MainActor public struct M2K {
  @_Concurrency.MainActor public static func start(c: Swift.String = "", t: Swift.String = "", d: Swift.Int = 0, result: @escaping () -> Swift.Void)
}
@_Concurrency.MainActor public struct M2Log {
  @_Concurrency.MainActor public static func send(event: Swift.String, count: Swift.Int = 1, result: @escaping (_ isOK: Swift.Bool) -> Swift.Void)
  @_Concurrency.MainActor public static func lazyLog(event: Swift.String, count: Swift.Int = 1)
  @_Concurrency.MainActor public static func sendAllEvents(result: @escaping (_ isOK: Swift.Bool) -> Swift.Void)
}
@_Concurrency.MainActor public struct M2Musi {
  #if compiler(>=5.3) && $NonescapableTypes
  @_Concurrency.MainActor public static func getVideosOfPlaylistWithCode(_ code: Swift.String, result: @escaping (_ title: Swift.String?, _ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
  #endif
}
public enum M2NetConnecttionType {
  case wifi
  case cellular
  case other
  case none
  public static func == (a: M2Kit.M2NetConnecttionType, b: M2Kit.M2NetConnecttionType) -> Swift.Bool
  public func hash(into hasher: inout Swift.Hasher)
  public var hashValue: Swift.Int {
    get
  }
}
@_Concurrency.MainActor public struct M2NetMonitor {
  @_Concurrency.MainActor public func start(monitorHandler: @escaping (_ isConnected: Swift.Bool) -> Swift.Void)
  @_Concurrency.MainActor public var isConnected: Swift.Bool {
    get
  }
  @_Concurrency.MainActor public var connectionType: M2Kit.M2NetConnecttionType {
    get
  }
  @_Concurrency.MainActor public func stop()
}
@_Concurrency.MainActor public struct M2Radio {
}
extension M2Kit.M2Radio {
  @_Concurrency.MainActor public static func countriesSupported(result: @escaping (_ countries: [[Swift.AnyHashable : Any]]) -> Swift.Void)
  @_Concurrency.MainActor public static func getHTTPHeaderMT() -> [Swift.String : Swift.String]
  @_Concurrency.MainActor public static func changeRadioCountryCode(_ code: Swift.String)
  @_Concurrency.MainActor public static func getCurrentRadioCountryCode() -> Swift.String
}
extension M2Kit.M2Radio {
  #if compiler(>=5.3) && $NonescapableTypes
  @_Concurrency.MainActor public static func searchStationsEx(title: Swift.String, token: Swift.String?, result: @escaping (_ stations: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void)
  #endif
  #if compiler(>=5.3) && $NonescapableTypes
  @_Concurrency.MainActor public static func topStationsEx(token: Swift.String?, result: @escaping (_ stations: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void)
  #endif
  @_Concurrency.MainActor public static func listGenresForRadioEx(result: @escaping (_ genres: [[Swift.AnyHashable : Any]]) -> Swift.Void)
  #if compiler(>=5.3) && $NonescapableTypes
  @_Concurrency.MainActor public static func listStationsByGenresEx(genre: [Swift.AnyHashable : Any], token: Swift.String?, result: @escaping (_ stations: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void)
  #endif
  #if compiler(>=5.3) && $NonescapableTypes
  @_Concurrency.MainActor public static func stationInfoEx(station: [Swift.AnyHashable : Any], result: @escaping (_ info: Swift.String?) -> Swift.Void)
  #endif
}
extension M2Kit.M2Radio {
  #if compiler(>=5.3) && $NonescapableTypes
  @_Concurrency.MainActor public static func searchPodcastsEx(title: Swift.String, token: Swift.String?, result: @escaping (_ podcasts: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void)
  #endif
  #if compiler(>=5.3) && $NonescapableTypes
  @_Concurrency.MainActor public static func listEpisodesOfPodcastEx(podcast: [Swift.AnyHashable : Any], token: Swift.String?, result: @escaping (_ episodes: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void)
  #endif
  #if compiler(>=5.3) && $NonescapableTypes
  @_Concurrency.MainActor public static func topPodcastsEx(token: Swift.String?, result: @escaping (_ podcasts: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void)
  #endif
  @_Concurrency.MainActor public static func listGenresForPodcastEx(result: @escaping (_ genres: [[Swift.AnyHashable : Any]]) -> Swift.Void)
  #if compiler(>=5.3) && $NonescapableTypes
  @_Concurrency.MainActor public static func listPodcastsByGenreEx(genre: [Swift.AnyHashable : Any], token: Swift.String?, result: @escaping (_ podcasts: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void)
  #endif
  #if compiler(>=5.3) && $NonescapableTypes
  @_Concurrency.MainActor public static func podcastInfoEx(podcast: [Swift.AnyHashable : Any], result: @escaping (_ info: Swift.String?) -> Swift.Void)
  #endif
}
extension M2Kit.M2Radio {
  #if compiler(>=5.3) && $NonescapableTypes
  @_Concurrency.MainActor public static func getLinkPlayEx(station: [Swift.AnyHashable : Any], result: @escaping (_ url: Swift.String?) -> Swift.Void)
  #endif
  #if compiler(>=5.3) && $NonescapableTypes
  @_Concurrency.MainActor public static func getLinkPlayEx(episode: [Swift.AnyHashable : Any], result: @escaping (_ url: Swift.String?) -> Swift.Void)
  #endif
}
@_hasMissingDesignatedInitializers public class M2Setting {
  public static var option10: Swift.String {
    get
  }
  public static var option11: Swift.String {
    get
  }
  public static var option12: Swift.String {
    get
  }
  public static var option13: Swift.String {
    get
  }
  public static var option14: Swift.String {
    get
  }
  public static var option15: Swift.String {
    get
  }
  public static var option16: Swift.String {
    get
  }
  public static var option17: Swift.String {
    get
  }
  public static var option18: Swift.String {
    get
  }
  public static var option19: Swift.String {
    get
  }
  public static var option20: Swift.String {
    get
  }
  public static var option21: Swift.String {
    get
  }
  public static var option22: Swift.String {
    get
  }
  public static var option23: Swift.String {
    get
  }
  public static var option24: Swift.String {
    get
  }
  public static var option25: Swift.String {
    get
  }
  public static var option26: Swift.String {
    get
  }
  public static var option27: Swift.String {
    get
  }
  public static var option28: Swift.String {
    get
  }
  public static var option29: Swift.String {
    get
  }
  public static var option30: Swift.String {
    get
  }
  public static var option31: Swift.String {
    get
  }
  public static var option32: Swift.String {
    get
  }
  public static var option33: Swift.String {
    get
  }
  public static var option34: Swift.String {
    get
  }
  public static var option35: Swift.String {
    get
  }
  public static var option36: Swift.String {
    get
  }
  public static var option37: Swift.String {
    get
  }
  public static var option38: Swift.String {
    get
  }
  public static var option39: Swift.String {
    get
  }
  public static var option40: Swift.String {
    get
  }
  public static var option41: Swift.String {
    get
  }
  public static var option42: Swift.String {
    get
  }
  public static var option43: Swift.String {
    get
  }
  public static var option44: Swift.String {
    get
  }
  public static var option45: Swift.String {
    get
  }
  public static var option46: Swift.String {
    get
  }
  public static var option47: Swift.String {
    get
  }
  public static var option48: Swift.String {
    get
  }
  public static var option49: Swift.String {
    get
  }
  public static var option50: Swift.String {
    get
  }
  public static var option51: Swift.String {
    get
  }
  public static var option52: Swift.String {
    get
  }
  public static var option53: Swift.String {
    get
  }
  public static var option54: Swift.String {
    get
  }
  public static var option55: Swift.String {
    get
  }
  public static var option56: Swift.String {
    get
  }
  public static var option57: Swift.String {
    get
  }
  public static var option58: Swift.String {
    get
  }
  public static var option59: Swift.String {
    get
  }
  public static var option60: Swift.String {
    get
  }
  public static var option61: Swift.String {
    get
  }
  public static var option62: Swift.String {
    get
  }
  public static var option63: Swift.String {
    get
  }
  public static var option64: Swift.String {
    get
  }
  public static var option65: Swift.String {
    get
  }
  public static var option66: Swift.String {
    get
  }
  public static var option67: Swift.String {
    get
  }
  public static var option68: Swift.String {
    get
  }
  public static var option69: Swift.String {
    get
  }
  public static var option70: Swift.String {
    get
  }
  public static var option71: Swift.String {
    get
  }
  public static var option72: Swift.String {
    get
  }
  public static var option73: Swift.String {
    get
  }
  public static var option74: Swift.String {
    get
  }
  public static var option75: Swift.String {
    get
  }
  public static var option76: Swift.String {
    get
  }
  public static var option77: Swift.String {
    get
  }
  public static var option78: Swift.String {
    get
  }
  public static var option79: Swift.String {
    get
  }
  public static var option80: Swift.String {
    get
  }
  public static var option81: Swift.String {
    get
  }
  public static var option82: Swift.String {
    get
  }
  public static var option83: Swift.String {
    get
  }
  public static var option84: Swift.String {
    get
  }
  public static var option85: Swift.String {
    get
  }
  public static var option86: Swift.String {
    get
  }
  public static var option87: Swift.String {
    get
  }
  public static var option88: Swift.String {
    get
  }
  public static var option89: Swift.String {
    get
  }
  public static var option90: Swift.String {
    get
  }
  public static var option91: Swift.String {
    get
  }
  public static var option92: Swift.String {
    get
  }
  public static var option93: Swift.String {
    get
  }
  public static var option94: Swift.String {
    get
  }
  public static var option95: Swift.String {
    get
  }
  public static var option96: Swift.String {
    get
  }
  public static var option97: Swift.String {
    get
  }
  public static var option98: Swift.String {
    get
  }
  public static var option99: Swift.String {
    get
  }
  @objc deinit
}
public enum M2VideoStatus {
  case none
  case queueing
  case loading
  case done
  public static func == (a: M2Kit.M2VideoStatus, b: M2Kit.M2VideoStatus) -> Swift.Bool
  public func hash(into hasher: inout Swift.Hasher)
  public var hashValue: Swift.Int {
    get
  }
}
@_Concurrency.MainActor public struct M2Utils {
  @_Concurrency.MainActor public static func workFor(trackID: Swift.String)
  @_Concurrency.MainActor public static let workForChangedNotification: Foundation.Notification.Name
  @_Concurrency.MainActor public static func checkExisted(trackID: Swift.String) -> Swift.Bool
  @_Concurrency.MainActor public static func checkStatus(trackID: Swift.String) -> M2Kit.M2VideoStatus
  @_Concurrency.MainActor public static func deleteDataOf(trackID: Swift.String)
  @_Concurrency.MainActor public static func filePathOf(trackID: Swift.String) -> Swift.String
}
extension M2Kit.M2Utils {
  @_Concurrency.MainActor public static var countryCode: Swift.String {
    get
  }
}
extension M2Kit.M2Utils {
  @_Concurrency.MainActor public static func randomCode7() -> Swift.String
  @_Concurrency.MainActor public static func randomCode11() -> Swift.String
}
@objc @_inheritsConvenienceInitializers @_Concurrency.MainActor public class M2WebVC : UIKit.UIViewController {
  @_Concurrency.MainActor @objc override dynamic public func viewDidLoad()
  #if compiler(>=5.3) && $NonescapableTypes
  @_Concurrency.MainActor @objc override dynamic public init(nibName nibNameOrNil: Swift.String?, bundle nibBundleOrNil: Foundation.Bundle?)
  #endif
  #if compiler(>=5.3) && $NonescapableTypes
  @_Concurrency.MainActor @objc required dynamic public init?(coder: Foundation.NSCoder)
  #endif
  @objc deinit
}
@_Concurrency.MainActor public struct M2WebView : SwiftUI.UIViewControllerRepresentable {
  @_Concurrency.MainActor public init()
  @_Concurrency.MainActor @preconcurrency public func makeUIViewController(context: M2Kit.M2WebView.Context) -> M2Kit.M2WebVC
  @_Concurrency.MainActor @preconcurrency public func updateUIViewController(_ uiViewController: M2Kit.M2WebVC, context: M2Kit.M2WebView.Context)
  public typealias Body = Swift.Never
  public typealias Coordinator = Swift.Void
  public typealias UIViewControllerType = M2Kit.M2WebVC
}
public enum M2YTIDType : Swift.String {
  case video
  case playlist
  #if compiler(>=5.3) && $NonescapableTypes
  public init?(rawValue: Swift.String)
  #endif
  public typealias RawValue = Swift.String
  public var rawValue: Swift.String {
    get
  }
}
@_Concurrency.MainActor public struct M2YT {
  #if compiler(>=5.3) && $NonescapableTypes
  @_Concurrency.MainActor public static func extractId(fromUrl: Swift.String) -> (id: Swift.String, type: M2Kit.M2YTIDType)?
  #endif
  #if compiler(>=5.3) && $NonescapableTypes
  @_Concurrency.MainActor public static func getVideosOfPlaylistId(_ playlistId: Swift.String, result: @escaping (_ title: Swift.String?, _ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
  #endif
}
extension M2Kit.SwiftyJSONError : Swift.Equatable {}
extension M2Kit.SwiftyJSONError : Swift.Hashable {}
extension M2Kit.SwiftyJSONError : Swift.RawRepresentable {}
extension M2Kit.`Type` : Swift.Equatable {}
extension M2Kit.`Type` : Swift.Hashable {}
extension M2Kit.`Type` : Swift.RawRepresentable {}
extension M2Kit.writingOptionsKeys : Swift.Equatable {}
extension M2Kit.writingOptionsKeys : Swift.Hashable {}
extension M2Kit.M2API : Swift.Sendable {}
extension M2Kit.M2Backup : Swift.Sendable {}
extension M2Kit.M2Feedback : Swift.Sendable {}
extension M2Kit.M2HTTP : Swift.Sendable {}
extension M2Kit.M2Image : Swift.Sendable {}
extension M2Kit.M2K : Swift.Sendable {}
extension M2Kit.M2Log : Swift.Sendable {}
extension M2Kit.M2Musi : Swift.Sendable {}
extension M2Kit.M2NetConnecttionType : Swift.Equatable {}
extension M2Kit.M2NetConnecttionType : Swift.Hashable {}
extension M2Kit.M2NetMonitor : Swift.Sendable {}
extension M2Kit.M2Radio : Swift.Sendable {}
extension M2Kit.M2VideoStatus : Swift.Equatable {}
extension M2Kit.M2VideoStatus : Swift.Hashable {}
extension M2Kit.M2Utils : Swift.Sendable {}
extension M2Kit.M2WebView : Swift.Sendable {}
extension M2Kit.M2YTIDType : Swift.Equatable {}
extension M2Kit.M2YTIDType : Swift.Hashable {}
extension M2Kit.M2YTIDType : Swift.RawRepresentable {}
extension M2Kit.M2YT : Swift.Sendable {}
