Extension [ <persistent> extension #66 lua version 2.0.2 ] {

  - Constants [8] {
    Constant [ integer LUA_OK ] { 0 }
    Constant [ integer LUA_YIELD ] { 1 }
    Constant [ integer LUA_ERRRUN ] { 2 }
    Constant [ integer LUA_ERRSYNTAX ] { 3 }
    Constant [ integer LUA_ERRMEM ] { 4 }
    Constant [ integer LUA_ERRGCMM ] { 5 }
    Constant [ integer LUA_ERRERR ] { 6 }
    Constant [ integer LUA_ERRFILE ] { 7 }
  }

  - Classes [3] {
    Class [ <internal:lua> final class Lua ] {

      - Constants [1] {
        Constant [ string LUA_VERSION ] { Lua 5.3.2 }
      }

      - Static properties [1] {
        Property [ private static $_callbacks ]
      }

      - Static methods [0] {
      }

      - Properties [0] {
      }

      - Methods [8] {
        Method [ <internal:lua, ctor> public method __construct ] {
        }

        Method [ <internal:lua> public method eval ] {

          - Parameters [1] {
            Parameter #0 [ <required> $statements ]
          }
        }

        Method [ <internal:lua> public method include ] {

          - Parameters [1] {
            Parameter #0 [ <required> $file ]
          }
        }

        Method [ <internal:lua> public method call ] {

          - Parameters [2] {
            Parameter #0 [ <required> $method ]
            Parameter #1 [ <required> $args ]
          }
        }

        Method [ <internal:lua> public method assign ] {

          - Parameters [2] {
            Parameter #0 [ <required> $name ]
            Parameter #1 [ <required> $value ]
          }
        }

        Method [ <internal:lua> public method getVersion ] {
        }

        Method [ <internal:lua> public method registerCallback ] {

          - Parameters [2] {
            Parameter #0 [ <required> $name ]
            Parameter #1 [ <required> $function ]
          }
        }

        Method [ <internal:lua> public method __call ] {

          - Parameters [2] {
            Parameter #0 [ <required> $method ]
            Parameter #1 [ <required> $args ]
          }
        }
      }
    }

    Class [ <internal:lua> final class LuaClosure ] {

      - Constants [0] {
      }

      - Static properties [0] {
      }

      - Static methods [0] {
      }

      - Properties [2] {
        Property [ <default> private $_closure ]
        Property [ <default> private $_lua_object ]
      }

      - Methods [5] {
        Method [ <internal:lua, ctor> private method __construct ] {
        }

        Method [ <internal:lua, dtor> public method __destruct ] {
        }

        Method [ <internal:lua> private method __clone ] {
        }

        Method [ <internal:lua> public method invoke ] {

          - Parameters [2] {
            Parameter #0 [ <required> $arg ]
            Parameter #1 [ <optional> $... ]
          }
        }

        Method [ <internal:lua> public method __invoke ] {

          - Parameters [2] {
            Parameter #0 [ <required> $arg ]
            Parameter #1 [ <optional> $... ]
          }
        }
      }
    }

    Class [ <internal:lua> class LuaException extends Exception implements Throwable ] {

      - Constants [0] {
      }

      - Static properties [0] {
      }

      - Static methods [0] {
      }

      - Properties [4] {
        Property [ <default> protected $message ]
        Property [ <default> protected $code ]
        Property [ <default> protected $file ]
        Property [ <default> protected $line ]
      }

      - Methods [10] {
        Method [ <internal:Core, inherits Exception, ctor> public method __construct ] {

          - Parameters [3] {
            Parameter #0 [ <optional> $message ]
            Parameter #1 [ <optional> $code ]
            Parameter #2 [ <optional> $previous ]
          }
        }

        Method [ <internal:Core, inherits Exception> public method __wakeup ] {
        }

        Method [ <internal:Core, inherits Exception, prototype Throwable> final public method getMessage ] {
        }

        Method [ <internal:Core, inherits Exception, prototype Throwable> final public method getCode ] {
        }

        Method [ <internal:Core, inherits Exception, prototype Throwable> final public method getFile ] {
        }

        Method [ <internal:Core, inherits Exception, prototype Throwable> final public method getLine ] {
        }

        Method [ <internal:Core, inherits Exception, prototype Throwable> final public method getTrace ] {
        }

        Method [ <internal:Core, inherits Exception, prototype Throwable> final public method getPrevious ] {
        }

        Method [ <internal:Core, inherits Exception, prototype Throwable> final public method getTraceAsString ] {
        }

        Method [ <internal:Core, inherits Exception, prototype Throwable> public method __toString ] {
        }
      }
    }
  }
}