import * as e from 'express';
import { OptionsV2 as xml2jsOptionsV2 } from 'xml2js';
import BaseApp, { Plugin, PluginContext } from '../app/BaseApp';
export declare class RouteRegisterUtil {
    private routesToRegister;
    private express;
    doRegister(): void;
}
/**
 * Client errors do not need to be sent to NewRelic so create clientErrorMiddleware
 * to send response if the error is 4xx. clientErrorMiddleware needs to be registered
 * before errorMiddleware.
 * @param err
 * @param req
 * @param res
 * @param next
 */
export declare const clientErrorMiddleware: (err: any, req: any, res: any, next: any) => any;
export declare const errorMiddleware: (err: any, req: any, res: any, next: any) => any;
export interface WebPluginOptions {
    staticRoots?: string[];
    xmlBodyParserOptions?: xml2jsOptionsV2;
}
export default class WebPlugin implements Plugin {
    private options;
    static CONTEXT_APP_KEY: string;
    static CONTEXT_SERVER_KEY: string;
    name: string;
    constructor(options?: WebPluginOptions);
    willStart(app: BaseApp, pluginContext: PluginContext): void;
    didStart(app: any, pluginContext: any): void;
    didStop(app: any, pluginContext: any): void;
    protected registerXmlBodyParser(express: e.Express): void;
    protected registerXmlContentNegotiationMiddleware(express: e.Express, xmlRoot: string): void;
}
