import * as core from '../core'; export declare type Next = () => { diff: core.Diff[]; returnValue: any; }; export declare type ActionInfo = { args: any[]; path: string[]; }; export declare type Disposable = { remove: () => void; }; export declare type Middleware = { (next: Next, action: ActionInfo): void; }; export declare function executeMiddlewareAroundAction(observable: object, runAction: Function, action: core.ActionInfo): any; export declare function use(observable: object, middleware: Middleware): Disposable;