import { IActionHandler } from './action-handler.js'; import { IActionMapExtended } from './action-map.js'; type ChainedActionHandlerMiddlewareCallback = (actionMap: AM, handler: IActionHandler) => any; type ActionHandlerMiddlewareCallback = (next: ChainedActionHandlerMiddlewareCallback) => ChainedActionHandlerMiddlewareCallback; interface IActionHandlerMiddlewareRunner { run(actionMap: IActionMapExtended, handler: IActionHandler): any; } interface IActionHandlerMiddleware extends IActionHandlerMiddlewareRunner { add(callback: ActionHandlerMiddlewareCallback): boolean; remove(callback: ActionHandlerMiddlewareCallback): boolean; compose(): void; } interface ActionHandlerMiddlewareOptions { cancellable?: boolean; } declare class ActionHandlerMiddleware implements IActionHandlerMiddlewareRunner { protected _middlewareCallbacks: Set>; protected _middlewareCallbacksArray: ActionHandlerMiddlewareCallback[]; protected _composed?: ChainedActionHandlerMiddlewareCallback; protected _last?: ChainedActionHandlerMiddlewareCallback; protected _className: string; protected _errorPrefix: string; options: Required; constructor(options?: ActionHandlerMiddlewareOptions); compose(): void; add(callback: ActionHandlerMiddlewareCallback): boolean; remove(callback: ActionHandlerMiddlewareCallback): boolean; run(actionMap: IActionMapExtended, handler: IActionHandler): any; } export { ActionHandlerMiddleware, type ActionHandlerMiddlewareCallback, type ActionHandlerMiddlewareOptions, type ChainedActionHandlerMiddlewareCallback, type IActionHandlerMiddleware, type IActionHandlerMiddlewareRunner };