@yonus_amire01/chat 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (222) hide show
  1. package/README.md +127 -0
  2. package/dist/index.cjs +6 -0
  3. package/dist/index.cjs.map +1 -0
  4. package/dist/index.mjs +9360 -0
  5. package/dist/index.mjs.map +1 -0
  6. package/dist/style.css +1 -0
  7. package/dist/types/adapter/HostAdapter.d.ts +13 -0
  8. package/dist/types/adapter/HostAdapter.d.ts.map +1 -0
  9. package/dist/types/adapter/PushPort.d.ts +10 -0
  10. package/dist/types/adapter/PushPort.d.ts.map +1 -0
  11. package/dist/types/adapter/index.d.ts +7 -0
  12. package/dist/types/adapter/index.d.ts.map +1 -0
  13. package/dist/types/adapter/mock/MockCallAdapter.d.ts +14 -0
  14. package/dist/types/adapter/mock/MockCallAdapter.d.ts.map +1 -0
  15. package/dist/types/adapter/mock/MockChatActionAdapter.d.ts +9 -0
  16. package/dist/types/adapter/mock/MockChatActionAdapter.d.ts.map +1 -0
  17. package/dist/types/adapter/mock/MockChatAdapter.d.ts +7 -0
  18. package/dist/types/adapter/mock/MockChatAdapter.d.ts.map +1 -0
  19. package/dist/types/adapter/mock/MockMedicationAdapter.d.ts +7 -0
  20. package/dist/types/adapter/mock/MockMedicationAdapter.d.ts.map +1 -0
  21. package/dist/types/adapter/mock/MockServiceAdapter.d.ts +6 -0
  22. package/dist/types/adapter/mock/MockServiceAdapter.d.ts.map +1 -0
  23. package/dist/types/adapter/mock/createMockAdapter.d.ts +13 -0
  24. package/dist/types/adapter/mock/createMockAdapter.d.ts.map +1 -0
  25. package/dist/types/adapter/mock/index.d.ts +12 -0
  26. package/dist/types/adapter/mock/index.d.ts.map +1 -0
  27. package/dist/types/adapter/ports/CallAdapter.d.ts +36 -0
  28. package/dist/types/adapter/ports/CallAdapter.d.ts.map +1 -0
  29. package/dist/types/adapter/ports/ChatActionAdapter.d.ts +17 -0
  30. package/dist/types/adapter/ports/ChatActionAdapter.d.ts.map +1 -0
  31. package/dist/types/adapter/ports/ChatAdapter.d.ts +22 -0
  32. package/dist/types/adapter/ports/ChatAdapter.d.ts.map +1 -0
  33. package/dist/types/adapter/ports/MedicationAdapter.d.ts +6 -0
  34. package/dist/types/adapter/ports/MedicationAdapter.d.ts.map +1 -0
  35. package/dist/types/adapter/ports/ServiceAdapter.d.ts +16 -0
  36. package/dist/types/adapter/ports/ServiceAdapter.d.ts.map +1 -0
  37. package/dist/types/components/ChatPage.vue.d.ts +8 -0
  38. package/dist/types/components/ChatPage.vue.d.ts.map +1 -0
  39. package/dist/types/components/call/CallBoard.vue.d.ts +154 -0
  40. package/dist/types/components/call/CallBoard.vue.d.ts.map +1 -0
  41. package/dist/types/components/call/CallMemberDisplay.vue.d.ts +57 -0
  42. package/dist/types/components/call/CallMemberDisplay.vue.d.ts.map +1 -0
  43. package/dist/types/components/call/CallPageOverlay.vue.d.ts +1365 -0
  44. package/dist/types/components/call/CallPageOverlay.vue.d.ts.map +1 -0
  45. package/dist/types/components/call/paint-board/BoardColorPicker.vue.d.ts +41 -0
  46. package/dist/types/components/call/paint-board/BoardColorPicker.vue.d.ts.map +1 -0
  47. package/dist/types/components/call/paint-board/BrushSizeSlider.vue.d.ts +48 -0
  48. package/dist/types/components/call/paint-board/BrushSizeSlider.vue.d.ts.map +1 -0
  49. package/dist/types/components/call/paint-board/CallPaintBoard.vue.d.ts +127 -0
  50. package/dist/types/components/call/paint-board/CallPaintBoard.vue.d.ts.map +1 -0
  51. package/dist/types/components/chat/ChatBubble.vue.d.ts +12236 -0
  52. package/dist/types/components/chat/ChatBubble.vue.d.ts.map +1 -0
  53. package/dist/types/components/chat/ChatInput.vue.d.ts +2477 -0
  54. package/dist/types/components/chat/ChatInput.vue.d.ts.map +1 -0
  55. package/dist/types/components/chat/ChatMessages.vue.d.ts +13873 -0
  56. package/dist/types/components/chat/ChatMessages.vue.d.ts.map +1 -0
  57. package/dist/types/components/chat/ChatPageBar.vue.d.ts +1204 -0
  58. package/dist/types/components/chat/ChatPageBar.vue.d.ts.map +1 -0
  59. package/dist/types/components/chat/ChatProfileOverview.vue.d.ts +327 -0
  60. package/dist/types/components/chat/ChatProfileOverview.vue.d.ts.map +1 -0
  61. package/dist/types/components/chat/ChatView.vue.d.ts +4 -0
  62. package/dist/types/components/chat/ChatView.vue.d.ts.map +1 -0
  63. package/dist/types/components/chat/PatientReferral.vue.d.ts +33 -0
  64. package/dist/types/components/chat/PatientReferral.vue.d.ts.map +1 -0
  65. package/dist/types/components/chat/chat-bubbles/BubbleOptions.vue.d.ts +53 -0
  66. package/dist/types/components/chat/chat-bubbles/BubbleOptions.vue.d.ts.map +1 -0
  67. package/dist/types/components/chat/chat-bubbles/BubbleVideo.vue.d.ts +103 -0
  68. package/dist/types/components/chat/chat-bubbles/BubbleVideo.vue.d.ts.map +1 -0
  69. package/dist/types/components/chat/chat-bubbles/FileDisplay.vue.d.ts +170 -0
  70. package/dist/types/components/chat/chat-bubbles/FileDisplay.vue.d.ts.map +1 -0
  71. package/dist/types/components/chat/chat-bubbles/ImageGroupDisplay.vue.d.ts +74 -0
  72. package/dist/types/components/chat/chat-bubbles/ImageGroupDisplay.vue.d.ts.map +1 -0
  73. package/dist/types/components/chat/chat-bubbles/RequestCard.vue.d.ts +11449 -0
  74. package/dist/types/components/chat/chat-bubbles/RequestCard.vue.d.ts.map +1 -0
  75. package/dist/types/components/chat/chat-bubbles/VoiceDisplay.vue.d.ts +107 -0
  76. package/dist/types/components/chat/chat-bubbles/VoiceDisplay.vue.d.ts.map +1 -0
  77. package/dist/types/components/chat/chat-bubbles/request-card/ProviderDisplay.vue.d.ts +56 -0
  78. package/dist/types/components/chat/chat-bubbles/request-card/ProviderDisplay.vue.d.ts.map +1 -0
  79. package/dist/types/components/chat/chat-input/AttachementFileDisplay.vue.d.ts +28 -0
  80. package/dist/types/components/chat/chat-input/AttachementFileDisplay.vue.d.ts.map +1 -0
  81. package/dist/types/components/chat/chat-input/InputAttachement.vue.d.ts +72 -0
  82. package/dist/types/components/chat/chat-input/InputAttachement.vue.d.ts.map +1 -0
  83. package/dist/types/components/chat/chat-input/PermissionPopup.vue.d.ts +15 -0
  84. package/dist/types/components/chat/chat-input/PermissionPopup.vue.d.ts.map +1 -0
  85. package/dist/types/components/chat/chat-input/VideoRecordDisplay.vue.d.ts +149 -0
  86. package/dist/types/components/chat/chat-input/VideoRecordDisplay.vue.d.ts.map +1 -0
  87. package/dist/types/components/chat/contact/ChatContactDisplay.vue.d.ts +85 -0
  88. package/dist/types/components/chat/contact/ChatContactDisplay.vue.d.ts.map +1 -0
  89. package/dist/types/components/chat/contact/ChatList.vue.d.ts +3111 -0
  90. package/dist/types/components/chat/contact/ChatList.vue.d.ts.map +1 -0
  91. package/dist/types/components/chat/contact/ChatListSearch.vue.d.ts +24 -0
  92. package/dist/types/components/chat/contact/ChatListSearch.vue.d.ts.map +1 -0
  93. package/dist/types/components/chat/contact/ContactAvatar.vue.d.ts +28 -0
  94. package/dist/types/components/chat/contact/ContactAvatar.vue.d.ts.map +1 -0
  95. package/dist/types/components/chat/medic-features/MedicDisplay.vue.d.ts +61 -0
  96. package/dist/types/components/chat/medic-features/MedicDisplay.vue.d.ts.map +1 -0
  97. package/dist/types/components/chat/medic-features/MedicSelector.vue.d.ts +1113 -0
  98. package/dist/types/components/chat/medic-features/MedicSelector.vue.d.ts.map +1 -0
  99. package/dist/types/components/chat/medic-features/MedicSelectorContent.vue.d.ts +1060 -0
  100. package/dist/types/components/chat/medic-features/MedicSelectorContent.vue.d.ts.map +1 -0
  101. package/dist/types/components/chat/medic-features/PrescribtionDisplay.vue.d.ts +1431 -0
  102. package/dist/types/components/chat/medic-features/PrescribtionDisplay.vue.d.ts.map +1 -0
  103. package/dist/types/components/chat/profile/FileDisplay.vue.d.ts +28 -0
  104. package/dist/types/components/chat/profile/FileDisplay.vue.d.ts.map +1 -0
  105. package/dist/types/components/general/FileFormatDisplay.vue.d.ts +60 -0
  106. package/dist/types/components/general/FileFormatDisplay.vue.d.ts.map +1 -0
  107. package/dist/types/components/general/LoadingStatus.vue.d.ts +59 -0
  108. package/dist/types/components/general/LoadingStatus.vue.d.ts.map +1 -0
  109. package/dist/types/components/general/NoDataDisplay.vue.d.ts +24 -0
  110. package/dist/types/components/general/NoDataDisplay.vue.d.ts.map +1 -0
  111. package/dist/types/components/general/SafeEmojiText.vue.d.ts +24 -0
  112. package/dist/types/components/general/SafeEmojiText.vue.d.ts.map +1 -0
  113. package/dist/types/components/global/BCarousel.vue.d.ts +48 -0
  114. package/dist/types/components/global/BCarousel.vue.d.ts.map +1 -0
  115. package/dist/types/composables/chat/useChatRecording.d.ts +74 -0
  116. package/dist/types/composables/chat/useChatRecording.d.ts.map +1 -0
  117. package/dist/types/composables/useAppPermissions.d.ts +25 -0
  118. package/dist/types/composables/useAppPermissions.d.ts.map +1 -0
  119. package/dist/types/composables/useAppToast.d.ts +6 -0
  120. package/dist/types/composables/useAppToast.d.ts.map +1 -0
  121. package/dist/types/composables/useClickOutside.d.ts +3 -0
  122. package/dist/types/composables/useClickOutside.d.ts.map +1 -0
  123. package/dist/types/composables/useDate.d.ts +24 -0
  124. package/dist/types/composables/useDate.d.ts.map +1 -0
  125. package/dist/types/composables/useDevice.d.ts +32 -0
  126. package/dist/types/composables/useDevice.d.ts.map +1 -0
  127. package/dist/types/composables/useLocale.d.ts +12 -0
  128. package/dist/types/composables/useLocale.d.ts.map +1 -0
  129. package/dist/types/composables/useTheme.d.ts +4 -0
  130. package/dist/types/composables/useTheme.d.ts.map +1 -0
  131. package/dist/types/composables/useValidation.d.ts +20 -0
  132. package/dist/types/composables/useValidation.d.ts.map +1 -0
  133. package/dist/types/composables/useWindowSize.d.ts +5 -0
  134. package/dist/types/composables/useWindowSize.d.ts.map +1 -0
  135. package/dist/types/directives/filePicker.d.ts +4 -0
  136. package/dist/types/directives/filePicker.d.ts.map +1 -0
  137. package/dist/types/directives/imagePicker.d.ts +4 -0
  138. package/dist/types/directives/imagePicker.d.ts.map +1 -0
  139. package/dist/types/directives/loading.d.ts +6 -0
  140. package/dist/types/directives/loading.d.ts.map +1 -0
  141. package/dist/types/index.d.ts +10 -0
  142. package/dist/types/index.d.ts.map +1 -0
  143. package/dist/types/install.d.ts +20 -0
  144. package/dist/types/install.d.ts.map +1 -0
  145. package/dist/types/mock/chat.seed.d.ts +20 -0
  146. package/dist/types/mock/chat.seed.d.ts.map +1 -0
  147. package/dist/types/mock/helpers.d.ts +3 -0
  148. package/dist/types/mock/helpers.d.ts.map +1 -0
  149. package/dist/types/mock/index.d.ts +5 -0
  150. package/dist/types/mock/index.d.ts.map +1 -0
  151. package/dist/types/mock/medication.seed.d.ts +4 -0
  152. package/dist/types/mock/medication.seed.d.ts.map +1 -0
  153. package/dist/types/mock/service.seed.d.ts +13 -0
  154. package/dist/types/mock/service.seed.d.ts.map +1 -0
  155. package/dist/types/nuxt-shims.d.ts +43 -0
  156. package/dist/types/nuxt-shims.d.ts.map +1 -0
  157. package/dist/types/prime-preset.d.ts +72 -0
  158. package/dist/types/prime-preset.d.ts.map +1 -0
  159. package/dist/types/stores/callStore.d.ts +518 -0
  160. package/dist/types/stores/callStore.d.ts.map +1 -0
  161. package/dist/types/stores/chatActionStore.d.ts +11303 -0
  162. package/dist/types/stores/chatActionStore.d.ts.map +1 -0
  163. package/dist/types/stores/chatStore.d.ts +2966 -0
  164. package/dist/types/stores/chatStore.d.ts.map +1 -0
  165. package/dist/types/stores/createStores.d.ts +19290 -0
  166. package/dist/types/stores/createStores.d.ts.map +1 -0
  167. package/dist/types/stores/medicationsStore.d.ts +3542 -0
  168. package/dist/types/stores/medicationsStore.d.ts.map +1 -0
  169. package/dist/types/stores/serviceStore.d.ts +953 -0
  170. package/dist/types/stores/serviceStore.d.ts.map +1 -0
  171. package/dist/types/themes/factory.d.ts +4 -0
  172. package/dist/types/themes/factory.d.ts.map +1 -0
  173. package/dist/types/types/address.d.ts +26 -0
  174. package/dist/types/types/address.d.ts.map +1 -0
  175. package/dist/types/types/calendar.d.ts +88 -0
  176. package/dist/types/types/calendar.d.ts.map +1 -0
  177. package/dist/types/types/call.d.ts +9 -0
  178. package/dist/types/types/call.d.ts.map +1 -0
  179. package/dist/types/types/chat.d.ts +71 -0
  180. package/dist/types/types/chat.d.ts.map +1 -0
  181. package/dist/types/types/clinic.d.ts +7 -0
  182. package/dist/types/types/clinic.d.ts.map +1 -0
  183. package/dist/types/types/components/chat-input.d.ts +4 -0
  184. package/dist/types/types/components/chat-input.d.ts.map +1 -0
  185. package/dist/types/types/components/input.d.ts +13 -0
  186. package/dist/types/types/components/input.d.ts.map +1 -0
  187. package/dist/types/types/components/menu-options.d.ts +7 -0
  188. package/dist/types/types/components/menu-options.d.ts.map +1 -0
  189. package/dist/types/types/components/menu.d.ts +5 -0
  190. package/dist/types/types/components/menu.d.ts.map +1 -0
  191. package/dist/types/types/components/modal.d.ts +17 -0
  192. package/dist/types/types/components/modal.d.ts.map +1 -0
  193. package/dist/types/types/components/nav-item.d.ts +11 -0
  194. package/dist/types/types/components/nav-item.d.ts.map +1 -0
  195. package/dist/types/types/components/nav-sub-item.d.ts +9 -0
  196. package/dist/types/types/components/nav-sub-item.d.ts.map +1 -0
  197. package/dist/types/types/components/popup.d.ts +5 -0
  198. package/dist/types/types/components/popup.d.ts.map +1 -0
  199. package/dist/types/types/components/select.d.ts +8 -0
  200. package/dist/types/types/components/select.d.ts.map +1 -0
  201. package/dist/types/types/components/toast.d.ts +5 -0
  202. package/dist/types/types/components/toast.d.ts.map +1 -0
  203. package/dist/types/types/env/runtimeConfig.d.ts +22 -0
  204. package/dist/types/types/invoice.d.ts +8 -0
  205. package/dist/types/types/invoice.d.ts.map +1 -0
  206. package/dist/types/types/medic.d.ts +6 -0
  207. package/dist/types/types/medic.d.ts.map +1 -0
  208. package/dist/types/types/medication.d.ts +25 -0
  209. package/dist/types/types/medication.d.ts.map +1 -0
  210. package/dist/types/types/notification.d.ts +10 -0
  211. package/dist/types/types/notification.d.ts.map +1 -0
  212. package/dist/types/types/service.d.ts +25 -0
  213. package/dist/types/types/service.d.ts.map +1 -0
  214. package/dist/types/types/story.d.ts +12 -0
  215. package/dist/types/types/story.d.ts.map +1 -0
  216. package/dist/types/types/theme.d.ts +26 -0
  217. package/dist/types/types/theme.d.ts.map +1 -0
  218. package/dist/types/utils/emojiParser.d.ts +2 -0
  219. package/dist/types/utils/emojiParser.d.ts.map +1 -0
  220. package/dist/types/utils/format.d.ts +52 -0
  221. package/dist/types/utils/format.d.ts.map +1 -0
  222. package/package.json +68 -0
@@ -0,0 +1,2966 @@
1
+ export declare const useChatStore: () => import('pinia').Store<"chat", Pick<{
2
+ currentUserId: import('vue').Ref<string, string>;
3
+ chosenRole: import('vue').Ref<import('../types/chat').UserRoleKey, import('../types/chat').UserRoleKey>;
4
+ currentUserBirthDate: import('vue').Ref<Date, Date>;
5
+ conversationStates: import('vue').Ref<{
6
+ "": {
7
+ data: {
8
+ id: string;
9
+ name: string;
10
+ lastName: string;
11
+ isOnline: boolean;
12
+ lastSeen: Date;
13
+ imageUrl: string;
14
+ nationalCode?: string;
15
+ phoneNumber?: string;
16
+ isActive: boolean;
17
+ birthDate: Date;
18
+ lastMessage?: {
19
+ id: string;
20
+ conversationId: string;
21
+ date: Date;
22
+ type: import('../types/chat').MessageType;
23
+ text?: string;
24
+ imageUrl?: string[];
25
+ fileUrl?: string;
26
+ voiceUrl?: string;
27
+ videoUrl?: string;
28
+ isEdited: boolean;
29
+ senderId: string;
30
+ isSent: boolean;
31
+ isRead: boolean;
32
+ repliedTo: /*elided*/ any;
33
+ request?: {
34
+ id: string;
35
+ type: "personal-info" | "add-person";
36
+ request: {
37
+ id: string;
38
+ date: Date;
39
+ status: import('../types/chat').status;
40
+ } | {
41
+ status?: "searching" | "pending" | "approved" | "payment" | "rejected" | "expired";
42
+ provider?: {
43
+ status: "pending" | "approved" | "payment" | "rejected" | "expired";
44
+ expertise: string;
45
+ service: {
46
+ id: string;
47
+ icon?: string;
48
+ label: string;
49
+ fellowships: {
50
+ id: string;
51
+ title: string;
52
+ }[];
53
+ expertiseLevel: "speciality" | "sub-speciality";
54
+ price: number;
55
+ };
56
+ clinics: {
57
+ id: string;
58
+ title: number;
59
+ latitude: number;
60
+ longitude: number;
61
+ }[];
62
+ fellowships: {
63
+ id: string;
64
+ title: string;
65
+ }[];
66
+ type: import('../types/service').InsitutionType;
67
+ illnesses?: {
68
+ [x: string]: unknown;
69
+ id: number | string;
70
+ name: string;
71
+ }[];
72
+ id: string;
73
+ name: string;
74
+ lastName: string;
75
+ isOnline: boolean;
76
+ lastSeen: Date;
77
+ imageUrl: string;
78
+ nationalCode?: string;
79
+ phoneNumber?: string;
80
+ isActive: boolean;
81
+ birthDate: Date;
82
+ lastMessage?: /*elided*/ any;
83
+ unreadCount?: number;
84
+ serviceType?: "video-call" | "voice-call" | "chat";
85
+ userType: import('../types/chat').UserRoleKey[];
86
+ }[];
87
+ service?: {
88
+ id: string;
89
+ icon?: string;
90
+ label: string;
91
+ fellowships: {
92
+ id: string;
93
+ title: string;
94
+ }[];
95
+ expertiseLevel: "speciality" | "sub-speciality";
96
+ price: number;
97
+ };
98
+ serviceType?: import('../types/chat').ServicePresence;
99
+ invoice?: {
100
+ [x: string]: unknown;
101
+ id: number | string;
102
+ amount?: number;
103
+ currency?: string;
104
+ status?: string;
105
+ };
106
+ id: string;
107
+ icon?: string;
108
+ label: string;
109
+ fellowships: {
110
+ id: string;
111
+ title: string;
112
+ }[];
113
+ expertiseLevel: "speciality" | "sub-speciality";
114
+ price: number;
115
+ };
116
+ };
117
+ };
118
+ unreadCount?: number;
119
+ serviceType?: "video-call" | "voice-call" | "chat";
120
+ userType: import('../types/chat').UserRoleKey[];
121
+ }[];
122
+ loading: boolean;
123
+ page: number;
124
+ hasNextPage: boolean;
125
+ };
126
+ online: {
127
+ data: {
128
+ id: string;
129
+ name: string;
130
+ lastName: string;
131
+ isOnline: boolean;
132
+ lastSeen: Date;
133
+ imageUrl: string;
134
+ nationalCode?: string;
135
+ phoneNumber?: string;
136
+ isActive: boolean;
137
+ birthDate: Date;
138
+ lastMessage?: {
139
+ id: string;
140
+ conversationId: string;
141
+ date: Date;
142
+ type: import('../types/chat').MessageType;
143
+ text?: string;
144
+ imageUrl?: string[];
145
+ fileUrl?: string;
146
+ voiceUrl?: string;
147
+ videoUrl?: string;
148
+ isEdited: boolean;
149
+ senderId: string;
150
+ isSent: boolean;
151
+ isRead: boolean;
152
+ repliedTo: /*elided*/ any;
153
+ request?: {
154
+ id: string;
155
+ type: "personal-info" | "add-person";
156
+ request: {
157
+ id: string;
158
+ date: Date;
159
+ status: import('../types/chat').status;
160
+ } | {
161
+ status?: "searching" | "pending" | "approved" | "payment" | "rejected" | "expired";
162
+ provider?: {
163
+ status: "pending" | "approved" | "payment" | "rejected" | "expired";
164
+ expertise: string;
165
+ service: {
166
+ id: string;
167
+ icon?: string;
168
+ label: string;
169
+ fellowships: {
170
+ id: string;
171
+ title: string;
172
+ }[];
173
+ expertiseLevel: "speciality" | "sub-speciality";
174
+ price: number;
175
+ };
176
+ clinics: {
177
+ id: string;
178
+ title: number;
179
+ latitude: number;
180
+ longitude: number;
181
+ }[];
182
+ fellowships: {
183
+ id: string;
184
+ title: string;
185
+ }[];
186
+ type: import('../types/service').InsitutionType;
187
+ illnesses?: {
188
+ [x: string]: unknown;
189
+ id: number | string;
190
+ name: string;
191
+ }[];
192
+ id: string;
193
+ name: string;
194
+ lastName: string;
195
+ isOnline: boolean;
196
+ lastSeen: Date;
197
+ imageUrl: string;
198
+ nationalCode?: string;
199
+ phoneNumber?: string;
200
+ isActive: boolean;
201
+ birthDate: Date;
202
+ lastMessage?: /*elided*/ any;
203
+ unreadCount?: number;
204
+ serviceType?: "video-call" | "voice-call" | "chat";
205
+ userType: import('../types/chat').UserRoleKey[];
206
+ }[];
207
+ service?: {
208
+ id: string;
209
+ icon?: string;
210
+ label: string;
211
+ fellowships: {
212
+ id: string;
213
+ title: string;
214
+ }[];
215
+ expertiseLevel: "speciality" | "sub-speciality";
216
+ price: number;
217
+ };
218
+ serviceType?: import('../types/chat').ServicePresence;
219
+ invoice?: {
220
+ [x: string]: unknown;
221
+ id: number | string;
222
+ amount?: number;
223
+ currency?: string;
224
+ status?: string;
225
+ };
226
+ id: string;
227
+ icon?: string;
228
+ label: string;
229
+ fellowships: {
230
+ id: string;
231
+ title: string;
232
+ }[];
233
+ expertiseLevel: "speciality" | "sub-speciality";
234
+ price: number;
235
+ };
236
+ };
237
+ };
238
+ unreadCount?: number;
239
+ serviceType?: "video-call" | "voice-call" | "chat";
240
+ userType: import('../types/chat').UserRoleKey[];
241
+ }[];
242
+ loading: boolean;
243
+ page: number;
244
+ hasNextPage: boolean;
245
+ };
246
+ ended: {
247
+ data: {
248
+ id: string;
249
+ name: string;
250
+ lastName: string;
251
+ isOnline: boolean;
252
+ lastSeen: Date;
253
+ imageUrl: string;
254
+ nationalCode?: string;
255
+ phoneNumber?: string;
256
+ isActive: boolean;
257
+ birthDate: Date;
258
+ lastMessage?: {
259
+ id: string;
260
+ conversationId: string;
261
+ date: Date;
262
+ type: import('../types/chat').MessageType;
263
+ text?: string;
264
+ imageUrl?: string[];
265
+ fileUrl?: string;
266
+ voiceUrl?: string;
267
+ videoUrl?: string;
268
+ isEdited: boolean;
269
+ senderId: string;
270
+ isSent: boolean;
271
+ isRead: boolean;
272
+ repliedTo: /*elided*/ any;
273
+ request?: {
274
+ id: string;
275
+ type: "personal-info" | "add-person";
276
+ request: {
277
+ id: string;
278
+ date: Date;
279
+ status: import('../types/chat').status;
280
+ } | {
281
+ status?: "searching" | "pending" | "approved" | "payment" | "rejected" | "expired";
282
+ provider?: {
283
+ status: "pending" | "approved" | "payment" | "rejected" | "expired";
284
+ expertise: string;
285
+ service: {
286
+ id: string;
287
+ icon?: string;
288
+ label: string;
289
+ fellowships: {
290
+ id: string;
291
+ title: string;
292
+ }[];
293
+ expertiseLevel: "speciality" | "sub-speciality";
294
+ price: number;
295
+ };
296
+ clinics: {
297
+ id: string;
298
+ title: number;
299
+ latitude: number;
300
+ longitude: number;
301
+ }[];
302
+ fellowships: {
303
+ id: string;
304
+ title: string;
305
+ }[];
306
+ type: import('../types/service').InsitutionType;
307
+ illnesses?: {
308
+ [x: string]: unknown;
309
+ id: number | string;
310
+ name: string;
311
+ }[];
312
+ id: string;
313
+ name: string;
314
+ lastName: string;
315
+ isOnline: boolean;
316
+ lastSeen: Date;
317
+ imageUrl: string;
318
+ nationalCode?: string;
319
+ phoneNumber?: string;
320
+ isActive: boolean;
321
+ birthDate: Date;
322
+ lastMessage?: /*elided*/ any;
323
+ unreadCount?: number;
324
+ serviceType?: "video-call" | "voice-call" | "chat";
325
+ userType: import('../types/chat').UserRoleKey[];
326
+ }[];
327
+ service?: {
328
+ id: string;
329
+ icon?: string;
330
+ label: string;
331
+ fellowships: {
332
+ id: string;
333
+ title: string;
334
+ }[];
335
+ expertiseLevel: "speciality" | "sub-speciality";
336
+ price: number;
337
+ };
338
+ serviceType?: import('../types/chat').ServicePresence;
339
+ invoice?: {
340
+ [x: string]: unknown;
341
+ id: number | string;
342
+ amount?: number;
343
+ currency?: string;
344
+ status?: string;
345
+ };
346
+ id: string;
347
+ icon?: string;
348
+ label: string;
349
+ fellowships: {
350
+ id: string;
351
+ title: string;
352
+ }[];
353
+ expertiseLevel: "speciality" | "sub-speciality";
354
+ price: number;
355
+ };
356
+ };
357
+ };
358
+ unreadCount?: number;
359
+ serviceType?: "video-call" | "voice-call" | "chat";
360
+ userType: import('../types/chat').UserRoleKey[];
361
+ }[];
362
+ loading: boolean;
363
+ page: number;
364
+ hasNextPage: boolean;
365
+ };
366
+ active: {
367
+ data: {
368
+ id: string;
369
+ name: string;
370
+ lastName: string;
371
+ isOnline: boolean;
372
+ lastSeen: Date;
373
+ imageUrl: string;
374
+ nationalCode?: string;
375
+ phoneNumber?: string;
376
+ isActive: boolean;
377
+ birthDate: Date;
378
+ lastMessage?: {
379
+ id: string;
380
+ conversationId: string;
381
+ date: Date;
382
+ type: import('../types/chat').MessageType;
383
+ text?: string;
384
+ imageUrl?: string[];
385
+ fileUrl?: string;
386
+ voiceUrl?: string;
387
+ videoUrl?: string;
388
+ isEdited: boolean;
389
+ senderId: string;
390
+ isSent: boolean;
391
+ isRead: boolean;
392
+ repliedTo: /*elided*/ any;
393
+ request?: {
394
+ id: string;
395
+ type: "personal-info" | "add-person";
396
+ request: {
397
+ id: string;
398
+ date: Date;
399
+ status: import('../types/chat').status;
400
+ } | {
401
+ status?: "searching" | "pending" | "approved" | "payment" | "rejected" | "expired";
402
+ provider?: {
403
+ status: "pending" | "approved" | "payment" | "rejected" | "expired";
404
+ expertise: string;
405
+ service: {
406
+ id: string;
407
+ icon?: string;
408
+ label: string;
409
+ fellowships: {
410
+ id: string;
411
+ title: string;
412
+ }[];
413
+ expertiseLevel: "speciality" | "sub-speciality";
414
+ price: number;
415
+ };
416
+ clinics: {
417
+ id: string;
418
+ title: number;
419
+ latitude: number;
420
+ longitude: number;
421
+ }[];
422
+ fellowships: {
423
+ id: string;
424
+ title: string;
425
+ }[];
426
+ type: import('../types/service').InsitutionType;
427
+ illnesses?: {
428
+ [x: string]: unknown;
429
+ id: number | string;
430
+ name: string;
431
+ }[];
432
+ id: string;
433
+ name: string;
434
+ lastName: string;
435
+ isOnline: boolean;
436
+ lastSeen: Date;
437
+ imageUrl: string;
438
+ nationalCode?: string;
439
+ phoneNumber?: string;
440
+ isActive: boolean;
441
+ birthDate: Date;
442
+ lastMessage?: /*elided*/ any;
443
+ unreadCount?: number;
444
+ serviceType?: "video-call" | "voice-call" | "chat";
445
+ userType: import('../types/chat').UserRoleKey[];
446
+ }[];
447
+ service?: {
448
+ id: string;
449
+ icon?: string;
450
+ label: string;
451
+ fellowships: {
452
+ id: string;
453
+ title: string;
454
+ }[];
455
+ expertiseLevel: "speciality" | "sub-speciality";
456
+ price: number;
457
+ };
458
+ serviceType?: import('../types/chat').ServicePresence;
459
+ invoice?: {
460
+ [x: string]: unknown;
461
+ id: number | string;
462
+ amount?: number;
463
+ currency?: string;
464
+ status?: string;
465
+ };
466
+ id: string;
467
+ icon?: string;
468
+ label: string;
469
+ fellowships: {
470
+ id: string;
471
+ title: string;
472
+ }[];
473
+ expertiseLevel: "speciality" | "sub-speciality";
474
+ price: number;
475
+ };
476
+ };
477
+ };
478
+ unreadCount?: number;
479
+ serviceType?: "video-call" | "voice-call" | "chat";
480
+ userType: import('../types/chat').UserRoleKey[];
481
+ }[];
482
+ loading: boolean;
483
+ page: number;
484
+ hasNextPage: boolean;
485
+ };
486
+ }, Record<import('../types/chat').FilterKeys, {
487
+ data: import('../types/chat').Contact[];
488
+ loading: boolean;
489
+ page: number;
490
+ hasNextPage: boolean;
491
+ }> | {
492
+ "": {
493
+ data: {
494
+ id: string;
495
+ name: string;
496
+ lastName: string;
497
+ isOnline: boolean;
498
+ lastSeen: Date;
499
+ imageUrl: string;
500
+ nationalCode?: string;
501
+ phoneNumber?: string;
502
+ isActive: boolean;
503
+ birthDate: Date;
504
+ lastMessage?: {
505
+ id: string;
506
+ conversationId: string;
507
+ date: Date;
508
+ type: import('../types/chat').MessageType;
509
+ text?: string;
510
+ imageUrl?: string[];
511
+ fileUrl?: string;
512
+ voiceUrl?: string;
513
+ videoUrl?: string;
514
+ isEdited: boolean;
515
+ senderId: string;
516
+ isSent: boolean;
517
+ isRead: boolean;
518
+ repliedTo: /*elided*/ any;
519
+ request?: {
520
+ id: string;
521
+ type: "personal-info" | "add-person";
522
+ request: {
523
+ id: string;
524
+ date: Date;
525
+ status: import('../types/chat').status;
526
+ } | {
527
+ status?: "searching" | "pending" | "approved" | "payment" | "rejected" | "expired";
528
+ provider?: {
529
+ status: "pending" | "approved" | "payment" | "rejected" | "expired";
530
+ expertise: string;
531
+ service: {
532
+ id: string;
533
+ icon?: string;
534
+ label: string;
535
+ fellowships: {
536
+ id: string;
537
+ title: string;
538
+ }[];
539
+ expertiseLevel: "speciality" | "sub-speciality";
540
+ price: number;
541
+ };
542
+ clinics: {
543
+ id: string;
544
+ title: number;
545
+ latitude: number;
546
+ longitude: number;
547
+ }[];
548
+ fellowships: {
549
+ id: string;
550
+ title: string;
551
+ }[];
552
+ type: import('../types/service').InsitutionType;
553
+ illnesses?: {
554
+ [x: string]: unknown;
555
+ id: number | string;
556
+ name: string;
557
+ }[];
558
+ id: string;
559
+ name: string;
560
+ lastName: string;
561
+ isOnline: boolean;
562
+ lastSeen: Date;
563
+ imageUrl: string;
564
+ nationalCode?: string;
565
+ phoneNumber?: string;
566
+ isActive: boolean;
567
+ birthDate: Date;
568
+ lastMessage?: /*elided*/ any;
569
+ unreadCount?: number;
570
+ serviceType?: "video-call" | "voice-call" | "chat";
571
+ userType: import('../types/chat').UserRoleKey[];
572
+ }[];
573
+ service?: {
574
+ id: string;
575
+ icon?: string;
576
+ label: string;
577
+ fellowships: {
578
+ id: string;
579
+ title: string;
580
+ }[];
581
+ expertiseLevel: "speciality" | "sub-speciality";
582
+ price: number;
583
+ };
584
+ serviceType?: import('../types/chat').ServicePresence;
585
+ invoice?: {
586
+ [x: string]: unknown;
587
+ id: number | string;
588
+ amount?: number;
589
+ currency?: string;
590
+ status?: string;
591
+ };
592
+ id: string;
593
+ icon?: string;
594
+ label: string;
595
+ fellowships: {
596
+ id: string;
597
+ title: string;
598
+ }[];
599
+ expertiseLevel: "speciality" | "sub-speciality";
600
+ price: number;
601
+ };
602
+ };
603
+ };
604
+ unreadCount?: number;
605
+ serviceType?: "video-call" | "voice-call" | "chat";
606
+ userType: import('../types/chat').UserRoleKey[];
607
+ }[];
608
+ loading: boolean;
609
+ page: number;
610
+ hasNextPage: boolean;
611
+ };
612
+ online: {
613
+ data: {
614
+ id: string;
615
+ name: string;
616
+ lastName: string;
617
+ isOnline: boolean;
618
+ lastSeen: Date;
619
+ imageUrl: string;
620
+ nationalCode?: string;
621
+ phoneNumber?: string;
622
+ isActive: boolean;
623
+ birthDate: Date;
624
+ lastMessage?: {
625
+ id: string;
626
+ conversationId: string;
627
+ date: Date;
628
+ type: import('../types/chat').MessageType;
629
+ text?: string;
630
+ imageUrl?: string[];
631
+ fileUrl?: string;
632
+ voiceUrl?: string;
633
+ videoUrl?: string;
634
+ isEdited: boolean;
635
+ senderId: string;
636
+ isSent: boolean;
637
+ isRead: boolean;
638
+ repliedTo: /*elided*/ any;
639
+ request?: {
640
+ id: string;
641
+ type: "personal-info" | "add-person";
642
+ request: {
643
+ id: string;
644
+ date: Date;
645
+ status: import('../types/chat').status;
646
+ } | {
647
+ status?: "searching" | "pending" | "approved" | "payment" | "rejected" | "expired";
648
+ provider?: {
649
+ status: "pending" | "approved" | "payment" | "rejected" | "expired";
650
+ expertise: string;
651
+ service: {
652
+ id: string;
653
+ icon?: string;
654
+ label: string;
655
+ fellowships: {
656
+ id: string;
657
+ title: string;
658
+ }[];
659
+ expertiseLevel: "speciality" | "sub-speciality";
660
+ price: number;
661
+ };
662
+ clinics: {
663
+ id: string;
664
+ title: number;
665
+ latitude: number;
666
+ longitude: number;
667
+ }[];
668
+ fellowships: {
669
+ id: string;
670
+ title: string;
671
+ }[];
672
+ type: import('../types/service').InsitutionType;
673
+ illnesses?: {
674
+ [x: string]: unknown;
675
+ id: number | string;
676
+ name: string;
677
+ }[];
678
+ id: string;
679
+ name: string;
680
+ lastName: string;
681
+ isOnline: boolean;
682
+ lastSeen: Date;
683
+ imageUrl: string;
684
+ nationalCode?: string;
685
+ phoneNumber?: string;
686
+ isActive: boolean;
687
+ birthDate: Date;
688
+ lastMessage?: /*elided*/ any;
689
+ unreadCount?: number;
690
+ serviceType?: "video-call" | "voice-call" | "chat";
691
+ userType: import('../types/chat').UserRoleKey[];
692
+ }[];
693
+ service?: {
694
+ id: string;
695
+ icon?: string;
696
+ label: string;
697
+ fellowships: {
698
+ id: string;
699
+ title: string;
700
+ }[];
701
+ expertiseLevel: "speciality" | "sub-speciality";
702
+ price: number;
703
+ };
704
+ serviceType?: import('../types/chat').ServicePresence;
705
+ invoice?: {
706
+ [x: string]: unknown;
707
+ id: number | string;
708
+ amount?: number;
709
+ currency?: string;
710
+ status?: string;
711
+ };
712
+ id: string;
713
+ icon?: string;
714
+ label: string;
715
+ fellowships: {
716
+ id: string;
717
+ title: string;
718
+ }[];
719
+ expertiseLevel: "speciality" | "sub-speciality";
720
+ price: number;
721
+ };
722
+ };
723
+ };
724
+ unreadCount?: number;
725
+ serviceType?: "video-call" | "voice-call" | "chat";
726
+ userType: import('../types/chat').UserRoleKey[];
727
+ }[];
728
+ loading: boolean;
729
+ page: number;
730
+ hasNextPage: boolean;
731
+ };
732
+ ended: {
733
+ data: {
734
+ id: string;
735
+ name: string;
736
+ lastName: string;
737
+ isOnline: boolean;
738
+ lastSeen: Date;
739
+ imageUrl: string;
740
+ nationalCode?: string;
741
+ phoneNumber?: string;
742
+ isActive: boolean;
743
+ birthDate: Date;
744
+ lastMessage?: {
745
+ id: string;
746
+ conversationId: string;
747
+ date: Date;
748
+ type: import('../types/chat').MessageType;
749
+ text?: string;
750
+ imageUrl?: string[];
751
+ fileUrl?: string;
752
+ voiceUrl?: string;
753
+ videoUrl?: string;
754
+ isEdited: boolean;
755
+ senderId: string;
756
+ isSent: boolean;
757
+ isRead: boolean;
758
+ repliedTo: /*elided*/ any;
759
+ request?: {
760
+ id: string;
761
+ type: "personal-info" | "add-person";
762
+ request: {
763
+ id: string;
764
+ date: Date;
765
+ status: import('../types/chat').status;
766
+ } | {
767
+ status?: "searching" | "pending" | "approved" | "payment" | "rejected" | "expired";
768
+ provider?: {
769
+ status: "pending" | "approved" | "payment" | "rejected" | "expired";
770
+ expertise: string;
771
+ service: {
772
+ id: string;
773
+ icon?: string;
774
+ label: string;
775
+ fellowships: {
776
+ id: string;
777
+ title: string;
778
+ }[];
779
+ expertiseLevel: "speciality" | "sub-speciality";
780
+ price: number;
781
+ };
782
+ clinics: {
783
+ id: string;
784
+ title: number;
785
+ latitude: number;
786
+ longitude: number;
787
+ }[];
788
+ fellowships: {
789
+ id: string;
790
+ title: string;
791
+ }[];
792
+ type: import('../types/service').InsitutionType;
793
+ illnesses?: {
794
+ [x: string]: unknown;
795
+ id: number | string;
796
+ name: string;
797
+ }[];
798
+ id: string;
799
+ name: string;
800
+ lastName: string;
801
+ isOnline: boolean;
802
+ lastSeen: Date;
803
+ imageUrl: string;
804
+ nationalCode?: string;
805
+ phoneNumber?: string;
806
+ isActive: boolean;
807
+ birthDate: Date;
808
+ lastMessage?: /*elided*/ any;
809
+ unreadCount?: number;
810
+ serviceType?: "video-call" | "voice-call" | "chat";
811
+ userType: import('../types/chat').UserRoleKey[];
812
+ }[];
813
+ service?: {
814
+ id: string;
815
+ icon?: string;
816
+ label: string;
817
+ fellowships: {
818
+ id: string;
819
+ title: string;
820
+ }[];
821
+ expertiseLevel: "speciality" | "sub-speciality";
822
+ price: number;
823
+ };
824
+ serviceType?: import('../types/chat').ServicePresence;
825
+ invoice?: {
826
+ [x: string]: unknown;
827
+ id: number | string;
828
+ amount?: number;
829
+ currency?: string;
830
+ status?: string;
831
+ };
832
+ id: string;
833
+ icon?: string;
834
+ label: string;
835
+ fellowships: {
836
+ id: string;
837
+ title: string;
838
+ }[];
839
+ expertiseLevel: "speciality" | "sub-speciality";
840
+ price: number;
841
+ };
842
+ };
843
+ };
844
+ unreadCount?: number;
845
+ serviceType?: "video-call" | "voice-call" | "chat";
846
+ userType: import('../types/chat').UserRoleKey[];
847
+ }[];
848
+ loading: boolean;
849
+ page: number;
850
+ hasNextPage: boolean;
851
+ };
852
+ active: {
853
+ data: {
854
+ id: string;
855
+ name: string;
856
+ lastName: string;
857
+ isOnline: boolean;
858
+ lastSeen: Date;
859
+ imageUrl: string;
860
+ nationalCode?: string;
861
+ phoneNumber?: string;
862
+ isActive: boolean;
863
+ birthDate: Date;
864
+ lastMessage?: {
865
+ id: string;
866
+ conversationId: string;
867
+ date: Date;
868
+ type: import('../types/chat').MessageType;
869
+ text?: string;
870
+ imageUrl?: string[];
871
+ fileUrl?: string;
872
+ voiceUrl?: string;
873
+ videoUrl?: string;
874
+ isEdited: boolean;
875
+ senderId: string;
876
+ isSent: boolean;
877
+ isRead: boolean;
878
+ repliedTo: /*elided*/ any;
879
+ request?: {
880
+ id: string;
881
+ type: "personal-info" | "add-person";
882
+ request: {
883
+ id: string;
884
+ date: Date;
885
+ status: import('../types/chat').status;
886
+ } | {
887
+ status?: "searching" | "pending" | "approved" | "payment" | "rejected" | "expired";
888
+ provider?: {
889
+ status: "pending" | "approved" | "payment" | "rejected" | "expired";
890
+ expertise: string;
891
+ service: {
892
+ id: string;
893
+ icon?: string;
894
+ label: string;
895
+ fellowships: {
896
+ id: string;
897
+ title: string;
898
+ }[];
899
+ expertiseLevel: "speciality" | "sub-speciality";
900
+ price: number;
901
+ };
902
+ clinics: {
903
+ id: string;
904
+ title: number;
905
+ latitude: number;
906
+ longitude: number;
907
+ }[];
908
+ fellowships: {
909
+ id: string;
910
+ title: string;
911
+ }[];
912
+ type: import('../types/service').InsitutionType;
913
+ illnesses?: {
914
+ [x: string]: unknown;
915
+ id: number | string;
916
+ name: string;
917
+ }[];
918
+ id: string;
919
+ name: string;
920
+ lastName: string;
921
+ isOnline: boolean;
922
+ lastSeen: Date;
923
+ imageUrl: string;
924
+ nationalCode?: string;
925
+ phoneNumber?: string;
926
+ isActive: boolean;
927
+ birthDate: Date;
928
+ lastMessage?: /*elided*/ any;
929
+ unreadCount?: number;
930
+ serviceType?: "video-call" | "voice-call" | "chat";
931
+ userType: import('../types/chat').UserRoleKey[];
932
+ }[];
933
+ service?: {
934
+ id: string;
935
+ icon?: string;
936
+ label: string;
937
+ fellowships: {
938
+ id: string;
939
+ title: string;
940
+ }[];
941
+ expertiseLevel: "speciality" | "sub-speciality";
942
+ price: number;
943
+ };
944
+ serviceType?: import('../types/chat').ServicePresence;
945
+ invoice?: {
946
+ [x: string]: unknown;
947
+ id: number | string;
948
+ amount?: number;
949
+ currency?: string;
950
+ status?: string;
951
+ };
952
+ id: string;
953
+ icon?: string;
954
+ label: string;
955
+ fellowships: {
956
+ id: string;
957
+ title: string;
958
+ }[];
959
+ expertiseLevel: "speciality" | "sub-speciality";
960
+ price: number;
961
+ };
962
+ };
963
+ };
964
+ unreadCount?: number;
965
+ serviceType?: "video-call" | "voice-call" | "chat";
966
+ userType: import('../types/chat').UserRoleKey[];
967
+ }[];
968
+ loading: boolean;
969
+ page: number;
970
+ hasNextPage: boolean;
971
+ };
972
+ }>;
973
+ activeConversationId: import('vue').Ref<string, string>;
974
+ profileViewOpen: import('vue').Ref<boolean, boolean>;
975
+ messagesMap: import('vue').Ref<Record<string, import('../types/chat').Message[]>, Record<string, import('../types/chat').Message[]>>;
976
+ typingByConversation: import('vue').Ref<Record<string, string>, Record<string, string>>;
977
+ chatsPerPage: import('vue').ComputedRef<number>;
978
+ unreadCount: import('vue').ComputedRef<number>;
979
+ setSelectedChat: (id: string | null) => void;
980
+ openProfile: () => void;
981
+ closeProfile: () => void;
982
+ fetchConversations: (filter?: import('../types/chat').FilterKeys, page?: number, search?: string) => Promise<void>;
983
+ loadNextPage: (filter: import('../types/chat').FilterKeys) => Promise<void>;
984
+ getDisplayedContacts: (filter: import('../types/chat').FilterKeys) => import('../types/chat').Contact[];
985
+ getContactById: (id: string) => import('../types/chat').Contact | null;
986
+ markAsRead: (conversationId: string) => void;
987
+ updateLastMessage: (conversationId: string, message: import('../types/chat').Message) => void;
988
+ patchLastMessage: (conversationId: string, messageId: string, updates: Partial<import('../types/chat').Message>) => void;
989
+ }, "currentUserId" | "chosenRole" | "currentUserBirthDate" | "conversationStates" | "activeConversationId" | "profileViewOpen" | "messagesMap" | "typingByConversation">, Pick<{
990
+ currentUserId: import('vue').Ref<string, string>;
991
+ chosenRole: import('vue').Ref<import('../types/chat').UserRoleKey, import('../types/chat').UserRoleKey>;
992
+ currentUserBirthDate: import('vue').Ref<Date, Date>;
993
+ conversationStates: import('vue').Ref<{
994
+ "": {
995
+ data: {
996
+ id: string;
997
+ name: string;
998
+ lastName: string;
999
+ isOnline: boolean;
1000
+ lastSeen: Date;
1001
+ imageUrl: string;
1002
+ nationalCode?: string;
1003
+ phoneNumber?: string;
1004
+ isActive: boolean;
1005
+ birthDate: Date;
1006
+ lastMessage?: {
1007
+ id: string;
1008
+ conversationId: string;
1009
+ date: Date;
1010
+ type: import('../types/chat').MessageType;
1011
+ text?: string;
1012
+ imageUrl?: string[];
1013
+ fileUrl?: string;
1014
+ voiceUrl?: string;
1015
+ videoUrl?: string;
1016
+ isEdited: boolean;
1017
+ senderId: string;
1018
+ isSent: boolean;
1019
+ isRead: boolean;
1020
+ repliedTo: /*elided*/ any;
1021
+ request?: {
1022
+ id: string;
1023
+ type: "personal-info" | "add-person";
1024
+ request: {
1025
+ id: string;
1026
+ date: Date;
1027
+ status: import('../types/chat').status;
1028
+ } | {
1029
+ status?: "searching" | "pending" | "approved" | "payment" | "rejected" | "expired";
1030
+ provider?: {
1031
+ status: "pending" | "approved" | "payment" | "rejected" | "expired";
1032
+ expertise: string;
1033
+ service: {
1034
+ id: string;
1035
+ icon?: string;
1036
+ label: string;
1037
+ fellowships: {
1038
+ id: string;
1039
+ title: string;
1040
+ }[];
1041
+ expertiseLevel: "speciality" | "sub-speciality";
1042
+ price: number;
1043
+ };
1044
+ clinics: {
1045
+ id: string;
1046
+ title: number;
1047
+ latitude: number;
1048
+ longitude: number;
1049
+ }[];
1050
+ fellowships: {
1051
+ id: string;
1052
+ title: string;
1053
+ }[];
1054
+ type: import('../types/service').InsitutionType;
1055
+ illnesses?: {
1056
+ [x: string]: unknown;
1057
+ id: number | string;
1058
+ name: string;
1059
+ }[];
1060
+ id: string;
1061
+ name: string;
1062
+ lastName: string;
1063
+ isOnline: boolean;
1064
+ lastSeen: Date;
1065
+ imageUrl: string;
1066
+ nationalCode?: string;
1067
+ phoneNumber?: string;
1068
+ isActive: boolean;
1069
+ birthDate: Date;
1070
+ lastMessage?: /*elided*/ any;
1071
+ unreadCount?: number;
1072
+ serviceType?: "video-call" | "voice-call" | "chat";
1073
+ userType: import('../types/chat').UserRoleKey[];
1074
+ }[];
1075
+ service?: {
1076
+ id: string;
1077
+ icon?: string;
1078
+ label: string;
1079
+ fellowships: {
1080
+ id: string;
1081
+ title: string;
1082
+ }[];
1083
+ expertiseLevel: "speciality" | "sub-speciality";
1084
+ price: number;
1085
+ };
1086
+ serviceType?: import('../types/chat').ServicePresence;
1087
+ invoice?: {
1088
+ [x: string]: unknown;
1089
+ id: number | string;
1090
+ amount?: number;
1091
+ currency?: string;
1092
+ status?: string;
1093
+ };
1094
+ id: string;
1095
+ icon?: string;
1096
+ label: string;
1097
+ fellowships: {
1098
+ id: string;
1099
+ title: string;
1100
+ }[];
1101
+ expertiseLevel: "speciality" | "sub-speciality";
1102
+ price: number;
1103
+ };
1104
+ };
1105
+ };
1106
+ unreadCount?: number;
1107
+ serviceType?: "video-call" | "voice-call" | "chat";
1108
+ userType: import('../types/chat').UserRoleKey[];
1109
+ }[];
1110
+ loading: boolean;
1111
+ page: number;
1112
+ hasNextPage: boolean;
1113
+ };
1114
+ online: {
1115
+ data: {
1116
+ id: string;
1117
+ name: string;
1118
+ lastName: string;
1119
+ isOnline: boolean;
1120
+ lastSeen: Date;
1121
+ imageUrl: string;
1122
+ nationalCode?: string;
1123
+ phoneNumber?: string;
1124
+ isActive: boolean;
1125
+ birthDate: Date;
1126
+ lastMessage?: {
1127
+ id: string;
1128
+ conversationId: string;
1129
+ date: Date;
1130
+ type: import('../types/chat').MessageType;
1131
+ text?: string;
1132
+ imageUrl?: string[];
1133
+ fileUrl?: string;
1134
+ voiceUrl?: string;
1135
+ videoUrl?: string;
1136
+ isEdited: boolean;
1137
+ senderId: string;
1138
+ isSent: boolean;
1139
+ isRead: boolean;
1140
+ repliedTo: /*elided*/ any;
1141
+ request?: {
1142
+ id: string;
1143
+ type: "personal-info" | "add-person";
1144
+ request: {
1145
+ id: string;
1146
+ date: Date;
1147
+ status: import('../types/chat').status;
1148
+ } | {
1149
+ status?: "searching" | "pending" | "approved" | "payment" | "rejected" | "expired";
1150
+ provider?: {
1151
+ status: "pending" | "approved" | "payment" | "rejected" | "expired";
1152
+ expertise: string;
1153
+ service: {
1154
+ id: string;
1155
+ icon?: string;
1156
+ label: string;
1157
+ fellowships: {
1158
+ id: string;
1159
+ title: string;
1160
+ }[];
1161
+ expertiseLevel: "speciality" | "sub-speciality";
1162
+ price: number;
1163
+ };
1164
+ clinics: {
1165
+ id: string;
1166
+ title: number;
1167
+ latitude: number;
1168
+ longitude: number;
1169
+ }[];
1170
+ fellowships: {
1171
+ id: string;
1172
+ title: string;
1173
+ }[];
1174
+ type: import('../types/service').InsitutionType;
1175
+ illnesses?: {
1176
+ [x: string]: unknown;
1177
+ id: number | string;
1178
+ name: string;
1179
+ }[];
1180
+ id: string;
1181
+ name: string;
1182
+ lastName: string;
1183
+ isOnline: boolean;
1184
+ lastSeen: Date;
1185
+ imageUrl: string;
1186
+ nationalCode?: string;
1187
+ phoneNumber?: string;
1188
+ isActive: boolean;
1189
+ birthDate: Date;
1190
+ lastMessage?: /*elided*/ any;
1191
+ unreadCount?: number;
1192
+ serviceType?: "video-call" | "voice-call" | "chat";
1193
+ userType: import('../types/chat').UserRoleKey[];
1194
+ }[];
1195
+ service?: {
1196
+ id: string;
1197
+ icon?: string;
1198
+ label: string;
1199
+ fellowships: {
1200
+ id: string;
1201
+ title: string;
1202
+ }[];
1203
+ expertiseLevel: "speciality" | "sub-speciality";
1204
+ price: number;
1205
+ };
1206
+ serviceType?: import('../types/chat').ServicePresence;
1207
+ invoice?: {
1208
+ [x: string]: unknown;
1209
+ id: number | string;
1210
+ amount?: number;
1211
+ currency?: string;
1212
+ status?: string;
1213
+ };
1214
+ id: string;
1215
+ icon?: string;
1216
+ label: string;
1217
+ fellowships: {
1218
+ id: string;
1219
+ title: string;
1220
+ }[];
1221
+ expertiseLevel: "speciality" | "sub-speciality";
1222
+ price: number;
1223
+ };
1224
+ };
1225
+ };
1226
+ unreadCount?: number;
1227
+ serviceType?: "video-call" | "voice-call" | "chat";
1228
+ userType: import('../types/chat').UserRoleKey[];
1229
+ }[];
1230
+ loading: boolean;
1231
+ page: number;
1232
+ hasNextPage: boolean;
1233
+ };
1234
+ ended: {
1235
+ data: {
1236
+ id: string;
1237
+ name: string;
1238
+ lastName: string;
1239
+ isOnline: boolean;
1240
+ lastSeen: Date;
1241
+ imageUrl: string;
1242
+ nationalCode?: string;
1243
+ phoneNumber?: string;
1244
+ isActive: boolean;
1245
+ birthDate: Date;
1246
+ lastMessage?: {
1247
+ id: string;
1248
+ conversationId: string;
1249
+ date: Date;
1250
+ type: import('../types/chat').MessageType;
1251
+ text?: string;
1252
+ imageUrl?: string[];
1253
+ fileUrl?: string;
1254
+ voiceUrl?: string;
1255
+ videoUrl?: string;
1256
+ isEdited: boolean;
1257
+ senderId: string;
1258
+ isSent: boolean;
1259
+ isRead: boolean;
1260
+ repliedTo: /*elided*/ any;
1261
+ request?: {
1262
+ id: string;
1263
+ type: "personal-info" | "add-person";
1264
+ request: {
1265
+ id: string;
1266
+ date: Date;
1267
+ status: import('../types/chat').status;
1268
+ } | {
1269
+ status?: "searching" | "pending" | "approved" | "payment" | "rejected" | "expired";
1270
+ provider?: {
1271
+ status: "pending" | "approved" | "payment" | "rejected" | "expired";
1272
+ expertise: string;
1273
+ service: {
1274
+ id: string;
1275
+ icon?: string;
1276
+ label: string;
1277
+ fellowships: {
1278
+ id: string;
1279
+ title: string;
1280
+ }[];
1281
+ expertiseLevel: "speciality" | "sub-speciality";
1282
+ price: number;
1283
+ };
1284
+ clinics: {
1285
+ id: string;
1286
+ title: number;
1287
+ latitude: number;
1288
+ longitude: number;
1289
+ }[];
1290
+ fellowships: {
1291
+ id: string;
1292
+ title: string;
1293
+ }[];
1294
+ type: import('../types/service').InsitutionType;
1295
+ illnesses?: {
1296
+ [x: string]: unknown;
1297
+ id: number | string;
1298
+ name: string;
1299
+ }[];
1300
+ id: string;
1301
+ name: string;
1302
+ lastName: string;
1303
+ isOnline: boolean;
1304
+ lastSeen: Date;
1305
+ imageUrl: string;
1306
+ nationalCode?: string;
1307
+ phoneNumber?: string;
1308
+ isActive: boolean;
1309
+ birthDate: Date;
1310
+ lastMessage?: /*elided*/ any;
1311
+ unreadCount?: number;
1312
+ serviceType?: "video-call" | "voice-call" | "chat";
1313
+ userType: import('../types/chat').UserRoleKey[];
1314
+ }[];
1315
+ service?: {
1316
+ id: string;
1317
+ icon?: string;
1318
+ label: string;
1319
+ fellowships: {
1320
+ id: string;
1321
+ title: string;
1322
+ }[];
1323
+ expertiseLevel: "speciality" | "sub-speciality";
1324
+ price: number;
1325
+ };
1326
+ serviceType?: import('../types/chat').ServicePresence;
1327
+ invoice?: {
1328
+ [x: string]: unknown;
1329
+ id: number | string;
1330
+ amount?: number;
1331
+ currency?: string;
1332
+ status?: string;
1333
+ };
1334
+ id: string;
1335
+ icon?: string;
1336
+ label: string;
1337
+ fellowships: {
1338
+ id: string;
1339
+ title: string;
1340
+ }[];
1341
+ expertiseLevel: "speciality" | "sub-speciality";
1342
+ price: number;
1343
+ };
1344
+ };
1345
+ };
1346
+ unreadCount?: number;
1347
+ serviceType?: "video-call" | "voice-call" | "chat";
1348
+ userType: import('../types/chat').UserRoleKey[];
1349
+ }[];
1350
+ loading: boolean;
1351
+ page: number;
1352
+ hasNextPage: boolean;
1353
+ };
1354
+ active: {
1355
+ data: {
1356
+ id: string;
1357
+ name: string;
1358
+ lastName: string;
1359
+ isOnline: boolean;
1360
+ lastSeen: Date;
1361
+ imageUrl: string;
1362
+ nationalCode?: string;
1363
+ phoneNumber?: string;
1364
+ isActive: boolean;
1365
+ birthDate: Date;
1366
+ lastMessage?: {
1367
+ id: string;
1368
+ conversationId: string;
1369
+ date: Date;
1370
+ type: import('../types/chat').MessageType;
1371
+ text?: string;
1372
+ imageUrl?: string[];
1373
+ fileUrl?: string;
1374
+ voiceUrl?: string;
1375
+ videoUrl?: string;
1376
+ isEdited: boolean;
1377
+ senderId: string;
1378
+ isSent: boolean;
1379
+ isRead: boolean;
1380
+ repliedTo: /*elided*/ any;
1381
+ request?: {
1382
+ id: string;
1383
+ type: "personal-info" | "add-person";
1384
+ request: {
1385
+ id: string;
1386
+ date: Date;
1387
+ status: import('../types/chat').status;
1388
+ } | {
1389
+ status?: "searching" | "pending" | "approved" | "payment" | "rejected" | "expired";
1390
+ provider?: {
1391
+ status: "pending" | "approved" | "payment" | "rejected" | "expired";
1392
+ expertise: string;
1393
+ service: {
1394
+ id: string;
1395
+ icon?: string;
1396
+ label: string;
1397
+ fellowships: {
1398
+ id: string;
1399
+ title: string;
1400
+ }[];
1401
+ expertiseLevel: "speciality" | "sub-speciality";
1402
+ price: number;
1403
+ };
1404
+ clinics: {
1405
+ id: string;
1406
+ title: number;
1407
+ latitude: number;
1408
+ longitude: number;
1409
+ }[];
1410
+ fellowships: {
1411
+ id: string;
1412
+ title: string;
1413
+ }[];
1414
+ type: import('../types/service').InsitutionType;
1415
+ illnesses?: {
1416
+ [x: string]: unknown;
1417
+ id: number | string;
1418
+ name: string;
1419
+ }[];
1420
+ id: string;
1421
+ name: string;
1422
+ lastName: string;
1423
+ isOnline: boolean;
1424
+ lastSeen: Date;
1425
+ imageUrl: string;
1426
+ nationalCode?: string;
1427
+ phoneNumber?: string;
1428
+ isActive: boolean;
1429
+ birthDate: Date;
1430
+ lastMessage?: /*elided*/ any;
1431
+ unreadCount?: number;
1432
+ serviceType?: "video-call" | "voice-call" | "chat";
1433
+ userType: import('../types/chat').UserRoleKey[];
1434
+ }[];
1435
+ service?: {
1436
+ id: string;
1437
+ icon?: string;
1438
+ label: string;
1439
+ fellowships: {
1440
+ id: string;
1441
+ title: string;
1442
+ }[];
1443
+ expertiseLevel: "speciality" | "sub-speciality";
1444
+ price: number;
1445
+ };
1446
+ serviceType?: import('../types/chat').ServicePresence;
1447
+ invoice?: {
1448
+ [x: string]: unknown;
1449
+ id: number | string;
1450
+ amount?: number;
1451
+ currency?: string;
1452
+ status?: string;
1453
+ };
1454
+ id: string;
1455
+ icon?: string;
1456
+ label: string;
1457
+ fellowships: {
1458
+ id: string;
1459
+ title: string;
1460
+ }[];
1461
+ expertiseLevel: "speciality" | "sub-speciality";
1462
+ price: number;
1463
+ };
1464
+ };
1465
+ };
1466
+ unreadCount?: number;
1467
+ serviceType?: "video-call" | "voice-call" | "chat";
1468
+ userType: import('../types/chat').UserRoleKey[];
1469
+ }[];
1470
+ loading: boolean;
1471
+ page: number;
1472
+ hasNextPage: boolean;
1473
+ };
1474
+ }, Record<import('../types/chat').FilterKeys, {
1475
+ data: import('../types/chat').Contact[];
1476
+ loading: boolean;
1477
+ page: number;
1478
+ hasNextPage: boolean;
1479
+ }> | {
1480
+ "": {
1481
+ data: {
1482
+ id: string;
1483
+ name: string;
1484
+ lastName: string;
1485
+ isOnline: boolean;
1486
+ lastSeen: Date;
1487
+ imageUrl: string;
1488
+ nationalCode?: string;
1489
+ phoneNumber?: string;
1490
+ isActive: boolean;
1491
+ birthDate: Date;
1492
+ lastMessage?: {
1493
+ id: string;
1494
+ conversationId: string;
1495
+ date: Date;
1496
+ type: import('../types/chat').MessageType;
1497
+ text?: string;
1498
+ imageUrl?: string[];
1499
+ fileUrl?: string;
1500
+ voiceUrl?: string;
1501
+ videoUrl?: string;
1502
+ isEdited: boolean;
1503
+ senderId: string;
1504
+ isSent: boolean;
1505
+ isRead: boolean;
1506
+ repliedTo: /*elided*/ any;
1507
+ request?: {
1508
+ id: string;
1509
+ type: "personal-info" | "add-person";
1510
+ request: {
1511
+ id: string;
1512
+ date: Date;
1513
+ status: import('../types/chat').status;
1514
+ } | {
1515
+ status?: "searching" | "pending" | "approved" | "payment" | "rejected" | "expired";
1516
+ provider?: {
1517
+ status: "pending" | "approved" | "payment" | "rejected" | "expired";
1518
+ expertise: string;
1519
+ service: {
1520
+ id: string;
1521
+ icon?: string;
1522
+ label: string;
1523
+ fellowships: {
1524
+ id: string;
1525
+ title: string;
1526
+ }[];
1527
+ expertiseLevel: "speciality" | "sub-speciality";
1528
+ price: number;
1529
+ };
1530
+ clinics: {
1531
+ id: string;
1532
+ title: number;
1533
+ latitude: number;
1534
+ longitude: number;
1535
+ }[];
1536
+ fellowships: {
1537
+ id: string;
1538
+ title: string;
1539
+ }[];
1540
+ type: import('../types/service').InsitutionType;
1541
+ illnesses?: {
1542
+ [x: string]: unknown;
1543
+ id: number | string;
1544
+ name: string;
1545
+ }[];
1546
+ id: string;
1547
+ name: string;
1548
+ lastName: string;
1549
+ isOnline: boolean;
1550
+ lastSeen: Date;
1551
+ imageUrl: string;
1552
+ nationalCode?: string;
1553
+ phoneNumber?: string;
1554
+ isActive: boolean;
1555
+ birthDate: Date;
1556
+ lastMessage?: /*elided*/ any;
1557
+ unreadCount?: number;
1558
+ serviceType?: "video-call" | "voice-call" | "chat";
1559
+ userType: import('../types/chat').UserRoleKey[];
1560
+ }[];
1561
+ service?: {
1562
+ id: string;
1563
+ icon?: string;
1564
+ label: string;
1565
+ fellowships: {
1566
+ id: string;
1567
+ title: string;
1568
+ }[];
1569
+ expertiseLevel: "speciality" | "sub-speciality";
1570
+ price: number;
1571
+ };
1572
+ serviceType?: import('../types/chat').ServicePresence;
1573
+ invoice?: {
1574
+ [x: string]: unknown;
1575
+ id: number | string;
1576
+ amount?: number;
1577
+ currency?: string;
1578
+ status?: string;
1579
+ };
1580
+ id: string;
1581
+ icon?: string;
1582
+ label: string;
1583
+ fellowships: {
1584
+ id: string;
1585
+ title: string;
1586
+ }[];
1587
+ expertiseLevel: "speciality" | "sub-speciality";
1588
+ price: number;
1589
+ };
1590
+ };
1591
+ };
1592
+ unreadCount?: number;
1593
+ serviceType?: "video-call" | "voice-call" | "chat";
1594
+ userType: import('../types/chat').UserRoleKey[];
1595
+ }[];
1596
+ loading: boolean;
1597
+ page: number;
1598
+ hasNextPage: boolean;
1599
+ };
1600
+ online: {
1601
+ data: {
1602
+ id: string;
1603
+ name: string;
1604
+ lastName: string;
1605
+ isOnline: boolean;
1606
+ lastSeen: Date;
1607
+ imageUrl: string;
1608
+ nationalCode?: string;
1609
+ phoneNumber?: string;
1610
+ isActive: boolean;
1611
+ birthDate: Date;
1612
+ lastMessage?: {
1613
+ id: string;
1614
+ conversationId: string;
1615
+ date: Date;
1616
+ type: import('../types/chat').MessageType;
1617
+ text?: string;
1618
+ imageUrl?: string[];
1619
+ fileUrl?: string;
1620
+ voiceUrl?: string;
1621
+ videoUrl?: string;
1622
+ isEdited: boolean;
1623
+ senderId: string;
1624
+ isSent: boolean;
1625
+ isRead: boolean;
1626
+ repliedTo: /*elided*/ any;
1627
+ request?: {
1628
+ id: string;
1629
+ type: "personal-info" | "add-person";
1630
+ request: {
1631
+ id: string;
1632
+ date: Date;
1633
+ status: import('../types/chat').status;
1634
+ } | {
1635
+ status?: "searching" | "pending" | "approved" | "payment" | "rejected" | "expired";
1636
+ provider?: {
1637
+ status: "pending" | "approved" | "payment" | "rejected" | "expired";
1638
+ expertise: string;
1639
+ service: {
1640
+ id: string;
1641
+ icon?: string;
1642
+ label: string;
1643
+ fellowships: {
1644
+ id: string;
1645
+ title: string;
1646
+ }[];
1647
+ expertiseLevel: "speciality" | "sub-speciality";
1648
+ price: number;
1649
+ };
1650
+ clinics: {
1651
+ id: string;
1652
+ title: number;
1653
+ latitude: number;
1654
+ longitude: number;
1655
+ }[];
1656
+ fellowships: {
1657
+ id: string;
1658
+ title: string;
1659
+ }[];
1660
+ type: import('../types/service').InsitutionType;
1661
+ illnesses?: {
1662
+ [x: string]: unknown;
1663
+ id: number | string;
1664
+ name: string;
1665
+ }[];
1666
+ id: string;
1667
+ name: string;
1668
+ lastName: string;
1669
+ isOnline: boolean;
1670
+ lastSeen: Date;
1671
+ imageUrl: string;
1672
+ nationalCode?: string;
1673
+ phoneNumber?: string;
1674
+ isActive: boolean;
1675
+ birthDate: Date;
1676
+ lastMessage?: /*elided*/ any;
1677
+ unreadCount?: number;
1678
+ serviceType?: "video-call" | "voice-call" | "chat";
1679
+ userType: import('../types/chat').UserRoleKey[];
1680
+ }[];
1681
+ service?: {
1682
+ id: string;
1683
+ icon?: string;
1684
+ label: string;
1685
+ fellowships: {
1686
+ id: string;
1687
+ title: string;
1688
+ }[];
1689
+ expertiseLevel: "speciality" | "sub-speciality";
1690
+ price: number;
1691
+ };
1692
+ serviceType?: import('../types/chat').ServicePresence;
1693
+ invoice?: {
1694
+ [x: string]: unknown;
1695
+ id: number | string;
1696
+ amount?: number;
1697
+ currency?: string;
1698
+ status?: string;
1699
+ };
1700
+ id: string;
1701
+ icon?: string;
1702
+ label: string;
1703
+ fellowships: {
1704
+ id: string;
1705
+ title: string;
1706
+ }[];
1707
+ expertiseLevel: "speciality" | "sub-speciality";
1708
+ price: number;
1709
+ };
1710
+ };
1711
+ };
1712
+ unreadCount?: number;
1713
+ serviceType?: "video-call" | "voice-call" | "chat";
1714
+ userType: import('../types/chat').UserRoleKey[];
1715
+ }[];
1716
+ loading: boolean;
1717
+ page: number;
1718
+ hasNextPage: boolean;
1719
+ };
1720
+ ended: {
1721
+ data: {
1722
+ id: string;
1723
+ name: string;
1724
+ lastName: string;
1725
+ isOnline: boolean;
1726
+ lastSeen: Date;
1727
+ imageUrl: string;
1728
+ nationalCode?: string;
1729
+ phoneNumber?: string;
1730
+ isActive: boolean;
1731
+ birthDate: Date;
1732
+ lastMessage?: {
1733
+ id: string;
1734
+ conversationId: string;
1735
+ date: Date;
1736
+ type: import('../types/chat').MessageType;
1737
+ text?: string;
1738
+ imageUrl?: string[];
1739
+ fileUrl?: string;
1740
+ voiceUrl?: string;
1741
+ videoUrl?: string;
1742
+ isEdited: boolean;
1743
+ senderId: string;
1744
+ isSent: boolean;
1745
+ isRead: boolean;
1746
+ repliedTo: /*elided*/ any;
1747
+ request?: {
1748
+ id: string;
1749
+ type: "personal-info" | "add-person";
1750
+ request: {
1751
+ id: string;
1752
+ date: Date;
1753
+ status: import('../types/chat').status;
1754
+ } | {
1755
+ status?: "searching" | "pending" | "approved" | "payment" | "rejected" | "expired";
1756
+ provider?: {
1757
+ status: "pending" | "approved" | "payment" | "rejected" | "expired";
1758
+ expertise: string;
1759
+ service: {
1760
+ id: string;
1761
+ icon?: string;
1762
+ label: string;
1763
+ fellowships: {
1764
+ id: string;
1765
+ title: string;
1766
+ }[];
1767
+ expertiseLevel: "speciality" | "sub-speciality";
1768
+ price: number;
1769
+ };
1770
+ clinics: {
1771
+ id: string;
1772
+ title: number;
1773
+ latitude: number;
1774
+ longitude: number;
1775
+ }[];
1776
+ fellowships: {
1777
+ id: string;
1778
+ title: string;
1779
+ }[];
1780
+ type: import('../types/service').InsitutionType;
1781
+ illnesses?: {
1782
+ [x: string]: unknown;
1783
+ id: number | string;
1784
+ name: string;
1785
+ }[];
1786
+ id: string;
1787
+ name: string;
1788
+ lastName: string;
1789
+ isOnline: boolean;
1790
+ lastSeen: Date;
1791
+ imageUrl: string;
1792
+ nationalCode?: string;
1793
+ phoneNumber?: string;
1794
+ isActive: boolean;
1795
+ birthDate: Date;
1796
+ lastMessage?: /*elided*/ any;
1797
+ unreadCount?: number;
1798
+ serviceType?: "video-call" | "voice-call" | "chat";
1799
+ userType: import('../types/chat').UserRoleKey[];
1800
+ }[];
1801
+ service?: {
1802
+ id: string;
1803
+ icon?: string;
1804
+ label: string;
1805
+ fellowships: {
1806
+ id: string;
1807
+ title: string;
1808
+ }[];
1809
+ expertiseLevel: "speciality" | "sub-speciality";
1810
+ price: number;
1811
+ };
1812
+ serviceType?: import('../types/chat').ServicePresence;
1813
+ invoice?: {
1814
+ [x: string]: unknown;
1815
+ id: number | string;
1816
+ amount?: number;
1817
+ currency?: string;
1818
+ status?: string;
1819
+ };
1820
+ id: string;
1821
+ icon?: string;
1822
+ label: string;
1823
+ fellowships: {
1824
+ id: string;
1825
+ title: string;
1826
+ }[];
1827
+ expertiseLevel: "speciality" | "sub-speciality";
1828
+ price: number;
1829
+ };
1830
+ };
1831
+ };
1832
+ unreadCount?: number;
1833
+ serviceType?: "video-call" | "voice-call" | "chat";
1834
+ userType: import('../types/chat').UserRoleKey[];
1835
+ }[];
1836
+ loading: boolean;
1837
+ page: number;
1838
+ hasNextPage: boolean;
1839
+ };
1840
+ active: {
1841
+ data: {
1842
+ id: string;
1843
+ name: string;
1844
+ lastName: string;
1845
+ isOnline: boolean;
1846
+ lastSeen: Date;
1847
+ imageUrl: string;
1848
+ nationalCode?: string;
1849
+ phoneNumber?: string;
1850
+ isActive: boolean;
1851
+ birthDate: Date;
1852
+ lastMessage?: {
1853
+ id: string;
1854
+ conversationId: string;
1855
+ date: Date;
1856
+ type: import('../types/chat').MessageType;
1857
+ text?: string;
1858
+ imageUrl?: string[];
1859
+ fileUrl?: string;
1860
+ voiceUrl?: string;
1861
+ videoUrl?: string;
1862
+ isEdited: boolean;
1863
+ senderId: string;
1864
+ isSent: boolean;
1865
+ isRead: boolean;
1866
+ repliedTo: /*elided*/ any;
1867
+ request?: {
1868
+ id: string;
1869
+ type: "personal-info" | "add-person";
1870
+ request: {
1871
+ id: string;
1872
+ date: Date;
1873
+ status: import('../types/chat').status;
1874
+ } | {
1875
+ status?: "searching" | "pending" | "approved" | "payment" | "rejected" | "expired";
1876
+ provider?: {
1877
+ status: "pending" | "approved" | "payment" | "rejected" | "expired";
1878
+ expertise: string;
1879
+ service: {
1880
+ id: string;
1881
+ icon?: string;
1882
+ label: string;
1883
+ fellowships: {
1884
+ id: string;
1885
+ title: string;
1886
+ }[];
1887
+ expertiseLevel: "speciality" | "sub-speciality";
1888
+ price: number;
1889
+ };
1890
+ clinics: {
1891
+ id: string;
1892
+ title: number;
1893
+ latitude: number;
1894
+ longitude: number;
1895
+ }[];
1896
+ fellowships: {
1897
+ id: string;
1898
+ title: string;
1899
+ }[];
1900
+ type: import('../types/service').InsitutionType;
1901
+ illnesses?: {
1902
+ [x: string]: unknown;
1903
+ id: number | string;
1904
+ name: string;
1905
+ }[];
1906
+ id: string;
1907
+ name: string;
1908
+ lastName: string;
1909
+ isOnline: boolean;
1910
+ lastSeen: Date;
1911
+ imageUrl: string;
1912
+ nationalCode?: string;
1913
+ phoneNumber?: string;
1914
+ isActive: boolean;
1915
+ birthDate: Date;
1916
+ lastMessage?: /*elided*/ any;
1917
+ unreadCount?: number;
1918
+ serviceType?: "video-call" | "voice-call" | "chat";
1919
+ userType: import('../types/chat').UserRoleKey[];
1920
+ }[];
1921
+ service?: {
1922
+ id: string;
1923
+ icon?: string;
1924
+ label: string;
1925
+ fellowships: {
1926
+ id: string;
1927
+ title: string;
1928
+ }[];
1929
+ expertiseLevel: "speciality" | "sub-speciality";
1930
+ price: number;
1931
+ };
1932
+ serviceType?: import('../types/chat').ServicePresence;
1933
+ invoice?: {
1934
+ [x: string]: unknown;
1935
+ id: number | string;
1936
+ amount?: number;
1937
+ currency?: string;
1938
+ status?: string;
1939
+ };
1940
+ id: string;
1941
+ icon?: string;
1942
+ label: string;
1943
+ fellowships: {
1944
+ id: string;
1945
+ title: string;
1946
+ }[];
1947
+ expertiseLevel: "speciality" | "sub-speciality";
1948
+ price: number;
1949
+ };
1950
+ };
1951
+ };
1952
+ unreadCount?: number;
1953
+ serviceType?: "video-call" | "voice-call" | "chat";
1954
+ userType: import('../types/chat').UserRoleKey[];
1955
+ }[];
1956
+ loading: boolean;
1957
+ page: number;
1958
+ hasNextPage: boolean;
1959
+ };
1960
+ }>;
1961
+ activeConversationId: import('vue').Ref<string, string>;
1962
+ profileViewOpen: import('vue').Ref<boolean, boolean>;
1963
+ messagesMap: import('vue').Ref<Record<string, import('../types/chat').Message[]>, Record<string, import('../types/chat').Message[]>>;
1964
+ typingByConversation: import('vue').Ref<Record<string, string>, Record<string, string>>;
1965
+ chatsPerPage: import('vue').ComputedRef<number>;
1966
+ unreadCount: import('vue').ComputedRef<number>;
1967
+ setSelectedChat: (id: string | null) => void;
1968
+ openProfile: () => void;
1969
+ closeProfile: () => void;
1970
+ fetchConversations: (filter?: import('../types/chat').FilterKeys, page?: number, search?: string) => Promise<void>;
1971
+ loadNextPage: (filter: import('../types/chat').FilterKeys) => Promise<void>;
1972
+ getDisplayedContacts: (filter: import('../types/chat').FilterKeys) => import('../types/chat').Contact[];
1973
+ getContactById: (id: string) => import('../types/chat').Contact | null;
1974
+ markAsRead: (conversationId: string) => void;
1975
+ updateLastMessage: (conversationId: string, message: import('../types/chat').Message) => void;
1976
+ patchLastMessage: (conversationId: string, messageId: string, updates: Partial<import('../types/chat').Message>) => void;
1977
+ }, "chatsPerPage" | "unreadCount">, Pick<{
1978
+ currentUserId: import('vue').Ref<string, string>;
1979
+ chosenRole: import('vue').Ref<import('../types/chat').UserRoleKey, import('../types/chat').UserRoleKey>;
1980
+ currentUserBirthDate: import('vue').Ref<Date, Date>;
1981
+ conversationStates: import('vue').Ref<{
1982
+ "": {
1983
+ data: {
1984
+ id: string;
1985
+ name: string;
1986
+ lastName: string;
1987
+ isOnline: boolean;
1988
+ lastSeen: Date;
1989
+ imageUrl: string;
1990
+ nationalCode?: string;
1991
+ phoneNumber?: string;
1992
+ isActive: boolean;
1993
+ birthDate: Date;
1994
+ lastMessage?: {
1995
+ id: string;
1996
+ conversationId: string;
1997
+ date: Date;
1998
+ type: import('../types/chat').MessageType;
1999
+ text?: string;
2000
+ imageUrl?: string[];
2001
+ fileUrl?: string;
2002
+ voiceUrl?: string;
2003
+ videoUrl?: string;
2004
+ isEdited: boolean;
2005
+ senderId: string;
2006
+ isSent: boolean;
2007
+ isRead: boolean;
2008
+ repliedTo: /*elided*/ any;
2009
+ request?: {
2010
+ id: string;
2011
+ type: "personal-info" | "add-person";
2012
+ request: {
2013
+ id: string;
2014
+ date: Date;
2015
+ status: import('../types/chat').status;
2016
+ } | {
2017
+ status?: "searching" | "pending" | "approved" | "payment" | "rejected" | "expired";
2018
+ provider?: {
2019
+ status: "pending" | "approved" | "payment" | "rejected" | "expired";
2020
+ expertise: string;
2021
+ service: {
2022
+ id: string;
2023
+ icon?: string;
2024
+ label: string;
2025
+ fellowships: {
2026
+ id: string;
2027
+ title: string;
2028
+ }[];
2029
+ expertiseLevel: "speciality" | "sub-speciality";
2030
+ price: number;
2031
+ };
2032
+ clinics: {
2033
+ id: string;
2034
+ title: number;
2035
+ latitude: number;
2036
+ longitude: number;
2037
+ }[];
2038
+ fellowships: {
2039
+ id: string;
2040
+ title: string;
2041
+ }[];
2042
+ type: import('../types/service').InsitutionType;
2043
+ illnesses?: {
2044
+ [x: string]: unknown;
2045
+ id: number | string;
2046
+ name: string;
2047
+ }[];
2048
+ id: string;
2049
+ name: string;
2050
+ lastName: string;
2051
+ isOnline: boolean;
2052
+ lastSeen: Date;
2053
+ imageUrl: string;
2054
+ nationalCode?: string;
2055
+ phoneNumber?: string;
2056
+ isActive: boolean;
2057
+ birthDate: Date;
2058
+ lastMessage?: /*elided*/ any;
2059
+ unreadCount?: number;
2060
+ serviceType?: "video-call" | "voice-call" | "chat";
2061
+ userType: import('../types/chat').UserRoleKey[];
2062
+ }[];
2063
+ service?: {
2064
+ id: string;
2065
+ icon?: string;
2066
+ label: string;
2067
+ fellowships: {
2068
+ id: string;
2069
+ title: string;
2070
+ }[];
2071
+ expertiseLevel: "speciality" | "sub-speciality";
2072
+ price: number;
2073
+ };
2074
+ serviceType?: import('../types/chat').ServicePresence;
2075
+ invoice?: {
2076
+ [x: string]: unknown;
2077
+ id: number | string;
2078
+ amount?: number;
2079
+ currency?: string;
2080
+ status?: string;
2081
+ };
2082
+ id: string;
2083
+ icon?: string;
2084
+ label: string;
2085
+ fellowships: {
2086
+ id: string;
2087
+ title: string;
2088
+ }[];
2089
+ expertiseLevel: "speciality" | "sub-speciality";
2090
+ price: number;
2091
+ };
2092
+ };
2093
+ };
2094
+ unreadCount?: number;
2095
+ serviceType?: "video-call" | "voice-call" | "chat";
2096
+ userType: import('../types/chat').UserRoleKey[];
2097
+ }[];
2098
+ loading: boolean;
2099
+ page: number;
2100
+ hasNextPage: boolean;
2101
+ };
2102
+ online: {
2103
+ data: {
2104
+ id: string;
2105
+ name: string;
2106
+ lastName: string;
2107
+ isOnline: boolean;
2108
+ lastSeen: Date;
2109
+ imageUrl: string;
2110
+ nationalCode?: string;
2111
+ phoneNumber?: string;
2112
+ isActive: boolean;
2113
+ birthDate: Date;
2114
+ lastMessage?: {
2115
+ id: string;
2116
+ conversationId: string;
2117
+ date: Date;
2118
+ type: import('../types/chat').MessageType;
2119
+ text?: string;
2120
+ imageUrl?: string[];
2121
+ fileUrl?: string;
2122
+ voiceUrl?: string;
2123
+ videoUrl?: string;
2124
+ isEdited: boolean;
2125
+ senderId: string;
2126
+ isSent: boolean;
2127
+ isRead: boolean;
2128
+ repliedTo: /*elided*/ any;
2129
+ request?: {
2130
+ id: string;
2131
+ type: "personal-info" | "add-person";
2132
+ request: {
2133
+ id: string;
2134
+ date: Date;
2135
+ status: import('../types/chat').status;
2136
+ } | {
2137
+ status?: "searching" | "pending" | "approved" | "payment" | "rejected" | "expired";
2138
+ provider?: {
2139
+ status: "pending" | "approved" | "payment" | "rejected" | "expired";
2140
+ expertise: string;
2141
+ service: {
2142
+ id: string;
2143
+ icon?: string;
2144
+ label: string;
2145
+ fellowships: {
2146
+ id: string;
2147
+ title: string;
2148
+ }[];
2149
+ expertiseLevel: "speciality" | "sub-speciality";
2150
+ price: number;
2151
+ };
2152
+ clinics: {
2153
+ id: string;
2154
+ title: number;
2155
+ latitude: number;
2156
+ longitude: number;
2157
+ }[];
2158
+ fellowships: {
2159
+ id: string;
2160
+ title: string;
2161
+ }[];
2162
+ type: import('../types/service').InsitutionType;
2163
+ illnesses?: {
2164
+ [x: string]: unknown;
2165
+ id: number | string;
2166
+ name: string;
2167
+ }[];
2168
+ id: string;
2169
+ name: string;
2170
+ lastName: string;
2171
+ isOnline: boolean;
2172
+ lastSeen: Date;
2173
+ imageUrl: string;
2174
+ nationalCode?: string;
2175
+ phoneNumber?: string;
2176
+ isActive: boolean;
2177
+ birthDate: Date;
2178
+ lastMessage?: /*elided*/ any;
2179
+ unreadCount?: number;
2180
+ serviceType?: "video-call" | "voice-call" | "chat";
2181
+ userType: import('../types/chat').UserRoleKey[];
2182
+ }[];
2183
+ service?: {
2184
+ id: string;
2185
+ icon?: string;
2186
+ label: string;
2187
+ fellowships: {
2188
+ id: string;
2189
+ title: string;
2190
+ }[];
2191
+ expertiseLevel: "speciality" | "sub-speciality";
2192
+ price: number;
2193
+ };
2194
+ serviceType?: import('../types/chat').ServicePresence;
2195
+ invoice?: {
2196
+ [x: string]: unknown;
2197
+ id: number | string;
2198
+ amount?: number;
2199
+ currency?: string;
2200
+ status?: string;
2201
+ };
2202
+ id: string;
2203
+ icon?: string;
2204
+ label: string;
2205
+ fellowships: {
2206
+ id: string;
2207
+ title: string;
2208
+ }[];
2209
+ expertiseLevel: "speciality" | "sub-speciality";
2210
+ price: number;
2211
+ };
2212
+ };
2213
+ };
2214
+ unreadCount?: number;
2215
+ serviceType?: "video-call" | "voice-call" | "chat";
2216
+ userType: import('../types/chat').UserRoleKey[];
2217
+ }[];
2218
+ loading: boolean;
2219
+ page: number;
2220
+ hasNextPage: boolean;
2221
+ };
2222
+ ended: {
2223
+ data: {
2224
+ id: string;
2225
+ name: string;
2226
+ lastName: string;
2227
+ isOnline: boolean;
2228
+ lastSeen: Date;
2229
+ imageUrl: string;
2230
+ nationalCode?: string;
2231
+ phoneNumber?: string;
2232
+ isActive: boolean;
2233
+ birthDate: Date;
2234
+ lastMessage?: {
2235
+ id: string;
2236
+ conversationId: string;
2237
+ date: Date;
2238
+ type: import('../types/chat').MessageType;
2239
+ text?: string;
2240
+ imageUrl?: string[];
2241
+ fileUrl?: string;
2242
+ voiceUrl?: string;
2243
+ videoUrl?: string;
2244
+ isEdited: boolean;
2245
+ senderId: string;
2246
+ isSent: boolean;
2247
+ isRead: boolean;
2248
+ repliedTo: /*elided*/ any;
2249
+ request?: {
2250
+ id: string;
2251
+ type: "personal-info" | "add-person";
2252
+ request: {
2253
+ id: string;
2254
+ date: Date;
2255
+ status: import('../types/chat').status;
2256
+ } | {
2257
+ status?: "searching" | "pending" | "approved" | "payment" | "rejected" | "expired";
2258
+ provider?: {
2259
+ status: "pending" | "approved" | "payment" | "rejected" | "expired";
2260
+ expertise: string;
2261
+ service: {
2262
+ id: string;
2263
+ icon?: string;
2264
+ label: string;
2265
+ fellowships: {
2266
+ id: string;
2267
+ title: string;
2268
+ }[];
2269
+ expertiseLevel: "speciality" | "sub-speciality";
2270
+ price: number;
2271
+ };
2272
+ clinics: {
2273
+ id: string;
2274
+ title: number;
2275
+ latitude: number;
2276
+ longitude: number;
2277
+ }[];
2278
+ fellowships: {
2279
+ id: string;
2280
+ title: string;
2281
+ }[];
2282
+ type: import('../types/service').InsitutionType;
2283
+ illnesses?: {
2284
+ [x: string]: unknown;
2285
+ id: number | string;
2286
+ name: string;
2287
+ }[];
2288
+ id: string;
2289
+ name: string;
2290
+ lastName: string;
2291
+ isOnline: boolean;
2292
+ lastSeen: Date;
2293
+ imageUrl: string;
2294
+ nationalCode?: string;
2295
+ phoneNumber?: string;
2296
+ isActive: boolean;
2297
+ birthDate: Date;
2298
+ lastMessage?: /*elided*/ any;
2299
+ unreadCount?: number;
2300
+ serviceType?: "video-call" | "voice-call" | "chat";
2301
+ userType: import('../types/chat').UserRoleKey[];
2302
+ }[];
2303
+ service?: {
2304
+ id: string;
2305
+ icon?: string;
2306
+ label: string;
2307
+ fellowships: {
2308
+ id: string;
2309
+ title: string;
2310
+ }[];
2311
+ expertiseLevel: "speciality" | "sub-speciality";
2312
+ price: number;
2313
+ };
2314
+ serviceType?: import('../types/chat').ServicePresence;
2315
+ invoice?: {
2316
+ [x: string]: unknown;
2317
+ id: number | string;
2318
+ amount?: number;
2319
+ currency?: string;
2320
+ status?: string;
2321
+ };
2322
+ id: string;
2323
+ icon?: string;
2324
+ label: string;
2325
+ fellowships: {
2326
+ id: string;
2327
+ title: string;
2328
+ }[];
2329
+ expertiseLevel: "speciality" | "sub-speciality";
2330
+ price: number;
2331
+ };
2332
+ };
2333
+ };
2334
+ unreadCount?: number;
2335
+ serviceType?: "video-call" | "voice-call" | "chat";
2336
+ userType: import('../types/chat').UserRoleKey[];
2337
+ }[];
2338
+ loading: boolean;
2339
+ page: number;
2340
+ hasNextPage: boolean;
2341
+ };
2342
+ active: {
2343
+ data: {
2344
+ id: string;
2345
+ name: string;
2346
+ lastName: string;
2347
+ isOnline: boolean;
2348
+ lastSeen: Date;
2349
+ imageUrl: string;
2350
+ nationalCode?: string;
2351
+ phoneNumber?: string;
2352
+ isActive: boolean;
2353
+ birthDate: Date;
2354
+ lastMessage?: {
2355
+ id: string;
2356
+ conversationId: string;
2357
+ date: Date;
2358
+ type: import('../types/chat').MessageType;
2359
+ text?: string;
2360
+ imageUrl?: string[];
2361
+ fileUrl?: string;
2362
+ voiceUrl?: string;
2363
+ videoUrl?: string;
2364
+ isEdited: boolean;
2365
+ senderId: string;
2366
+ isSent: boolean;
2367
+ isRead: boolean;
2368
+ repliedTo: /*elided*/ any;
2369
+ request?: {
2370
+ id: string;
2371
+ type: "personal-info" | "add-person";
2372
+ request: {
2373
+ id: string;
2374
+ date: Date;
2375
+ status: import('../types/chat').status;
2376
+ } | {
2377
+ status?: "searching" | "pending" | "approved" | "payment" | "rejected" | "expired";
2378
+ provider?: {
2379
+ status: "pending" | "approved" | "payment" | "rejected" | "expired";
2380
+ expertise: string;
2381
+ service: {
2382
+ id: string;
2383
+ icon?: string;
2384
+ label: string;
2385
+ fellowships: {
2386
+ id: string;
2387
+ title: string;
2388
+ }[];
2389
+ expertiseLevel: "speciality" | "sub-speciality";
2390
+ price: number;
2391
+ };
2392
+ clinics: {
2393
+ id: string;
2394
+ title: number;
2395
+ latitude: number;
2396
+ longitude: number;
2397
+ }[];
2398
+ fellowships: {
2399
+ id: string;
2400
+ title: string;
2401
+ }[];
2402
+ type: import('../types/service').InsitutionType;
2403
+ illnesses?: {
2404
+ [x: string]: unknown;
2405
+ id: number | string;
2406
+ name: string;
2407
+ }[];
2408
+ id: string;
2409
+ name: string;
2410
+ lastName: string;
2411
+ isOnline: boolean;
2412
+ lastSeen: Date;
2413
+ imageUrl: string;
2414
+ nationalCode?: string;
2415
+ phoneNumber?: string;
2416
+ isActive: boolean;
2417
+ birthDate: Date;
2418
+ lastMessage?: /*elided*/ any;
2419
+ unreadCount?: number;
2420
+ serviceType?: "video-call" | "voice-call" | "chat";
2421
+ userType: import('../types/chat').UserRoleKey[];
2422
+ }[];
2423
+ service?: {
2424
+ id: string;
2425
+ icon?: string;
2426
+ label: string;
2427
+ fellowships: {
2428
+ id: string;
2429
+ title: string;
2430
+ }[];
2431
+ expertiseLevel: "speciality" | "sub-speciality";
2432
+ price: number;
2433
+ };
2434
+ serviceType?: import('../types/chat').ServicePresence;
2435
+ invoice?: {
2436
+ [x: string]: unknown;
2437
+ id: number | string;
2438
+ amount?: number;
2439
+ currency?: string;
2440
+ status?: string;
2441
+ };
2442
+ id: string;
2443
+ icon?: string;
2444
+ label: string;
2445
+ fellowships: {
2446
+ id: string;
2447
+ title: string;
2448
+ }[];
2449
+ expertiseLevel: "speciality" | "sub-speciality";
2450
+ price: number;
2451
+ };
2452
+ };
2453
+ };
2454
+ unreadCount?: number;
2455
+ serviceType?: "video-call" | "voice-call" | "chat";
2456
+ userType: import('../types/chat').UserRoleKey[];
2457
+ }[];
2458
+ loading: boolean;
2459
+ page: number;
2460
+ hasNextPage: boolean;
2461
+ };
2462
+ }, Record<import('../types/chat').FilterKeys, {
2463
+ data: import('../types/chat').Contact[];
2464
+ loading: boolean;
2465
+ page: number;
2466
+ hasNextPage: boolean;
2467
+ }> | {
2468
+ "": {
2469
+ data: {
2470
+ id: string;
2471
+ name: string;
2472
+ lastName: string;
2473
+ isOnline: boolean;
2474
+ lastSeen: Date;
2475
+ imageUrl: string;
2476
+ nationalCode?: string;
2477
+ phoneNumber?: string;
2478
+ isActive: boolean;
2479
+ birthDate: Date;
2480
+ lastMessage?: {
2481
+ id: string;
2482
+ conversationId: string;
2483
+ date: Date;
2484
+ type: import('../types/chat').MessageType;
2485
+ text?: string;
2486
+ imageUrl?: string[];
2487
+ fileUrl?: string;
2488
+ voiceUrl?: string;
2489
+ videoUrl?: string;
2490
+ isEdited: boolean;
2491
+ senderId: string;
2492
+ isSent: boolean;
2493
+ isRead: boolean;
2494
+ repliedTo: /*elided*/ any;
2495
+ request?: {
2496
+ id: string;
2497
+ type: "personal-info" | "add-person";
2498
+ request: {
2499
+ id: string;
2500
+ date: Date;
2501
+ status: import('../types/chat').status;
2502
+ } | {
2503
+ status?: "searching" | "pending" | "approved" | "payment" | "rejected" | "expired";
2504
+ provider?: {
2505
+ status: "pending" | "approved" | "payment" | "rejected" | "expired";
2506
+ expertise: string;
2507
+ service: {
2508
+ id: string;
2509
+ icon?: string;
2510
+ label: string;
2511
+ fellowships: {
2512
+ id: string;
2513
+ title: string;
2514
+ }[];
2515
+ expertiseLevel: "speciality" | "sub-speciality";
2516
+ price: number;
2517
+ };
2518
+ clinics: {
2519
+ id: string;
2520
+ title: number;
2521
+ latitude: number;
2522
+ longitude: number;
2523
+ }[];
2524
+ fellowships: {
2525
+ id: string;
2526
+ title: string;
2527
+ }[];
2528
+ type: import('../types/service').InsitutionType;
2529
+ illnesses?: {
2530
+ [x: string]: unknown;
2531
+ id: number | string;
2532
+ name: string;
2533
+ }[];
2534
+ id: string;
2535
+ name: string;
2536
+ lastName: string;
2537
+ isOnline: boolean;
2538
+ lastSeen: Date;
2539
+ imageUrl: string;
2540
+ nationalCode?: string;
2541
+ phoneNumber?: string;
2542
+ isActive: boolean;
2543
+ birthDate: Date;
2544
+ lastMessage?: /*elided*/ any;
2545
+ unreadCount?: number;
2546
+ serviceType?: "video-call" | "voice-call" | "chat";
2547
+ userType: import('../types/chat').UserRoleKey[];
2548
+ }[];
2549
+ service?: {
2550
+ id: string;
2551
+ icon?: string;
2552
+ label: string;
2553
+ fellowships: {
2554
+ id: string;
2555
+ title: string;
2556
+ }[];
2557
+ expertiseLevel: "speciality" | "sub-speciality";
2558
+ price: number;
2559
+ };
2560
+ serviceType?: import('../types/chat').ServicePresence;
2561
+ invoice?: {
2562
+ [x: string]: unknown;
2563
+ id: number | string;
2564
+ amount?: number;
2565
+ currency?: string;
2566
+ status?: string;
2567
+ };
2568
+ id: string;
2569
+ icon?: string;
2570
+ label: string;
2571
+ fellowships: {
2572
+ id: string;
2573
+ title: string;
2574
+ }[];
2575
+ expertiseLevel: "speciality" | "sub-speciality";
2576
+ price: number;
2577
+ };
2578
+ };
2579
+ };
2580
+ unreadCount?: number;
2581
+ serviceType?: "video-call" | "voice-call" | "chat";
2582
+ userType: import('../types/chat').UserRoleKey[];
2583
+ }[];
2584
+ loading: boolean;
2585
+ page: number;
2586
+ hasNextPage: boolean;
2587
+ };
2588
+ online: {
2589
+ data: {
2590
+ id: string;
2591
+ name: string;
2592
+ lastName: string;
2593
+ isOnline: boolean;
2594
+ lastSeen: Date;
2595
+ imageUrl: string;
2596
+ nationalCode?: string;
2597
+ phoneNumber?: string;
2598
+ isActive: boolean;
2599
+ birthDate: Date;
2600
+ lastMessage?: {
2601
+ id: string;
2602
+ conversationId: string;
2603
+ date: Date;
2604
+ type: import('../types/chat').MessageType;
2605
+ text?: string;
2606
+ imageUrl?: string[];
2607
+ fileUrl?: string;
2608
+ voiceUrl?: string;
2609
+ videoUrl?: string;
2610
+ isEdited: boolean;
2611
+ senderId: string;
2612
+ isSent: boolean;
2613
+ isRead: boolean;
2614
+ repliedTo: /*elided*/ any;
2615
+ request?: {
2616
+ id: string;
2617
+ type: "personal-info" | "add-person";
2618
+ request: {
2619
+ id: string;
2620
+ date: Date;
2621
+ status: import('../types/chat').status;
2622
+ } | {
2623
+ status?: "searching" | "pending" | "approved" | "payment" | "rejected" | "expired";
2624
+ provider?: {
2625
+ status: "pending" | "approved" | "payment" | "rejected" | "expired";
2626
+ expertise: string;
2627
+ service: {
2628
+ id: string;
2629
+ icon?: string;
2630
+ label: string;
2631
+ fellowships: {
2632
+ id: string;
2633
+ title: string;
2634
+ }[];
2635
+ expertiseLevel: "speciality" | "sub-speciality";
2636
+ price: number;
2637
+ };
2638
+ clinics: {
2639
+ id: string;
2640
+ title: number;
2641
+ latitude: number;
2642
+ longitude: number;
2643
+ }[];
2644
+ fellowships: {
2645
+ id: string;
2646
+ title: string;
2647
+ }[];
2648
+ type: import('../types/service').InsitutionType;
2649
+ illnesses?: {
2650
+ [x: string]: unknown;
2651
+ id: number | string;
2652
+ name: string;
2653
+ }[];
2654
+ id: string;
2655
+ name: string;
2656
+ lastName: string;
2657
+ isOnline: boolean;
2658
+ lastSeen: Date;
2659
+ imageUrl: string;
2660
+ nationalCode?: string;
2661
+ phoneNumber?: string;
2662
+ isActive: boolean;
2663
+ birthDate: Date;
2664
+ lastMessage?: /*elided*/ any;
2665
+ unreadCount?: number;
2666
+ serviceType?: "video-call" | "voice-call" | "chat";
2667
+ userType: import('../types/chat').UserRoleKey[];
2668
+ }[];
2669
+ service?: {
2670
+ id: string;
2671
+ icon?: string;
2672
+ label: string;
2673
+ fellowships: {
2674
+ id: string;
2675
+ title: string;
2676
+ }[];
2677
+ expertiseLevel: "speciality" | "sub-speciality";
2678
+ price: number;
2679
+ };
2680
+ serviceType?: import('../types/chat').ServicePresence;
2681
+ invoice?: {
2682
+ [x: string]: unknown;
2683
+ id: number | string;
2684
+ amount?: number;
2685
+ currency?: string;
2686
+ status?: string;
2687
+ };
2688
+ id: string;
2689
+ icon?: string;
2690
+ label: string;
2691
+ fellowships: {
2692
+ id: string;
2693
+ title: string;
2694
+ }[];
2695
+ expertiseLevel: "speciality" | "sub-speciality";
2696
+ price: number;
2697
+ };
2698
+ };
2699
+ };
2700
+ unreadCount?: number;
2701
+ serviceType?: "video-call" | "voice-call" | "chat";
2702
+ userType: import('../types/chat').UserRoleKey[];
2703
+ }[];
2704
+ loading: boolean;
2705
+ page: number;
2706
+ hasNextPage: boolean;
2707
+ };
2708
+ ended: {
2709
+ data: {
2710
+ id: string;
2711
+ name: string;
2712
+ lastName: string;
2713
+ isOnline: boolean;
2714
+ lastSeen: Date;
2715
+ imageUrl: string;
2716
+ nationalCode?: string;
2717
+ phoneNumber?: string;
2718
+ isActive: boolean;
2719
+ birthDate: Date;
2720
+ lastMessage?: {
2721
+ id: string;
2722
+ conversationId: string;
2723
+ date: Date;
2724
+ type: import('../types/chat').MessageType;
2725
+ text?: string;
2726
+ imageUrl?: string[];
2727
+ fileUrl?: string;
2728
+ voiceUrl?: string;
2729
+ videoUrl?: string;
2730
+ isEdited: boolean;
2731
+ senderId: string;
2732
+ isSent: boolean;
2733
+ isRead: boolean;
2734
+ repliedTo: /*elided*/ any;
2735
+ request?: {
2736
+ id: string;
2737
+ type: "personal-info" | "add-person";
2738
+ request: {
2739
+ id: string;
2740
+ date: Date;
2741
+ status: import('../types/chat').status;
2742
+ } | {
2743
+ status?: "searching" | "pending" | "approved" | "payment" | "rejected" | "expired";
2744
+ provider?: {
2745
+ status: "pending" | "approved" | "payment" | "rejected" | "expired";
2746
+ expertise: string;
2747
+ service: {
2748
+ id: string;
2749
+ icon?: string;
2750
+ label: string;
2751
+ fellowships: {
2752
+ id: string;
2753
+ title: string;
2754
+ }[];
2755
+ expertiseLevel: "speciality" | "sub-speciality";
2756
+ price: number;
2757
+ };
2758
+ clinics: {
2759
+ id: string;
2760
+ title: number;
2761
+ latitude: number;
2762
+ longitude: number;
2763
+ }[];
2764
+ fellowships: {
2765
+ id: string;
2766
+ title: string;
2767
+ }[];
2768
+ type: import('../types/service').InsitutionType;
2769
+ illnesses?: {
2770
+ [x: string]: unknown;
2771
+ id: number | string;
2772
+ name: string;
2773
+ }[];
2774
+ id: string;
2775
+ name: string;
2776
+ lastName: string;
2777
+ isOnline: boolean;
2778
+ lastSeen: Date;
2779
+ imageUrl: string;
2780
+ nationalCode?: string;
2781
+ phoneNumber?: string;
2782
+ isActive: boolean;
2783
+ birthDate: Date;
2784
+ lastMessage?: /*elided*/ any;
2785
+ unreadCount?: number;
2786
+ serviceType?: "video-call" | "voice-call" | "chat";
2787
+ userType: import('../types/chat').UserRoleKey[];
2788
+ }[];
2789
+ service?: {
2790
+ id: string;
2791
+ icon?: string;
2792
+ label: string;
2793
+ fellowships: {
2794
+ id: string;
2795
+ title: string;
2796
+ }[];
2797
+ expertiseLevel: "speciality" | "sub-speciality";
2798
+ price: number;
2799
+ };
2800
+ serviceType?: import('../types/chat').ServicePresence;
2801
+ invoice?: {
2802
+ [x: string]: unknown;
2803
+ id: number | string;
2804
+ amount?: number;
2805
+ currency?: string;
2806
+ status?: string;
2807
+ };
2808
+ id: string;
2809
+ icon?: string;
2810
+ label: string;
2811
+ fellowships: {
2812
+ id: string;
2813
+ title: string;
2814
+ }[];
2815
+ expertiseLevel: "speciality" | "sub-speciality";
2816
+ price: number;
2817
+ };
2818
+ };
2819
+ };
2820
+ unreadCount?: number;
2821
+ serviceType?: "video-call" | "voice-call" | "chat";
2822
+ userType: import('../types/chat').UserRoleKey[];
2823
+ }[];
2824
+ loading: boolean;
2825
+ page: number;
2826
+ hasNextPage: boolean;
2827
+ };
2828
+ active: {
2829
+ data: {
2830
+ id: string;
2831
+ name: string;
2832
+ lastName: string;
2833
+ isOnline: boolean;
2834
+ lastSeen: Date;
2835
+ imageUrl: string;
2836
+ nationalCode?: string;
2837
+ phoneNumber?: string;
2838
+ isActive: boolean;
2839
+ birthDate: Date;
2840
+ lastMessage?: {
2841
+ id: string;
2842
+ conversationId: string;
2843
+ date: Date;
2844
+ type: import('../types/chat').MessageType;
2845
+ text?: string;
2846
+ imageUrl?: string[];
2847
+ fileUrl?: string;
2848
+ voiceUrl?: string;
2849
+ videoUrl?: string;
2850
+ isEdited: boolean;
2851
+ senderId: string;
2852
+ isSent: boolean;
2853
+ isRead: boolean;
2854
+ repliedTo: /*elided*/ any;
2855
+ request?: {
2856
+ id: string;
2857
+ type: "personal-info" | "add-person";
2858
+ request: {
2859
+ id: string;
2860
+ date: Date;
2861
+ status: import('../types/chat').status;
2862
+ } | {
2863
+ status?: "searching" | "pending" | "approved" | "payment" | "rejected" | "expired";
2864
+ provider?: {
2865
+ status: "pending" | "approved" | "payment" | "rejected" | "expired";
2866
+ expertise: string;
2867
+ service: {
2868
+ id: string;
2869
+ icon?: string;
2870
+ label: string;
2871
+ fellowships: {
2872
+ id: string;
2873
+ title: string;
2874
+ }[];
2875
+ expertiseLevel: "speciality" | "sub-speciality";
2876
+ price: number;
2877
+ };
2878
+ clinics: {
2879
+ id: string;
2880
+ title: number;
2881
+ latitude: number;
2882
+ longitude: number;
2883
+ }[];
2884
+ fellowships: {
2885
+ id: string;
2886
+ title: string;
2887
+ }[];
2888
+ type: import('../types/service').InsitutionType;
2889
+ illnesses?: {
2890
+ [x: string]: unknown;
2891
+ id: number | string;
2892
+ name: string;
2893
+ }[];
2894
+ id: string;
2895
+ name: string;
2896
+ lastName: string;
2897
+ isOnline: boolean;
2898
+ lastSeen: Date;
2899
+ imageUrl: string;
2900
+ nationalCode?: string;
2901
+ phoneNumber?: string;
2902
+ isActive: boolean;
2903
+ birthDate: Date;
2904
+ lastMessage?: /*elided*/ any;
2905
+ unreadCount?: number;
2906
+ serviceType?: "video-call" | "voice-call" | "chat";
2907
+ userType: import('../types/chat').UserRoleKey[];
2908
+ }[];
2909
+ service?: {
2910
+ id: string;
2911
+ icon?: string;
2912
+ label: string;
2913
+ fellowships: {
2914
+ id: string;
2915
+ title: string;
2916
+ }[];
2917
+ expertiseLevel: "speciality" | "sub-speciality";
2918
+ price: number;
2919
+ };
2920
+ serviceType?: import('../types/chat').ServicePresence;
2921
+ invoice?: {
2922
+ [x: string]: unknown;
2923
+ id: number | string;
2924
+ amount?: number;
2925
+ currency?: string;
2926
+ status?: string;
2927
+ };
2928
+ id: string;
2929
+ icon?: string;
2930
+ label: string;
2931
+ fellowships: {
2932
+ id: string;
2933
+ title: string;
2934
+ }[];
2935
+ expertiseLevel: "speciality" | "sub-speciality";
2936
+ price: number;
2937
+ };
2938
+ };
2939
+ };
2940
+ unreadCount?: number;
2941
+ serviceType?: "video-call" | "voice-call" | "chat";
2942
+ userType: import('../types/chat').UserRoleKey[];
2943
+ }[];
2944
+ loading: boolean;
2945
+ page: number;
2946
+ hasNextPage: boolean;
2947
+ };
2948
+ }>;
2949
+ activeConversationId: import('vue').Ref<string, string>;
2950
+ profileViewOpen: import('vue').Ref<boolean, boolean>;
2951
+ messagesMap: import('vue').Ref<Record<string, import('../types/chat').Message[]>, Record<string, import('../types/chat').Message[]>>;
2952
+ typingByConversation: import('vue').Ref<Record<string, string>, Record<string, string>>;
2953
+ chatsPerPage: import('vue').ComputedRef<number>;
2954
+ unreadCount: import('vue').ComputedRef<number>;
2955
+ setSelectedChat: (id: string | null) => void;
2956
+ openProfile: () => void;
2957
+ closeProfile: () => void;
2958
+ fetchConversations: (filter?: import('../types/chat').FilterKeys, page?: number, search?: string) => Promise<void>;
2959
+ loadNextPage: (filter: import('../types/chat').FilterKeys) => Promise<void>;
2960
+ getDisplayedContacts: (filter: import('../types/chat').FilterKeys) => import('../types/chat').Contact[];
2961
+ getContactById: (id: string) => import('../types/chat').Contact | null;
2962
+ markAsRead: (conversationId: string) => void;
2963
+ updateLastMessage: (conversationId: string, message: import('../types/chat').Message) => void;
2964
+ patchLastMessage: (conversationId: string, messageId: string, updates: Partial<import('../types/chat').Message>) => void;
2965
+ }, "setSelectedChat" | "openProfile" | "closeProfile" | "fetchConversations" | "loadNextPage" | "getDisplayedContacts" | "getContactById" | "markAsRead" | "updateLastMessage" | "patchLastMessage">>;
2966
+ //# sourceMappingURL=chatStore.d.ts.map