/**
 * This module can be used to map an "action id" back to a promise resolution. It is useful when a query/response
 * mechanism needs to know when a dispatch action has completed.
 */
import { ActionId, ActionResult } from "./types";
export declare let actionPromiseMap: Record<string, Function>;
export declare let actionResultMap: Record<string, ActionResult>;
/**
 * Create an action Identifier with unique id and type
 *
 * @param {string} type the type of the action (e.g. InteropRaiseIntent["type"])
 * @returns {ActionId}
 */
export declare const actionIdentifier: (type: string) => ActionId;
/**
 * Returns promise for an action result -- dovetails with setActionResult()
 *
 * NOTE: the use case justifies supporting only one client per actionId; if multiple clients were needed then need an array of promises
 *
 * @param {ActionId} actionId the action id that was input to the action dispatch()
 * @returns {Promise<ActionResult>}
 */
export declare const actionResult: (actionId: ActionId) => Promise<ActionResult>;
/**
 * Sets action result and resolves any pending promise waiting on the result -- dovetails with actionResult()
 *
 * NOTE: the use case justifies supporting only one client per actionId; if multiple clients were needed then need an array of promises
 *
 * @param {ActionId} actionId identifies the result being set
 * @param {ActionResult} aResult the result being set; actionId.type must match aResult.type (if used property it will)
 */
export declare const setActionResult: (actionId: ActionId, aResult: ActionResult) => void;
//# sourceMappingURL=actionIdMapper.d.ts.map