import flatten = require('array-flatten'); export declare type Next = (err?: Error | null) => T; export declare type RequestHandler = (req: T, res: U, next: Next) => V; export declare type ErrorHandler = (err: Error, req: T, res: U, next: Next) => V; export declare type Middleware = RequestHandler | ErrorHandler; export declare type Handler = Middleware | flatten.NestedArray>; /** * Compose an array of middleware handlers into a single handler. */ export declare function compose(...handlers: Handler[]): RequestHandler; /** * Wrap middleware handlers. */ export declare function errors(...handlers: Handler[]): ErrorHandler;