///
///
import { EventEmitter } from 'events';
import { Server } from 'http';
import { PathDefinition } from './@types';
import { METHODS } from './constants';
import { Route } from './Route';
/**
* @internal
*/
export type RouterOptions = {
host?: string;
};
/**
* @internal
* Internal Router
*
* Class in charge of receiving request, find the route definition and return the response
*
* @todo Refactoring
*/
export declare class Router {
private options;
private port;
private emitter;
private routes;
constructor(options: RouterOptions, emitter: EventEmitter);
addRoute(route: Route): Route;
removeRoute(route: Route): Route;
createRoute(method: METHODS, path: PathDefinition): Route;
clear(): void;
handle(server: Server): void;
getRoutes(): Set;
getHost(): string | undefined;
getPort(): number | null;
}