import type { UNAccount, UNCard } from '../../types/shared'; import type { ActivityFiltersChangedEvent } from '../../messages/webMessages/activityMessage'; import type { MultiFactorAuthenticationFinishedEvent, RequestRefreshEvent } from '../../messages/webMessages/unitComponentsMessages'; import type { BottomSheetNativeMessage } from '../../messages/nativeMessages/bottomSheetMessage'; import type { CardCreatedEvent, CardMessage } from '../../messages/webMessages/cardMessage'; import type { AccountMessage } from '../../messages/webMessages/accountMessage'; import type { ActivityMessage } from '../../messages/webMessages/activityMessage'; import type { UnitComponentsMessage } from '../../messages/webMessages/unitComponentsMessages'; import type { MultipleCardsFiltersChangedEvent, MultipleCardsMessage } from '../../messages/webMessages/multipleCardsMessage'; import type { BillPayBillsMessage, BillsFiltersChangedEvent } from '../../messages/webMessages/billPayBillsMessage'; import type { BalanceSummaryMessage, RequestDateRangeMenuValueChangeEvent } from '../../messages/webMessages/balanceSummaryMessage'; import { BottomSheetRenderingMessage } from '../../messages/nativeMessages/bottomSheetMessage'; import { PageMessage } from '../../messages/webMessages/pageMessage'; import { OpenPlaidEvent, PlaidMessage } from '../../messages/webMessages/plaidMessages'; import { PayeeManagementMessage } from '../../messages/webMessages/payeeManagementMessage'; import { UNCounterparty } from '../../types/shared/counterparty.types'; import { BillPayMenuMessage, RequestEditBillEvent } from '../../messages/webMessages/billPayMenuMessage'; import { BillActionsMessage } from '../../messages/webMessages/billActionsMessage'; import { VendorFormMessage } from '../../messages/webMessages/vendorFormMessage'; import { UnsavedChangesMessage, UnsavedChangesActionEvent } from '../../messages/webMessages/unsavedChangesMessage'; // Map of event keys to their data types export type EventMap = { [CardMessage.CARD_STATUS_CHANGED]: UNCard; [CardMessage.CARD_ACTIVATED]: UNCard; [CardMessage.CARD_CREATED]: CardCreatedEvent; [AccountMessage.UNIT_ACCOUNT_CHANGED]: UNAccount; [AccountMessage.UNIT_ACCOUNT_CREATED]: Record; [ActivityMessage.UNIT_ACTIVITY_FILTERS_CHANGED]: ActivityFiltersChangedEvent; [MultipleCardsMessage.UNIT_MULTIPLE_CARDS_CARD_CLICKED]: UNCard; [MultipleCardsMessage.UNIT_MULTIPLE_CARDS_FILTERS_CHANGED]: MultipleCardsFiltersChangedEvent; [BillPayBillsMessage.UNIT_BILLS_FILTERS_CHANGED]: BillsFiltersChangedEvent; [BalanceSummaryMessage.UNIT_REQUEST_DATE_RANGE_MENU_VALUE_CHANGE]: RequestDateRangeMenuValueChangeEvent; [UnitComponentsMessage.UNIT_REQUEST_CLOSE_FLOW]: Record; [BottomSheetNativeMessage.REQUEST_RENDERING]: BottomSheetRenderingMessage; [UnitComponentsMessage.UNIT_REQUEST_REFRESH]: RequestRefreshEvent; [UnitComponentsMessage.UNIT_MULTI_FACTOR_AUTH_FINISHED]: MultiFactorAuthenticationFinishedEvent; [PageMessage.PAGE_HEIGHT]: number; [PlaidMessage.UNIT_OPEN_PLAID]: OpenPlaidEvent; [AccountMessage.UNIT_ACCOUNT_CREATION_ACTIONS_OPEN_PLAID_FOR_LINK_EXTERNAL_ACCOUNT]: Record; [PayeeManagementMessage.UNIT_COUNTERPARTY_DELETED]: UNCounterparty; [BillPayMenuMessage.UNIT_REQUEST_EDIT_BILL]: RequestEditBillEvent; [BillPayMenuMessage.UNIT_REQUEST_CREATE_MANUAL_BILL_PAY]: Record; [BillPayMenuMessage.UNIT_REQUEST_OPEN_ARCHIVED_BILLS]: Record; [BillPayMenuMessage.UNIT_REQUEST_OPEN_VENDORS]: Record; [BillPayMenuMessage.UNIT_REQUEST_OPEN_PAYMENT_METHODS]: Record; [BillActionsMessage.UNIT_BILL_ARCHIVED]: string; [BillActionsMessage.UNIT_BILL_MARK_AS_PAID]: string; [BillActionsMessage.UNIT_BILL_MARK_AS_UNPAID]: string; [BillActionsMessage.UNIT_BILL_RESCHEDULED]: string; [BillActionsMessage.UNIT_BILL_CHECK_CANCELLED]: string; [BillActionsMessage.UNIT_BILL_REFUNDED]: string; [VendorFormMessage.UNIT_VENDOR_FORM_TRY_SUBMIT]: Record; [UnsavedChangesMessage.UNIT_BILL_PAY_UNSAVED_CHANGES_ACTION]: UnsavedChangesActionEvent; }; // Generate SharedEvent as a union of { key, data } objects export type SharedEvent = { [K in keyof EventMap]: { key: K; data: EventMap[K] }; }[keyof EventMap];