import { IActionCreator, IAction, ActionModeSingle, ActionModeMulti, ActionMode } from './action.js'; import { IActionHandler } from './action-handler.js'; interface IActionMapBasic { has(actionCreator: IActionCreator): boolean; add(...actions: IAction[]): void; get>(actionCreator: IActionCreator): A | undefined; get>(actionCreator: IActionCreator): A[] | undefined; delete(actionCreator: IActionCreator): boolean; readonly size: number; } interface IActionMapExtended extends IActionMapBasic { getActionCreators(): Iterable; getActions(): Iterable; } interface IActionMapInternal extends IActionMapExtended { _attachHandler(handler: IActionHandler): void; _detachHandler(): void; _setIsHandlerExecuted(invoked: boolean): void; } declare class ActionMap implements IActionMapInternal { protected _map: Map; protected _attachedHandler?: IActionHandler; protected _isHandlerExecuted?: boolean; protected _errorPrefix: string; constructor(actions?: IAction[]); getActionCreators(): MapIterator>>; getActions(): IAction[]; protected _add(action: IAction): void; protected _warnAboutHandlerAction(actionCreator: IActionCreator): void; has(actionCreator: IActionCreator): boolean; add(...actions: IAction[]): void; get>(actionCreator: IActionCreator): A | undefined; get>(actionCreator: IActionCreator): A[] | undefined; delete(actionCreator: IActionCreator): boolean; get size(): number; _attachHandler(handler: IActionHandler): void; _detachHandler(): void; _setIsHandlerExecuted(triggered: boolean): void; } declare function createActionMap(...actions: IAction[]): ActionMap; export { ActionMap, type IActionMapBasic, type IActionMapExtended, type IActionMapInternal, createActionMap };