---@diagnostic disable: missing-return, lowercase-global ---@class {{.ClassName}} {{range .Fields -}} ---@field {{.Name}} {{.Type}} {{.Comment}} {{end -}} {{.ClassName}} = { {{$n := len .Methods -}} {{$methods := len .Methods -}} {{range $index, $method := .Methods -}} ---@param self {{$.ClassName}} {{range $param := $method.Params -}} ---@param {{.Name}} {{.Type}} {{.Comment}} {{end -}} {{range $ret := $method.Returns -}} ---@return {{.Type}} {{if ne .Comment ""}}#{{.Comment}}{{end}} {{end -}} {{.Name}} = function(self{{if gt (len .Params) 0}}, {{range $index, $param := .Params}}{{if $index}}, {{end}}{{$param.Name}}{{end}}{{end}}) end, {{- if ne (plus1 $index) $n}} {{end}}{{end}} } -- Define class globally so it's "available" to other files ---@type {{$.ClassName}} {{range .Constructors -}} ---@overload fun({{range $index, $param := .Params}}{{if $index}}, {{end}}{{$param.Name}}: {{$param.Type}}{{end}}): {{$.ClassName}} {{end -}} {{$.ClassName}} = nil