PUSH [===[---@meta package

]===]
if VERSION >=5.4 then
PUSH [===[
]===]
DES 'require>5.4'
PUSH [===[
---@param modname string
---@return unknown
---@return unknown loaderdata
function require(modname) end
]===]
else
PUSH [===[
]===]
DES 'require<5.3'
PUSH [===[
---@param modname string
---@return unknown
function require(modname) end
]===]
end
PUSH [===[

]===]
DES 'package'
PUSH [===[
---@class packagelib
]===]
DES 'package.cpath'
PUSH [===[
---@field cpath     string
]===]
DES 'package.loaded'
PUSH [===[
---@field loaded    table
]===]
DES 'package.path'
PUSH [===[
---@field path      string
]===]
DES 'package.preload'
PUSH [===[
---@field preload   table
package = {}

]===]
DES 'package.config'
PUSH [===[
package.config = [[
/
;
?
!
-]]

---@version <5.1
]===]
DES 'package.loaders'
PUSH [===[
package.loaders = {}

]===]
DES 'package.loadlib'
PUSH [===[
---@param libname string
---@param funcname string
---@return any
function package.loadlib(libname, funcname) end

]===]
DES 'package.searchers'
PUSH [===[
---@version >5.2
package.searchers = {}

]===]
DES 'package.searchpath'
PUSH [===[
---@version >5.2,JIT
---@param name string
---@param path string
---@param sep? string
---@param rep? string
---@return string? filename
---@return string? errmsg
---@nodiscard
function package.searchpath(name, path, sep, rep) end

]===]
DES 'package.seeall'
PUSH [===[
---@version <5.1
---@param module table
function package.seeall(module) end

return package
]===]