import { Request } from './Request';
import { Response, TSupportedResponseTypes } from './Response';
import { IRequestResponse } from './IRequestResponse';
import { Application } from './Application';
/**
 * @deprecated
 */
export declare abstract class Middleware<TApplication extends Application = Application, TResponse extends TSupportedResponseTypes = TSupportedResponseTypes> {
    private $app;
    constructor(app: TApplication);
    getApplication(): TApplication;
    protected abstract _execute(request: Request, response: Response<TResponse>): Promise<IRequestResponse>;
    execute(request: Request, response: Response<TResponse>): Promise<IRequestResponse>;
}
