{
  "classes": [
    {
      "constants": [],
      "types": [
        {
          "lua_type": "type SignaturePart = {\n    text: string,\n    typeRef: boolean?,\n    hoverText: string?,\n    kind: (\"type\" | \"param\" | \"punct\" | \"keyword\" | \"name\" | \"plain\")?,\n}",
          "name": "SignaturePart",
          "tags": [],
          "source": {
            "path": "",
            "line": 8
          },
          "fields": [
            {
              "lua_type": "text: string",
              "name": "text",
              "desc": ""
            },
            {
              "lua_type": "typeRef: boolean?",
              "name": "typeRef",
              "desc": ""
            },
            {
              "lua_type": "hoverText: string?",
              "name": "hoverText",
              "desc": ""
            },
            {
              "lua_type": "kind: (\"type\" | \"param\" | \"punct\" | \"keyword\" | \"name\" | \"plain\")?",
              "name": "kind",
              "desc": ""
            }
          ],
          "desc": ""
        },
        {
          "lua_type": "type ParamMeta = {\n    name: string?,\n    type: string?,\n    typeParts: { SignaturePart }?,\n    description: string?,\n}",
          "name": "ParamMeta",
          "tags": [],
          "source": {
            "path": "",
            "line": 15
          },
          "fields": [
            {
              "lua_type": "name: string?",
              "name": "name",
              "desc": ""
            },
            {
              "lua_type": "type: string?",
              "name": "type",
              "desc": ""
            },
            {
              "lua_type": "typeParts: { SignaturePart }?",
              "name": "typeParts",
              "desc": ""
            },
            {
              "lua_type": "description: string?",
              "name": "description",
              "desc": ""
            }
          ],
          "desc": ""
        },
        {
          "lua_type": "type ReturnMeta = {\n    type: string?,\n    typeParts: { SignaturePart }?,\n    description: string?,\n}",
          "name": "ReturnMeta",
          "tags": [],
          "source": {
            "path": "",
            "line": 22
          },
          "fields": [
            {
              "lua_type": "type: string?",
              "name": "type",
              "desc": ""
            },
            {
              "lua_type": "typeParts: { SignaturePart }?",
              "name": "typeParts",
              "desc": ""
            },
            {
              "lua_type": "description: string?",
              "name": "description",
              "desc": ""
            }
          ],
          "desc": ""
        },
        {
          "lua_type": "type SignatureMeta = {\n    name: string,\n    owner: string?,\n    isMethod: boolean?,\n    generics: { string }?,\n    params: { ParamMeta }?,\n    returns: { ReturnMeta }?,\n}",
          "name": "SignatureMeta",
          "tags": [],
          "source": {
            "path": "",
            "line": 28
          },
          "fields": [
            {
              "lua_type": "name: string",
              "name": "name",
              "desc": ""
            },
            {
              "lua_type": "owner: string?",
              "name": "owner",
              "desc": ""
            },
            {
              "lua_type": "isMethod: boolean?",
              "name": "isMethod",
              "desc": ""
            },
            {
              "lua_type": "generics: { string }?",
              "name": "generics",
              "desc": ""
            },
            {
              "lua_type": "params: { ParamMeta }?",
              "name": "params",
              "desc": ""
            },
            {
              "lua_type": "returns: { ReturnMeta }?",
              "name": "returns",
              "desc": ""
            }
          ],
          "desc": ""
        },
        {
          "lua_type": "type FuncDoc = {\n    name: string,\n    doc: string?,\n    location: luau.Location,\n    params: { string }?,\n    returnStr: string?,\n    parsedDoc: ParsedDoc?,\n    yields: boolean,\n    isMethod: boolean,\n    selfType: string?,\n    owner: string?,\n    generics: { string }?,\n    signature: string,\n    signatureFull: string,\n    signatureParts: { SignaturePart }?,\n    signatureMeta: SignatureMeta?,\n}",
          "name": "FuncDoc",
          "tags": [],
          "source": {
            "path": "",
            "line": 40
          },
          "fields": [
            {
              "lua_type": "name: string",
              "name": "name",
              "desc": ""
            },
            {
              "lua_type": "doc: string?",
              "name": "doc",
              "desc": ""
            },
            {
              "lua_type": "location: luau.Location",
              "name": "location",
              "desc": ""
            },
            {
              "lua_type": "params: { string }?",
              "name": "params",
              "desc": ""
            },
            {
              "lua_type": "returnStr: string?",
              "name": "returnStr",
              "desc": ""
            },
            {
              "lua_type": "parsedDoc: ParsedDoc?",
              "name": "parsedDoc",
              "desc": ""
            },
            {
              "lua_type": "yields: boolean",
              "name": "yields",
              "desc": ""
            },
            {
              "lua_type": "isMethod: boolean",
              "name": "isMethod",
              "desc": ""
            },
            {
              "lua_type": "selfType: string?",
              "name": "selfType",
              "desc": ""
            },
            {
              "lua_type": "owner: string?",
              "name": "owner",
              "desc": ""
            },
            {
              "lua_type": "generics: { string }?",
              "name": "generics",
              "desc": ""
            },
            {
              "lua_type": "signature: string",
              "name": "signature",
              "desc": ""
            },
            {
              "lua_type": "signatureFull: string",
              "name": "signatureFull",
              "desc": ""
            },
            {
              "lua_type": "signatureParts: { SignaturePart }?",
              "name": "signatureParts",
              "desc": ""
            },
            {
              "lua_type": "signatureMeta: SignatureMeta?",
              "name": "signatureMeta",
              "desc": ""
            }
          ],
          "desc": "Unified doc record for functions, methods, and properties.\nUsed both as top-level functions and as class members/metamethods.\nProperties (non-function type table fields) have params=nil."
        },
        {
          "lua_type": "type TypeDoc = {\n    name: string,\n    exported: boolean,\n    kind: \"class\" | \"table\" | \"alias\",\n    doc: string?,\n    signatureFull: string?,\n    signatureParts: { SignaturePart }?,\n    location: luau.Location,\n    members: { FuncDoc }?,\n    generics: { string }?,\n    parsedDoc: ParsedDoc?,\n    classImplTable: string?,\n    classFieldsType: string?,\n    isPrimaryExport: boolean?,\n    metamethods: { FuncDoc }?,\n    aliasedTypeNode: luau.AstType?,\n}",
          "name": "TypeDoc",
          "tags": [],
          "source": {
            "path": "",
            "line": 58
          },
          "fields": [
            {
              "lua_type": "name: string",
              "name": "name",
              "desc": ""
            },
            {
              "lua_type": "exported: boolean",
              "name": "exported",
              "desc": ""
            },
            {
              "lua_type": "kind: \"class\" | \"table\" | \"alias\"",
              "name": "kind",
              "desc": ""
            },
            {
              "lua_type": "doc: string?",
              "name": "doc",
              "desc": ""
            },
            {
              "lua_type": "signatureFull: string?",
              "name": "signatureFull",
              "desc": ""
            },
            {
              "lua_type": "signatureParts: { SignaturePart }?",
              "name": "signatureParts",
              "desc": ""
            },
            {
              "lua_type": "location: luau.Location",
              "name": "location",
              "desc": ""
            },
            {
              "lua_type": "members: { FuncDoc }?",
              "name": "members",
              "desc": ""
            },
            {
              "lua_type": "generics: { string }?",
              "name": "generics",
              "desc": ""
            },
            {
              "lua_type": "parsedDoc: ParsedDoc?",
              "name": "parsedDoc",
              "desc": ""
            },
            {
              "lua_type": "classImplTable: string?",
              "name": "classImplTable",
              "desc": ""
            },
            {
              "lua_type": "classFieldsType: string?",
              "name": "classFieldsType",
              "desc": ""
            },
            {
              "lua_type": "isPrimaryExport: boolean?",
              "name": "isPrimaryExport",
              "desc": ""
            },
            {
              "lua_type": "metamethods: { FuncDoc }?",
              "name": "metamethods",
              "desc": ""
            },
            {
              "lua_type": "aliasedTypeNode: luau.AstType?",
              "name": "aliasedTypeNode",
              "desc": ""
            }
          ],
          "desc": ""
        },
        {
          "lua_type": "type ConstDoc = {\n    name: string,\n    value: string,\n    doc: string?,\n    groupTitle: string?,\n    owner: string?,\n}",
          "name": "ConstDoc",
          "tags": [],
          "source": {
            "path": "",
            "line": 76
          },
          "fields": [
            {
              "lua_type": "name: string",
              "name": "name",
              "desc": ""
            },
            {
              "lua_type": "value: string",
              "name": "value",
              "desc": ""
            },
            {
              "lua_type": "doc: string?",
              "name": "doc",
              "desc": ""
            },
            {
              "lua_type": "groupTitle: string?",
              "name": "groupTitle",
              "desc": ""
            },
            {
              "lua_type": "owner: string?",
              "name": "owner",
              "desc": ""
            }
          ],
          "desc": ""
        },
        {
          "lua_type": "type ExtractedDocs = {\n    types: { TypeDoc },\n    functions: { FuncDoc },\n    constants: { ConstDoc },\n    moduleDescription: string?,\n    moduleRoot: string?,\n}",
          "name": "ExtractedDocs",
          "tags": [],
          "source": {
            "path": "",
            "line": 84
          },
          "fields": [
            {
              "lua_type": "types: { TypeDoc }",
              "name": "types",
              "desc": ""
            },
            {
              "lua_type": "functions: { FuncDoc }",
              "name": "functions",
              "desc": ""
            },
            {
              "lua_type": "constants: { ConstDoc }",
              "name": "constants",
              "desc": ""
            },
            {
              "lua_type": "moduleDescription: string?",
              "name": "moduleDescription",
              "desc": ""
            },
            {
              "lua_type": "moduleRoot: string?",
              "name": "moduleRoot",
              "desc": ""
            }
          ],
          "desc": ""
        },
        {
          "lua_type": "type RawFuncSig = {\n    params: { string },\n    paramNames: { string? },\n    paramTypeParts: { { SignaturePart }? },\n    paramTypeNodes: { (luau.AstType | luau.AstTypePack)? },\n    retStr: string?,\n    retNode: (luau.AstType | luau.AstTypePack)?,\n    retParts: { SignaturePart }?,\n    isMethod: boolean,\n    selfType: string?,\n    generics: { string }?,\n}",
          "name": "RawFuncSig",
          "tags": [],
          "source": {
            "path": "",
            "line": 93
          },
          "fields": [
            {
              "lua_type": "params: { string }",
              "name": "params",
              "desc": ""
            },
            {
              "lua_type": "paramNames: { string? }",
              "name": "paramNames",
              "desc": ""
            },
            {
              "lua_type": "paramTypeParts: { { SignaturePart }? }",
              "name": "paramTypeParts",
              "desc": ""
            },
            {
              "lua_type": "paramTypeNodes: { (luau.AstType | luau.AstTypePack)? }",
              "name": "paramTypeNodes",
              "desc": ""
            },
            {
              "lua_type": "retStr: string?",
              "name": "retStr",
              "desc": ""
            },
            {
              "lua_type": "retNode: (luau.AstType | luau.AstTypePack)?",
              "name": "retNode",
              "desc": ""
            },
            {
              "lua_type": "retParts: { SignaturePart }?",
              "name": "retParts",
              "desc": ""
            },
            {
              "lua_type": "isMethod: boolean",
              "name": "isMethod",
              "desc": ""
            },
            {
              "lua_type": "selfType: string?",
              "name": "selfType",
              "desc": ""
            },
            {
              "lua_type": "generics: { string }?",
              "name": "generics",
              "desc": ""
            }
          ],
          "desc": "Internal struct holding everything extracted from an ExprFunction node."
        },
        {
          "lua_type": "type CommentBlock = {\n    text: string,\n    endLine: number,\n}",
          "name": "CommentBlock",
          "tags": [],
          "source": {
            "path": "",
            "line": 106
          },
          "fields": [
            {
              "lua_type": "text: string",
              "name": "text",
              "desc": ""
            },
            {
              "lua_type": "endLine: number",
              "name": "endLine",
              "desc": ""
            }
          ],
          "desc": ""
        }
      ],
      "name": "@eryx/eryxdoc/extract/types",
      "tags": [],
      "functions": [],
      "properties": [],
      "source": {
        "path": "",
        "line": 0
      },
      "desc": "Shared type definitions for the documentation extraction pipeline."
    }
  ]
}