return {
  defines = {
    {
      name = "RCAMERA_H",
      type = "GUARD",
      value = "",
      description = ""
    },
    {
      name = "__declspec(x)",
      type = "MACRO",
      value = "__attribute__((x))",
      description = ""
    },
    {
      name = "RLAPI",
      type = "UNKNOWN",
      value = "__declspec(dllexport)",
      description = "We are building the library as a Win32 shared library (.dll)"
    },
    {
      name = "CAMERA_CULL_DISTANCE_NEAR",
      type = "DOUBLE",
      value = 0.01,
      description = ""
    },
    {
      name = "CAMERA_CULL_DISTANCE_FAR",
      type = "DOUBLE",
      value = 1000.0,
      description = ""
    },
    {
      name = "CAMERA_MOVE_SPEED",
      type = "FLOAT",
      value = 5.4,
      description = "Units per second"
    },
    {
      name = "CAMERA_ROTATION_SPEED",
      type = "FLOAT",
      value = 0.03,
      description = ""
    },
    {
      name = "CAMERA_PAN_SPEED",
      type = "FLOAT",
      value = 0.2,
      description = ""
    },
    {
      name = "CAMERA_MOUSE_MOVE_SENSITIVITY",
      type = "FLOAT",
      value = 0.003,
      description = ""
    },
    {
      name = "CAMERA_ORBITAL_SPEED",
      type = "FLOAT",
      value = 0.5,
      description = "Radians per second"
    }
  },
  structs = {
    {
      name = "Vector2",
      description = "Vector2, 2 components",
      fields = {
        {
          type = "float",
          name = "x",
          description = "Vector x component"
        },
        {
          type = "float",
          name = "y",
          description = "Vector y component"
        }
      }
    },
    {
      name = "Vector3",
      description = "Vector3, 3 components",
      fields = {
        {
          type = "float",
          name = "x",
          description = "Vector x component"
        },
        {
          type = "float",
          name = "y",
          description = "Vector y component"
        },
        {
          type = "float",
          name = "z",
          description = "Vector z component"
        }
      }
    },
    {
      name = "Matrix",
      description = "Matrix, 4x4 components, column major, OpenGL style, right-handed",
      fields = {
        {
          type = "float",
          name = "m0",
          description = "Matrix first row (4 components)"
        },
        {
          type = "float",
          name = "m4",
          description = "Matrix first row (4 components)"
        },
        {
          type = "float",
          name = "m8",
          description = "Matrix first row (4 components)"
        },
        {
          type = "float",
          name = "m12",
          description = "Matrix first row (4 components)"
        },
        {
          type = "float",
          name = "m1",
          description = "Matrix second row (4 components)"
        },
        {
          type = "float",
          name = "m5",
          description = "Matrix second row (4 components)"
        },
        {
          type = "float",
          name = "m9",
          description = "Matrix second row (4 components)"
        },
        {
          type = "float",
          name = "m13",
          description = "Matrix second row (4 components)"
        },
        {
          type = "float",
          name = "m2",
          description = "Matrix third row (4 components)"
        },
        {
          type = "float",
          name = "m6",
          description = "Matrix third row (4 components)"
        },
        {
          type = "float",
          name = "m10",
          description = "Matrix third row (4 components)"
        },
        {
          type = "float",
          name = "m14",
          description = "Matrix third row (4 components)"
        },
        {
          type = "float",
          name = "m3",
          description = "Matrix fourth row (4 components)"
        },
        {
          type = "float",
          name = "m7",
          description = "Matrix fourth row (4 components)"
        },
        {
          type = "float",
          name = "m11",
          description = "Matrix fourth row (4 components)"
        },
        {
          type = "float",
          name = "m15",
          description = "Matrix fourth row (4 components)"
        }
      }
    },
    {
      name = "Camera3D",
      description = "Camera type, defines a camera position/orientation in 3d space",
      fields = {
        {
          type = "Vector3",
          name = "position",
          description = "Camera position"
        },
        {
          type = "Vector3",
          name = "target",
          description = "Camera target it looks-at"
        },
        {
          type = "Vector3",
          name = "up",
          description = "Camera up vector (rotation over its axis)"
        },
        {
          type = "float",
          name = "fovy",
          description = "Camera field-of-view apperture in Y (degrees) in perspective, used as near plane width in orthographic"
        },
        {
          type = "int",
          name = "projection",
          description = "Camera projection type: CAMERA_PERSPECTIVE or CAMERA_ORTHOGRAPHIC"
        }
      }
    }
  },
  aliases = {
    {
      type = "Camera3D",
      name = "Camera",
      description = "Camera type fallback, defaults to Camera3D"
    }
  },
  enums = {
    {
      name = "CameraProjection",
      description = "Camera projection",
      values = {
        {
          name = "CAMERA_PERSPECTIVE",
          value = 0,
          description = "Perspective projection"
        },
        {
          name = "CAMERA_ORTHOGRAPHIC",
          value = 1,
          description = "Orthographic projection"
        }
      }
    },
    {
      name = "CameraMode",
      description = "Camera system modes",
      values = {
        {
          name = "CAMERA_CUSTOM",
          value = 0,
          description = "Camera custom, controlled by user (UpdateCamera() does nothing)"
        },
        {
          name = "CAMERA_FREE",
          value = 1,
          description = "Camera free mode"
        },
        {
          name = "CAMERA_ORBITAL",
          value = 2,
          description = "Camera orbital, around target, zoom supported"
        },
        {
          name = "CAMERA_FIRST_PERSON",
          value = 3,
          description = "Camera first person"
        },
        {
          name = "CAMERA_THIRD_PERSON",
          value = 4,
          description = "Camera third person"
        }
      }
    }
  },
  callbacks = {
  },
  functions = {
    {
      name = "GetCameraForward",
      description = "",
      returnType = "Vector3",
      params = {
        {type = "Camera *", name = "camera"}
      }
    },
    {
      name = "GetCameraUp",
      description = "",
      returnType = "Vector3",
      params = {
        {type = "Camera *", name = "camera"}
      }
    },
    {
      name = "GetCameraRight",
      description = "",
      returnType = "Vector3",
      params = {
        {type = "Camera *", name = "camera"}
      }
    },
    {
      name = "CameraMoveForward",
      description = "",
      returnType = "void",
      params = {
        {type = "Camera *", name = "camera"},
        {type = "float", name = "distance"},
        {type = "bool", name = "moveInWorldPlane"}
      }
    },
    {
      name = "CameraMoveUp",
      description = "",
      returnType = "void",
      params = {
        {type = "Camera *", name = "camera"},
        {type = "float", name = "distance"}
      }
    },
    {
      name = "CameraMoveRight",
      description = "",
      returnType = "void",
      params = {
        {type = "Camera *", name = "camera"},
        {type = "float", name = "distance"},
        {type = "bool", name = "moveInWorldPlane"}
      }
    },
    {
      name = "CameraMoveToTarget",
      description = "",
      returnType = "void",
      params = {
        {type = "Camera *", name = "camera"},
        {type = "float", name = "delta"}
      }
    },
    {
      name = "CameraYaw",
      description = "",
      returnType = "void",
      params = {
        {type = "Camera *", name = "camera"},
        {type = "float", name = "angle"},
        {type = "bool", name = "rotateAroundTarget"}
      }
    },
    {
      name = "CameraPitch",
      description = "",
      returnType = "void",
      params = {
        {type = "Camera *", name = "camera"},
        {type = "float", name = "angle"},
        {type = "bool", name = "lockView"},
        {type = "bool", name = "rotateAroundTarget"},
        {type = "bool", name = "rotateUp"}
      }
    },
    {
      name = "CameraRoll",
      description = "",
      returnType = "void",
      params = {
        {type = "Camera *", name = "camera"},
        {type = "float", name = "angle"}
      }
    },
    {
      name = "GetCameraViewMatrix",
      description = "",
      returnType = "Matrix",
      params = {
        {type = "Camera *", name = "camera"}
      }
    },
    {
      name = "GetCameraProjectionMatrix",
      description = "",
      returnType = "Matrix",
      params = {
        {type = "Camera*", name = "camera"},
        {type = "float", name = "aspect"}
      }
    }
  }
}
