import { Elysia } from 'elysia';
import { Request, Response, NextFunction } from 'express';
import { MockRequest, MockResponse } from 'node-mocks-http';

type ConnectMiddleware = (req: MockRequest<Request>, res: MockResponse<Response>, next: NextFunction) => unknown;

declare function connect(...middlewares: ConnectMiddleware[]): Elysia<"", {
    decorator: {};
    store: {};
    derive: {};
    resolve: {};
}, {
    typebox: {};
    error: {};
}, {
    schema: {};
    standaloneSchema: {};
    macro: {};
    macroFn: {};
    parser: {};
}, {}, {
    derive: {};
    resolve: {};
    schema: {};
    standaloneSchema: {};
}, {
    derive: {};
    resolve: {};
    schema: {};
    standaloneSchema: {};
}>;

export { connect };
