{"version":3,"file":"types.cjs","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"","sourcesContent":["import type {\n  AccountsControllerGetAccountAction,\n  AccountsControllerGetAccountByAddressAction,\n  AccountsControllerListMultichainAccountsAction,\n} from '@metamask/accounts-controller';\nimport type { RestrictedMessenger } from '@metamask/base-controller';\nimport type {\n  KeyringControllerGetStateAction,\n  KeyringControllerStateChangeEvent,\n  KeyringControllerWithKeyringAction,\n} from '@metamask/keyring-controller';\nimport type { HandleSnapRequest as SnapControllerHandleSnapRequestAction } from '@metamask/snaps-controllers';\n\n/**\n * All actions that {@link MultichainAccountService} registers so that other\n * modules can call them.\n */\nexport type MultichainAccountServiceActions = never;\n/**\n * All events that {@link MultichainAccountService} publishes so that other modules\n * can subscribe to them.\n */\nexport type MultichainAccountServiceEvents = never;\n\n/**\n * All actions registered by other modules that {@link MultichainAccountService}\n * calls.\n */\nexport type AllowedActions =\n  | AccountsControllerListMultichainAccountsAction\n  | AccountsControllerGetAccountAction\n  | AccountsControllerGetAccountByAddressAction\n  | SnapControllerHandleSnapRequestAction\n  | KeyringControllerWithKeyringAction\n  | KeyringControllerGetStateAction;\n\n/**\n * All events published by other modules that {@link MultichainAccountService}\n * subscribes to.\n */\nexport type AllowedEvents = KeyringControllerStateChangeEvent;\n\n/**\n * The messenger restricted to actions and events that\n * {@link MultichainAccountService} needs to access.\n */\nexport type MultichainAccountServiceMessenger = RestrictedMessenger<\n  'MultichainAccountService',\n  MultichainAccountServiceActions | AllowedActions,\n  MultichainAccountServiceEvents | AllowedEvents,\n  AllowedActions['type'],\n  AllowedEvents['type']\n>;\n"]}