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>[]>;
}