{
  "classes": [
    {
      "constants": [],
      "types": [
        {
          "lua_type": "type SignaturePart = types.SignaturePart",
          "name": "SignaturePart",
          "tags": [],
          "source": {
            "path": "",
            "line": 25
          },
          "fields": [],
          "desc": ""
        },
        {
          "lua_type": "type ParamMeta = types.ParamMeta",
          "name": "ParamMeta",
          "tags": [],
          "source": {
            "path": "",
            "line": 26
          },
          "fields": [],
          "desc": ""
        },
        {
          "lua_type": "type ReturnMeta = types.ReturnMeta",
          "name": "ReturnMeta",
          "tags": [],
          "source": {
            "path": "",
            "line": 27
          },
          "fields": [],
          "desc": ""
        },
        {
          "lua_type": "type SignatureMeta = types.SignatureMeta",
          "name": "SignatureMeta",
          "tags": [],
          "source": {
            "path": "",
            "line": 28
          },
          "fields": [],
          "desc": ""
        },
        {
          "lua_type": "type FuncDoc = types.FuncDoc",
          "name": "FuncDoc",
          "tags": [],
          "source": {
            "path": "",
            "line": 29
          },
          "fields": [],
          "desc": ""
        },
        {
          "lua_type": "type TypeDoc = types.TypeDoc",
          "name": "TypeDoc",
          "tags": [],
          "source": {
            "path": "",
            "line": 30
          },
          "fields": [],
          "desc": ""
        },
        {
          "lua_type": "type ConstDoc = types.ConstDoc",
          "name": "ConstDoc",
          "tags": [],
          "source": {
            "path": "",
            "line": 31
          },
          "fields": [],
          "desc": ""
        },
        {
          "lua_type": "type ExtractedDocs = types.ExtractedDocs",
          "name": "ExtractedDocs",
          "tags": [],
          "source": {
            "path": "",
            "line": 32
          },
          "fields": [],
          "desc": ""
        }
      ],
      "name": "@eryx/eryxdoc/extract",
      "tags": [],
      "functions": [
        {
          "source": {
            "path": "",
            "line": 147
          },
          "is_method": false,
          "signature": "extract.extract(result: luau.ParseResult, sourceLines: { string }) → ExtractedDocs",
          "owner": "extract",
          "desc": "",
          "tags": [],
          "name": "extract",
          "return_str": "ExtractedDocs",
          "function_type": "Function",
          "returns": [
            {
              "lua_type": "ExtractedDocs",
              "desc": ""
            }
          ],
          "params": [
            {
              "lua_type": "luau.ParseResult",
              "name": "result",
              "desc": ""
            },
            {
              "lua_type": "{ string }",
              "name": "sourceLines",
              "desc": ""
            }
          ]
        }
      ],
      "properties": [],
      "source": {
        "path": "",
        "line": 0
      },
      "desc": "Public API for extracting structured documentation from a Luau parse result.\n\nUsage:\n\n```luau\nlocal extract = require(\"eryxdoc/extract\")\nlocal luau = require(\"@eryx/luau\")\n\nlocal source = fs.openSync(\"mymodule.luau\"):readSync()\nlocal result = luau.parse(source, { captureComments = true })\nlocal docs = extract.extract(result, string.split(source, \"\\n\"))\n-- docs.functions, docs.types, docs.constants, docs.moduleDescription\n```"
    }
  ]
}