import { Middleware, MiddlewareResult } from './types'; import { ClassType } from '../types'; import { DynamicMiddlewareDispatcher } from './dynamic-middleware-dispatcher'; export type ProtoMiddlewareArgs = [ inst: T, ...args: A ]; export type ProtoMiddlewareFunc = (...args: ProtoMiddlewareArgs) => T | undefined; export declare class ProtoMiddlewareDispatcher extends DynamicMiddlewareDispatcher> { private middlewareProtoMap; private middlewareProtoMapPrior; middleware(cls: ClassType, mw: Middleware>, prior?: boolean): this; removeMiddleware(cls: ClassType, mw: Middleware>): this; dispatch(...args: ProtoMiddlewareArgs): MiddlewareResult>; buildMiddlewares(...args: ProtoMiddlewareArgs): Promise>[]>; }