import type { Exome } from "./constructor.ts";
export type Middleware = (instance: Exome, action: string, payload: any[]) => void | ((error?: Error, response?: any) => void);
export declare const middleware: Middleware[];
/**
 * Listens to middleware calls for any store instance.
 */
export declare const addMiddleware: (fn: Middleware) => (() => void);
/**
 * Triggers middleware for particular store instance to be called.
 * When return function gets called, it maks that the middleware action
 * was completed with or without errors.
 */
export declare const runMiddleware: (parent: Parameters<Middleware>[0], key: Parameters<Middleware>[1], args: Parameters<Middleware>[2]) => ((error?: Error, response?: any) => void);
