import { Url, MiddlewareInstance, RouteInstance } from '../@types';
import type { Response } from './Response';
import type { Request } from './Request';
export declare class Engine {
    private resolved;
    private request;
    private response;
    private middlewares;
    private method;
    private url;
    constructor(url: Url, method: string, request: Request, response: Response);
    /**
     * capture route parameters
     */
    private captureParameter;
    /**
     * reduce parameters to object value
     * @param parameters
     */
    private reduceParams;
    /**
     * runs through the route, and captures parameters
     */
    private captureParameters;
    /**
     * check if route url matches request url
     */
    private matchUrl;
    /**
     * asynchronously runs the middleware
     */
    private runMiddlewares;
    /**
     * asynchronously runs the matching route
     */
    private runRoute;
    /**
     * processes the route
     */
    process(route: RouteInstance): Promise<boolean>;
    /**
     * sets or overrides the existing middlewares
     */
    use(middlewares: MiddlewareInstance[]): this;
}
