export type Source = {
	path: string,
	line: number,
}

export type FunctionParam = {
	name: string,
	desc: string,
	lua_type: string,
}

export type FunctionReturn = {
	desc: string,
	lua_type: string,
}

export type Function = {
	name: string,
	desc: string,
	params: { FunctionParam },
	returns: { FunctionReturn },
	function_type: string,
	tags: { string }?,
	source: Source,
}

export type Property = {
	name: string,
	desc: string,
	lua_type: string,
	tags: { string }?,
	source: Source,
}

export type Type = {
	name: string,
	desc: string,
	source: Source,
}

export type Item = {
	name: string,
	desc: string,
	functions: { Function },
	properties: { Property },
	types: { Type },
	source: Source,
}

return {}