import { Provider, InjectionToken } from '@typemon/dependency-injection'; import { HandlerParameterDecorator } from './handler-parameter-decorator'; export interface Middleware { handler(...parameters: ReadonlyArray): void | Promise; } export declare function Middleware(options?: Middleware.Options): ClassDecorator; export declare namespace Middleware { type Constructor = new (...parameters: ReadonlyArray) => Middleware; interface Options { readonly providers?: ReadonlyArray; } } export declare type Next = () => void; export declare function Next(): HandlerParameterDecorator; export declare namespace Next { const TOKEN: InjectionToken; }