declare namespace java {
    namespace lang {
        // @ts-ignore
         class ReflectiveOperationException extends java.lang.Exception {
            /**
             * Constructs a new exception with {@code null} as its detail
             * message.  The cause is not initialized, and may subsequently be
             * initialized by a call to {@link #initCause}.
             */
            // @ts-ignore
            constructor()
            /**
             * Constructs a new exception with the specified detail message.
             * The cause is not initialized, and may subsequently be
             * initialized by a call to {@link #initCause}.
             */
            // @ts-ignore
            constructor(message: string)
            /**
             * Constructs a new exception with the specified detail message
             * and cause.
             * <p>Note that the detail message associated with
             * {@code cause} is <em>not</em> automatically incorporated in
             * this exception's detail message.
             */
            // @ts-ignore
            constructor(message: string, cause: java.lang.Throwable)
            /**
             * Constructs a new exception with the specified cause and a detail
             * message of {@code (cause==null ? null : cause.toString())} (which
             * typically contains the class and detail message of {@code cause}).
             */
            // @ts-ignore
            constructor(cause: java.lang.Throwable)
        }
    }
}
