///
///
///
import { IncomingMessage, ServerResponse } from "http";
import { ContextOptions, ILogger, SkhailNetwork } from "@skhail/core";
import internal from "stream";
export interface IRequestHandler {
setLogger: (logger: ILogger) => void;
match: (url: string) => boolean;
prepare?: () => Promise;
cleanup?: () => Promise;
upgrade?: (server: SkhailNetwork, request: IncomingMessage, socket: internal.Duplex, head: Buffer) => void;
handle: (server: SkhailNetwork, request: IncomingMessage, response: ServerResponse) => Promise;
}