import ResourceHandlerRegistry from '../resources/ResourceHandlerRegistry';
import PathMatchConfigurer from './PathMatchConfigurer';
import HandlerExceptionResolver from '../method/exception/HandlerExceptionResolver';
import HandlerMethodReturnValueHandler from '../method/return/HandlerMethodReturnValueHandler';
import HandlerInterceptorRegistry from '../interceptor/HandlerInterceptorRegistry';
import MessageConverter from '../http/converts/MessageConverter';
import ArgumentsResolvers from '../method/argument/ArgumentsResolvers';
import ViewResolverRegistry from '../view/ViewResolverRegistry';
import type MediaType from '../http/MediaType';
import CorsRegistry from '../cors/CorsRegistry';
import MultipartConfig from './MultipartConfig';
import ApplicationContextAware from '../context/ApplicationContextAware';
import AbstractApplicationContext from '../context/AbstractApplicationContext';
export declare const DEFAULT_RESOURCE_MIME_TYPES = "application/javascript,text/css,application/json,application/xml,text/html,text/xml,text/plain";
export declare interface ResourceOptions {
    /**
     * 是否开启gzip压缩
     */
    gzipped: boolean;
    /**
     * 开启gzip的媒体类型字符串
     * 例如: application/javascript,text/css
     */
    mimeTypes?: string;
}
export interface ResourceConfig extends Omit<ResourceOptions, 'mimeTypes'> {
    mimeTypes: MediaType[];
}
export default class WebAppConfigurerOptions extends ApplicationContextAware {
    /**
     * 静态资源配置
     */
    readonly resource?: ResourceOptions;
    /**
     * 当前配置的body内容大小
     * @param options
     */
    readonly multipart?: MultipartConfig;
    /**
     * 默认为ioc容器设置的application context
     */
    protected applicationContext: AbstractApplicationContext;
    addInterceptors?(registry: HandlerInterceptorRegistry): void;
    configureViewResolvers?(registry: ViewResolverRegistry): void;
    addReturnValueHandlers?(handlers: HandlerMethodReturnValueHandler[]): void;
    configureMessageConverters?(converters: MessageConverter): void;
    extendMessageConverters?(converters: MessageConverter): void;
    addArgumentResolvers?(resolvers: ArgumentsResolvers): void;
    addResourceHandlers?(registry: ResourceHandlerRegistry): void;
    configurePathMatch?(configurer: PathMatchConfigurer): void;
    configureHandlerExceptionResolvers?(resolvers: HandlerExceptionResolver[]): void;
    extendHandlerExceptionResolvers?(resolvers: HandlerExceptionResolver[]): void;
    addCorsMappings?(registry: CorsRegistry): void;
    /**
     * 设置的application context
     * @param context
     */
    setApplication(context: AbstractApplicationContext): void;
    constructor(a: WebAppConfigurerOptions);
}
