KOA ssl http2 server hangs on startup
package.json
```
    "http": "0.0.0",
    "http-proxy": "1.17.0",
    "http-status-codes": "1.3.0",
    "http2": "3.3.7",
    "https": "1.0.0",
    "koa": "^2.6.2",
    "koa-body": "4.0.4",
    "koa-json": "2.0.2",
    "koa-passport": "4.1.1",
    "koa-router": "7.4.0",
    "koa-session": "^5.10.0",
    "koa-static": "5.0.0",
    "koa2-cors": "2.0.6",
    "@types/koa": "2.0.47",
    "@types/koa-passport": "4.0.2",
    "@types/koa-router": "7.0.35",
    "@types/koa-session": "5.7.4",
    "@types/koa-static": "4.0.0",
    "@types/koa2-cors": "2.0.1",

    "@types/node": "10.12.10",
```


KOA ssl http2 server hangs on startup

Here is my snippet... it runs fine using non-ssl http though

            // fails hangs
            const options = {
                allowHTTP1: true
            }

            return http2
                .createServer(options, this.app.callback())
                .listen(443, (err) => {
                    if (err) {
                        throw new Error(err)
                    }
                    console.log('Listening on port: ' + 443 + '.')
                })

So this.app.callback() ...
THIS is a class that extends Koa 
```
class KoaServer extends Koa {
    protected static server: KoaServer = null
    public app: KoaServer = null
    public static getInstance(): KoaServer {
        if (KoaServer.server === null) {
            KoaServer.server = new KoaServer()
        }
        return KoaServer.server
    }
...
```

and I perform all my this.app.use(...) in functions earlier at construct
again it runs nicely using straight http

The problem I am having here is wiring in the listener callback

FACT there are two callback signatures... koa and node
I need @types/node for my project and Im using koa too obviously
But there is an import collision on the callback signature

```
`import * as http2 from 'http2'`

this.app.koaListen(http2ListenOptions);

    koaListen(...args) { 
            const options = {  allowHTTP1: true  }
            return http2
                .createServer(options, this.app.callback())
                .listen(443, (err) => {
                    if (err) {
                        throw new Error(err)
                    }
                    console.log('Listening on port: ' + 443 + '.')
                })
    }
```
this line of code http2.createServer(options, this.app.callback())

Isnt the callback suppose to operate the koa/index.d.ts type runtime as opposed to the node/index.d.ts type runtime ?

the second parameter at runtime goes to the node.js TYPE instead of the koa TYPE signature
and it just hangs

Im using webstorm and when I hit F3 (navigate to type definition) on createServer it lands me inside node/index.d.ts
`    export function createServer(options: ServerOptions, onRequestHandler?: (request: Http2ServerRequest, response: Http2ServerResponse) => void): Http2Server;`
same thing for the http2 variable

the onRequestHandler is the guy for the callback and it wants two parameters which looks like they should match up

when I believe I should expect it to land inside the koa/index.d.ts file for the appropriate signature

and the koa/index.d.ts signature seems different
`    callback(): (req: IncomingMessage | Http2ServerRequest, res: ServerResponse | Http2ServerResponse) => void;`

I dont want to uninstall @types/node because my project needs that

what can I do to make this server fly the callback parameter and the whole call to createServer off of http2 seem signatures for callback contended

do I need to try a new call signature 

any help is appreciated

regards
