= Parceler
+
+actual typealias TypeParceler {
+ fun create(parcel: Parcel): P
+
+ fun P.write(parcel: Parcel, flags: Int)
+}
+
+expect annotation class TypeParceler {
+ actual fun create(parcel: Parcel): P
+ actual fun P.write(parcel: Parcel, flags: Int)
+}
+
+actual annotation class TypeParceler {
+ actual fun create(parcel: Parcel): P
+ actual fun P.write(parcel: Parcel, flags: Int)
+}
+
+actual annotation class TypeParceler {
+ actual fun create(parcel: Parcel): P
+ actual fun P.write(parcel: Parcel, flags: Int)
+}
+
+actual annotation class TypeParceler {
+ actual fun create(parcel: Parcel): P
+ actual fun P.write(parcel: Parcel, flags: Int)
+}
+
+actual annotation class TypeParceler>
+
+ val currencyList: StateFlow
>
+}
diff --git a/core/data/src/commonMain/kotlin/org/mifospay/core/data/repository/NotificationRepository.kt b/core/data/src/commonMain/kotlin/org/mifospay/core/data/repository/NotificationRepository.kt
new file mode 100644
index 000000000..a0c4eb906
--- /dev/null
+++ b/core/data/src/commonMain/kotlin/org/mifospay/core/data/repository/NotificationRepository.kt
@@ -0,0 +1,18 @@
+/*
+ * Copyright 2024 Mifos Initiative
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at https://mozilla.org/MPL/2.0/.
+ *
+ * See https://github.com/openMF/mobile-wallet/blob/master/LICENSE.md
+ */
+package org.mifospay.core.data.repository
+
+import kotlinx.coroutines.flow.Flow
+import org.mifospay.core.common.DataState
+import org.mifospay.core.model.notification.Notification
+
+interface NotificationRepository {
+ fun fetchNotifications(): Flow
>
+}
diff --git a/core/data/src/commonMain/kotlin/org/mifospay/core/data/repository/SelfServiceRepository.kt b/core/data/src/commonMain/kotlin/org/mifospay/core/data/repository/SelfServiceRepository.kt
new file mode 100644
index 000000000..f4c4cb695
--- /dev/null
+++ b/core/data/src/commonMain/kotlin/org/mifospay/core/data/repository/SelfServiceRepository.kt
@@ -0,0 +1,65 @@
+/*
+ * Copyright 2024 Mifos Initiative
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at https://mozilla.org/MPL/2.0/.
+ *
+ * See https://github.com/openMF/mobile-wallet/blob/master/LICENSE.md
+ */
+package org.mifospay.core.data.repository
+
+import kotlinx.coroutines.flow.Flow
+import org.mifospay.core.common.DataState
+import org.mifospay.core.model.account.Account
+import org.mifospay.core.model.account.AccountContent
+import org.mifospay.core.model.account.AccountsWithTransactions
+import org.mifospay.core.model.beneficiary.Beneficiary
+import org.mifospay.core.model.beneficiary.BeneficiaryPayload
+import org.mifospay.core.model.beneficiary.BeneficiaryUpdatePayload
+import org.mifospay.core.model.client.Client
+import org.mifospay.core.model.savingsaccount.Transaction
+import org.mifospay.core.network.model.entity.Page
+import org.mifospay.core.network.model.entity.authentication.AuthenticationPayload
+import org.mifospay.core.network.model.entity.user.User
+
+interface SelfServiceRepository {
+ suspend fun loginSelf(payload: AuthenticationPayload): DataState
>
+
+ suspend fun getSelfAccountTransactionFromId(
+ accountId: Long,
+ transactionId: Long,
+ ): DataState
>
+
+ fun getAccountAndBeneficiaryList(clientId: Long): Flow