/**
 * @module AbstractHandlerMethodAdapter
 * @description action方法处理适配器抽象基类
 */
import HandlerMethod from './HandlerMethod';
import HandlerAdapter from './HandlerAdapter';
import ServletContext from '../http/ServletContext';
import ModelAndView from '../models/ModelAndView';
export default abstract class AbstractHandlerMethodAdapter extends HandlerAdapter {
    /**
     * 用于判断当前适配器是否能处理对应的action操作
     * @param handler 当前处理的handler
     */
    supports(handler: any): boolean;
    /**
     *  用于判断当前适配器是否能处理对应的HandlerMethod类型操作
     * @param handlerMethod 当前处理的方法
     */
    protected abstract supportsInternal(handlerMethod: HandlerMethod): boolean;
    /**
     * 用于处理当前handler
     * @param servletContext  当前请求对象上下文实例
     * @param handler 当前handler
     */
    handle(servletContext: ServletContext, handler: any): Promise<ModelAndView>;
    /**
     * 用于处理当前HandlerMethod
     * @param request 当前请求对象实例
     * @param response 当前返回对象实例
     * @param handlerMethod 当前 HandlerMethod实例
     */
    protected abstract handleInternal(servletContext: ServletContext, handlerMethod: HandlerMethod): Promise<ModelAndView>;
    /**
     * 返回上次修改时间，可以返回-1表示不支持
     * @param request 当前请求信息
     * @param handler 当前HandlerMethod
     */
    getLastModified(request: any, handler: any): number;
}
