///
import { Middleware } from './middleware';
import { Request, Response } from '../http';
/**
* Logs requests and responses as JSON.
*
* @export
* @class JSONLogger
* @extends {Middleware}
*/
export declare class JSONLogger extends Middleware {
/**
* Reference to underlying bunyan logger.
*
* @private
* @type {bunyan}
* @memberof JSONLogger
*/
private log;
/**
* Reference to underlying log level.
*
* @private
* @type {string}
* @memberof JSONLogger
*/
private level;
/**
* Creates an instance of JSONLogger.
* @param {string} name
* @param {string} [level='info']
* @memberof JSONLogger
*/
constructor(name: string, level?: string);
/**
* Add a NodeJS.WriteStream stream to the list of log targets.
*
* @param {NodeJS.WriteStream} stream
* @memberof JSONLogger
*/
addStream(stream: NodeJS.WriteStream): void;
/**
* Logs selected request values as JSON.
*
* @param {Request} req
* @param {Response} res
* @memberof JSONLogger
*/
processRequest: (req: Request, res: Response) => Promise;
/**
* Logs selected response values as JSON.
*
* @param {Request} req
* @param {Response} res
* @returns {Promise}
* @memberof JSONLogger
*/
processResponse: (req: Request, res: Response) => Promise;
}