{"version":3,"file":"types.cjs","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"","sourcesContent":["import type {\n  Bip44Account,\n  MultichainAccountGroup,\n  MultichainAccountWalletId,\n  MultichainAccountWalletStatus,\n} from '@metamask/account-api';\nimport type {\n  AccountsControllerAccountAddedEvent,\n  AccountsControllerAccountRemovedEvent,\n  AccountsControllerGetAccountAction,\n  AccountsControllerGetAccountByAddressAction,\n  AccountsControllerGetAccountsAction,\n  AccountsControllerListMultichainAccountsAction,\n} from '@metamask/accounts-controller';\nimport type { TraceCallback } from '@metamask/controller-utils';\nimport type { KeyringAccount } from '@metamask/keyring-api';\nimport type {\n  KeyringControllerAddNewKeyringAction,\n  KeyringControllerCreateNewVaultAndKeychainAction,\n  KeyringControllerCreateNewVaultAndRestoreAction,\n  KeyringControllerGetKeyringsByTypeAction,\n  KeyringControllerGetStateAction,\n  KeyringControllerRemoveAccountAction,\n  KeyringControllerWithKeyringAction,\n  KeyringControllerWithKeyringV2Action,\n} from '@metamask/keyring-controller';\nimport type { Messenger } from '@metamask/messenger';\nimport type {\n  NetworkControllerFindNetworkClientIdByChainIdAction,\n  NetworkControllerGetNetworkClientByIdAction,\n} from '@metamask/network-controller';\nimport type {\n  SnapAccountServiceEnsureReadyAction,\n  SnapAccountServiceGetCapabilitiesAction,\n} from '@metamask/snap-account-service';\nimport type { SnapControllerHandleRequestAction } from '@metamask/snaps-controllers';\n\nimport type { serviceName } from './MultichainAccountService';\nimport type { MultichainAccountServiceMethodActions } from './MultichainAccountService-method-action-types';\n\n/**\n * All actions that {@link MultichainAccountService} registers so that other\n * modules can call them.\n */\nexport type MultichainAccountServiceActions =\n  MultichainAccountServiceMethodActions;\n\nexport type MultichainAccountServiceMultichainAccountGroupCreatedEvent = {\n  type: `${typeof serviceName}:multichainAccountGroupCreated`;\n  payload: [MultichainAccountGroup<Bip44Account<KeyringAccount>>];\n};\n\nexport type MultichainAccountServiceMultichainAccountGroupUpdatedEvent = {\n  type: `${typeof serviceName}:multichainAccountGroupUpdated`;\n  payload: [MultichainAccountGroup<Bip44Account<KeyringAccount>>];\n};\n\nexport type MultichainAccountServiceWalletStatusChangeEvent = {\n  type: `${typeof serviceName}:walletStatusChange`;\n  payload: [MultichainAccountWalletId, MultichainAccountWalletStatus];\n};\n\n/**\n * All events that {@link MultichainAccountService} publishes so that other modules\n * can subscribe to them.\n */\nexport type MultichainAccountServiceEvents =\n  | MultichainAccountServiceMultichainAccountGroupCreatedEvent\n  | MultichainAccountServiceMultichainAccountGroupUpdatedEvent\n  | MultichainAccountServiceWalletStatusChangeEvent;\n\n/**\n * All actions registered by other modules that {@link MultichainAccountService}\n * calls.\n */\ntype AllowedActions =\n  | AccountsControllerListMultichainAccountsAction\n  | AccountsControllerGetAccountsAction\n  | AccountsControllerGetAccountAction\n  | AccountsControllerGetAccountByAddressAction\n  | KeyringControllerWithKeyringAction\n  | KeyringControllerWithKeyringV2Action\n  | KeyringControllerGetStateAction\n  | KeyringControllerGetKeyringsByTypeAction\n  | KeyringControllerAddNewKeyringAction\n  | NetworkControllerGetNetworkClientByIdAction\n  | NetworkControllerFindNetworkClientIdByChainIdAction\n  | KeyringControllerCreateNewVaultAndKeychainAction\n  | KeyringControllerCreateNewVaultAndRestoreAction\n  | KeyringControllerRemoveAccountAction\n  | SnapControllerHandleRequestAction\n  | SnapAccountServiceEnsureReadyAction\n  | SnapAccountServiceGetCapabilitiesAction;\n\n/**\n * All events published by other modules that {@link MultichainAccountService}\n * subscribes to.\n */\ntype AllowedEvents =\n  | AccountsControllerAccountAddedEvent\n  | AccountsControllerAccountRemovedEvent;\n\n/**\n * The messenger restricted to actions and events that\n * {@link MultichainAccountService} needs to access.\n */\nexport type MultichainAccountServiceMessenger = Messenger<\n  'MultichainAccountService',\n  MultichainAccountServiceActions | AllowedActions,\n  MultichainAccountServiceEvents | AllowedEvents\n>;\n\nexport type MultichainAccountServiceConfig = {\n  trace?: TraceCallback;\n};\n"]}