@devdash/bofrid-api-types 0.1.5

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 (163) hide show
  1. package/README.md +24 -0
  2. package/dist/app.d.ts +23 -0
  3. package/dist/dev.d.ts +6 -0
  4. package/dist/export-openapi.d.ts +9 -0
  5. package/dist/index.d.ts +3 -0
  6. package/dist/lib/auth.d.ts +20 -0
  7. package/dist/lib/criipto-bankid.d.ts +45 -0
  8. package/dist/lib/datalake.d.ts +7 -0
  9. package/dist/lib/docs-filter.d.ts +15 -0
  10. package/dist/lib/email-action-token.d.ts +26 -0
  11. package/dist/lib/email-utm.d.ts +42 -0
  12. package/dist/lib/email.d.ts +94 -0
  13. package/dist/lib/env.d.ts +18 -0
  14. package/dist/lib/errors.d.ts +6 -0
  15. package/dist/lib/helpers.d.ts +6 -0
  16. package/dist/lib/logger.d.ts +25 -0
  17. package/dist/lib/markets.d.ts +1 -0
  18. package/dist/lib/org-number.d.ts +5 -0
  19. package/dist/lib/ownership.d.ts +47 -0
  20. package/dist/lib/pdf-watermark.d.ts +25 -0
  21. package/dist/lib/personnummer.d.ts +14 -0
  22. package/dist/lib/posthog.d.ts +51 -0
  23. package/dist/lib/premium.d.ts +13 -0
  24. package/dist/lib/profile-resolver.d.ts +14 -0
  25. package/dist/lib/redirect-state.d.ts +40 -0
  26. package/dist/lib/revalidate.d.ts +23 -0
  27. package/dist/lib/schemas.d.ts +21 -0
  28. package/dist/lib/sentry.d.ts +31 -0
  29. package/dist/lib/slug.d.ts +5 -0
  30. package/dist/lib/sms.d.ts +22 -0
  31. package/dist/lib/system-log.d.ts +31 -0
  32. package/dist/lib/webhook-events.d.ts +26 -0
  33. package/dist/lib/webhooks.d.ts +28 -0
  34. package/dist/middleware/auth-debug.d.ts +17 -0
  35. package/dist/middleware/auth.d.ts +19 -0
  36. package/dist/middleware/bibi-logger.d.ts +6 -0
  37. package/dist/middleware/cors.d.ts +1 -0
  38. package/dist/middleware/request-id.d.ts +10 -0
  39. package/dist/middleware/sentry-context.d.ts +8 -0
  40. package/dist/routes/activity-feed.d.ts +64 -0
  41. package/dist/routes/admin-bevakningar.d.ts +200 -0
  42. package/dist/routes/admin-companies.d.ts +381 -0
  43. package/dist/routes/admin-email-jobs.d.ts +257 -0
  44. package/dist/routes/admin-email-logs.d.ts +9 -0
  45. package/dist/routes/admin-fb-leads.d.ts +32 -0
  46. package/dist/routes/admin-import.d.ts +188 -0
  47. package/dist/routes/admin-login-history.d.ts +9 -0
  48. package/dist/routes/admin-marketing.d.ts +15 -0
  49. package/dist/routes/admin-metabase.d.ts +9 -0
  50. package/dist/routes/admin-notifications.d.ts +7 -0
  51. package/dist/routes/admin-paying-customers.d.ts +74 -0
  52. package/dist/routes/admin-sessions.d.ts +10 -0
  53. package/dist/routes/admin-stats.d.ts +380 -0
  54. package/dist/routes/admin-system-logs.d.ts +10 -0
  55. package/dist/routes/admin-users.d.ts +299 -0
  56. package/dist/routes/admin-webhooks.d.ts +276 -0
  57. package/dist/routes/api-keys.d.ts +123 -0
  58. package/dist/routes/applications.d.ts +385 -0
  59. package/dist/routes/auth.d.ts +15 -0
  60. package/dist/routes/billing.d.ts +369 -0
  61. package/dist/routes/bostadsmerit.d.ts +51 -0
  62. package/dist/routes/companies.d.ts +842 -0
  63. package/dist/routes/contact-reveals.d.ts +102 -0
  64. package/dist/routes/conversations/handlers/conversation.d.ts +5 -0
  65. package/dist/routes/conversations/handlers/initiate.d.ts +4 -0
  66. package/dist/routes/conversations/handlers/messages.d.ts +5 -0
  67. package/dist/routes/conversations/handlers/state.d.ts +5 -0
  68. package/dist/routes/conversations/helpers/access.d.ts +11 -0
  69. package/dist/routes/conversations/helpers/enrich-conversation.d.ts +58 -0
  70. package/dist/routes/conversations/helpers/identity.d.ts +43 -0
  71. package/dist/routes/conversations/helpers/notify-recipient.d.ts +10 -0
  72. package/dist/routes/conversations/helpers/reconcile-reveal.d.ts +10 -0
  73. package/dist/routes/conversations/helpers/scrub-contact.d.ts +1 -0
  74. package/dist/routes/conversations/index.d.ts +422 -0
  75. package/dist/routes/conversations/routes.d.ts +924 -0
  76. package/dist/routes/conversations/schemas.d.ts +216 -0
  77. package/dist/routes/cron.d.ts +27 -0
  78. package/dist/routes/documents.d.ts +493 -0
  79. package/dist/routes/email-actions.d.ts +8 -0
  80. package/dist/routes/fastighetslista.d.ts +94 -0
  81. package/dist/routes/geo.d.ts +518 -0
  82. package/dist/routes/geocoding.d.ts +192 -0
  83. package/dist/routes/health.d.ts +43 -0
  84. package/dist/routes/housing-history.d.ts +381 -0
  85. package/dist/routes/index.d.ts +15321 -0
  86. package/dist/routes/leads.d.ts +281 -0
  87. package/dist/routes/listing-helpers.d.ts +33 -0
  88. package/dist/routes/listing-publications.d.ts +636 -0
  89. package/dist/routes/listings.d.ts +1846 -0
  90. package/dist/routes/location-interests.d.ts +754 -0
  91. package/dist/routes/lookup.d.ts +109 -0
  92. package/dist/routes/mejl.d.ts +377 -0
  93. package/dist/routes/profiles.d.ts +281 -0
  94. package/dist/routes/properties.d.ts +1266 -0
  95. package/dist/routes/public-listings.d.ts +1137 -0
  96. package/dist/routes/public-profiles.d.ts +293 -0
  97. package/dist/routes/references.d.ts +695 -0
  98. package/dist/routes/search-partners.d.ts +4 -0
  99. package/dist/routes/site-config.d.ts +103 -0
  100. package/dist/routes/storage.d.ts +367 -0
  101. package/dist/routes/tenant-boost.d.ts +229 -0
  102. package/dist/routes/tenants.d.ts +336 -0
  103. package/dist/routes/track.d.ts +19 -0
  104. package/dist/routes/translate.d.ts +51 -0
  105. package/dist/routes/users.d.ts +517 -0
  106. package/dist/routes/verification.d.ts +175 -0
  107. package/dist/routes/webhooks.d.ts +9 -0
  108. package/dist/rpc.d.ts +11 -0
  109. package/dist/serve.d.ts +5 -0
  110. package/dist/services/activity-feed/activity-feed.service.d.ts +26 -0
  111. package/dist/services/applications/approval.service.d.ts +17 -0
  112. package/dist/services/auth/bankid-login.service.d.ts +40 -0
  113. package/dist/services/billing/constants.d.ts +2 -0
  114. package/dist/services/billing/contact-billing.service.d.ts +59 -0
  115. package/dist/services/billing/customer.service.d.ts +14 -0
  116. package/dist/services/billing/invoice-item.service.d.ts +49 -0
  117. package/dist/services/billing/invoice.service.d.ts +21 -0
  118. package/dist/services/billing/listing-upgrade-checkout.service.d.ts +45 -0
  119. package/dist/services/billing/purchase-receipt-email.d.ts +23 -0
  120. package/dist/services/billing/reveal-allowance.service.d.ts +33 -0
  121. package/dist/services/billing/stripe.d.ts +6 -0
  122. package/dist/services/billing/subscription.service.d.ts +21 -0
  123. package/dist/services/billing/types.d.ts +64 -0
  124. package/dist/services/billing/verify-session.service.d.ts +17 -0
  125. package/dist/services/billing/webhook.service.d.ts +8 -0
  126. package/dist/services/bostadsmerit/calculator.d.ts +51 -0
  127. package/dist/services/bostadsmerit/couple-calculator.d.ts +46 -0
  128. package/dist/services/bostadsmerit/tracker.service.d.ts +45 -0
  129. package/dist/services/chat-access/unlock-chat.service.d.ts +62 -0
  130. package/dist/services/conversations/upsert-conversation.d.ts +11 -0
  131. package/dist/services/email-jobs/email-job-sender.d.ts +7 -0
  132. package/dist/services/email-jobs/email-job.service.d.ts +67 -0
  133. package/dist/services/geo/bevakning-matching.service.d.ts +67 -0
  134. package/dist/services/geo/geo-listings.service.d.ts +38 -0
  135. package/dist/services/geo/geo.service.d.ts +233 -0
  136. package/dist/services/geo/geocode.service.d.ts +16 -0
  137. package/dist/services/geo/market-insights-by-coords.service.d.ts +67 -0
  138. package/dist/services/geo/market-insights.service.d.ts +44 -0
  139. package/dist/services/geo/market-overview.service.d.ts +42 -0
  140. package/dist/services/homii/image.d.ts +24 -0
  141. package/dist/services/homii/index.d.ts +12 -0
  142. package/dist/services/homii/location.d.ts +32 -0
  143. package/dist/services/homii/mapper.d.ts +41 -0
  144. package/dist/services/homii/types.d.ts +91 -0
  145. package/dist/services/leads/constants.d.ts +32 -0
  146. package/dist/services/leads/generate-leads.service.d.ts +38 -0
  147. package/dist/services/leads/matching.service.d.ts +55 -0
  148. package/dist/services/leads/tier.service.d.ts +6 -0
  149. package/dist/services/leads/types.d.ts +27 -0
  150. package/dist/services/listings/seo.service.d.ts +57 -0
  151. package/dist/services/listings/status.d.ts +37 -0
  152. package/dist/services/mejl/client.d.ts +38 -0
  153. package/dist/services/mrkoll/client.d.ts +95 -0
  154. package/dist/services/mrkoll/import.d.ts +38 -0
  155. package/dist/services/mrkoll/match.d.ts +35 -0
  156. package/dist/services/notifications/bibi-projects.d.ts +43 -0
  157. package/dist/services/notifications/bibi.d.ts +229 -0
  158. package/dist/services/profiles/bankid-verify.d.ts +23 -0
  159. package/dist/services/realtime.d.ts +14 -0
  160. package/dist/services/references/history-linker.d.ts +19 -0
  161. package/dist/services/tenant-boost/constants.d.ts +120 -0
  162. package/dist/services/tenant-boost/tenant-boost.service.d.ts +59 -0
  163. package/package.json +29 -0
@@ -0,0 +1,1137 @@
1
+ import { OpenAPIHono } from "@hono/zod-openapi";
2
+ import type { AppBindings } from "../app";
3
+ export declare const publicListingsApp: OpenAPIHono<AppBindings, {
4
+ "/public/listings": {
5
+ $get: {
6
+ input: {
7
+ query: {
8
+ sort?: "newest" | "oldest" | "price_asc" | "price_desc" | undefined;
9
+ limit?: number | undefined;
10
+ city?: string | undefined;
11
+ propertyTypes?: string | undefined;
12
+ page?: number | undefined;
13
+ priceMin?: number | undefined;
14
+ priceMax?: number | undefined;
15
+ roomsMin?: number | undefined;
16
+ roomsMax?: number | undefined;
17
+ };
18
+ };
19
+ output: {
20
+ limit: number;
21
+ data: {
22
+ status: string;
23
+ id: string;
24
+ shortId: string | null;
25
+ isFeatured: boolean;
26
+ createdAt: string;
27
+ updatedAt: string;
28
+ slug: string | null;
29
+ countryCode: string;
30
+ lat: number | null;
31
+ lon: number | null;
32
+ geoLan: string | null;
33
+ geoKommun: string | null;
34
+ geoOmrade: string | null;
35
+ geoRoutePrefix: string | null;
36
+ propertyId: string | null;
37
+ currencyCode: string;
38
+ geo: string | number | boolean | any[] | {
39
+ [x: string]: any;
40
+ } | null;
41
+ publicUrl: string | null;
42
+ publicUrlEn: string | null;
43
+ position: number | null;
44
+ viewCount: number;
45
+ currentStep: number | null;
46
+ isLocked: boolean;
47
+ pendingReview: boolean;
48
+ rejectionComment: string | null;
49
+ submissionCount: number;
50
+ premiumListingPriceOre: number;
51
+ upgradedAt: string | null;
52
+ upgradeTier: number | null;
53
+ reviewedBy: string | null;
54
+ reviewedAt: string | null;
55
+ publishedAt: string | null;
56
+ property: {
57
+ description: string | null;
58
+ status: string;
59
+ id: string;
60
+ shortId: string;
61
+ companyId: string | null;
62
+ createdAt: string;
63
+ updatedAt: string;
64
+ identityHash: string | null;
65
+ landlordId: string | null;
66
+ countryCode: string;
67
+ street: string;
68
+ streetNumber: string | null;
69
+ postalCode: string | null;
70
+ city: string;
71
+ municipality: string | null;
72
+ neighborhood: string | null;
73
+ location: string | null;
74
+ lat: number | null;
75
+ lon: number | null;
76
+ geoLan: string | null;
77
+ geoKommun: string | null;
78
+ geoOmrade: string | null;
79
+ geoRoutePrefix: string | null;
80
+ propertyType: string;
81
+ legalTenure: string | null;
82
+ furnishingStatus: string | null;
83
+ propertySize: number;
84
+ totalRooms: number;
85
+ floor: number | null;
86
+ maxOccupancy: number | null;
87
+ petsAllowed: string | null;
88
+ smokingAllowed: string | null;
89
+ studentHousing: boolean;
90
+ seniorHousing: boolean;
91
+ corporateHousing: boolean;
92
+ wheelchairAccessible: boolean;
93
+ minRentalMonths: number | null;
94
+ amenities: string[] | null;
95
+ includedUtilities: string[] | null;
96
+ objektNummer: string | null;
97
+ lagenhetsnummer: string | null;
98
+ costPerMonth: number | null;
99
+ baseMonthlyRent: number | null;
100
+ additionalCosts: number | null;
101
+ deposit: number | null;
102
+ rentalStart: string | null;
103
+ rentalEnd: string | null;
104
+ extensionPossible: boolean | null;
105
+ planlosningFiles: string[] | null;
106
+ descriptionEn: string | null;
107
+ applicantCriteria: string | number | boolean | any[] | {
108
+ [x: string]: any;
109
+ } | null;
110
+ fastighetsId: string | null;
111
+ } | null;
112
+ primaryImage: {
113
+ url: string;
114
+ id: string;
115
+ createdAt: string;
116
+ propertyId: string;
117
+ urls: string | number | boolean | any[] | {
118
+ [x: string]: any;
119
+ } | null;
120
+ width: number | null;
121
+ height: number | null;
122
+ order: number;
123
+ isPrimary: boolean;
124
+ caption: string | null;
125
+ } | null;
126
+ }[];
127
+ total: number;
128
+ page: number;
129
+ };
130
+ outputFormat: "json";
131
+ status: 200;
132
+ };
133
+ };
134
+ } & {
135
+ "/public/listings/featured": {
136
+ $get: {
137
+ input: {
138
+ query: {
139
+ limit?: number | undefined;
140
+ };
141
+ };
142
+ output: {
143
+ status: string;
144
+ id: string;
145
+ shortId: string | null;
146
+ isFeatured: boolean;
147
+ createdAt: string;
148
+ updatedAt: string;
149
+ slug: string | null;
150
+ countryCode: string;
151
+ lat: number | null;
152
+ lon: number | null;
153
+ geoLan: string | null;
154
+ geoKommun: string | null;
155
+ geoOmrade: string | null;
156
+ geoRoutePrefix: string | null;
157
+ propertyId: string | null;
158
+ currencyCode: string;
159
+ geo: string | number | boolean | any[] | {
160
+ [x: string]: any;
161
+ } | null;
162
+ publicUrl: string | null;
163
+ publicUrlEn: string | null;
164
+ position: number | null;
165
+ viewCount: number;
166
+ currentStep: number | null;
167
+ isLocked: boolean;
168
+ pendingReview: boolean;
169
+ rejectionComment: string | null;
170
+ submissionCount: number;
171
+ premiumListingPriceOre: number;
172
+ upgradedAt: string | null;
173
+ upgradeTier: number | null;
174
+ reviewedBy: string | null;
175
+ reviewedAt: string | null;
176
+ publishedAt: string | null;
177
+ property: {
178
+ description: string | null;
179
+ status: string;
180
+ id: string;
181
+ shortId: string;
182
+ companyId: string | null;
183
+ createdAt: string;
184
+ updatedAt: string;
185
+ identityHash: string | null;
186
+ landlordId: string | null;
187
+ countryCode: string;
188
+ street: string;
189
+ streetNumber: string | null;
190
+ postalCode: string | null;
191
+ city: string;
192
+ municipality: string | null;
193
+ neighborhood: string | null;
194
+ location: string | null;
195
+ lat: number | null;
196
+ lon: number | null;
197
+ geoLan: string | null;
198
+ geoKommun: string | null;
199
+ geoOmrade: string | null;
200
+ geoRoutePrefix: string | null;
201
+ propertyType: string;
202
+ legalTenure: string | null;
203
+ furnishingStatus: string | null;
204
+ propertySize: number;
205
+ totalRooms: number;
206
+ floor: number | null;
207
+ maxOccupancy: number | null;
208
+ petsAllowed: string | null;
209
+ smokingAllowed: string | null;
210
+ studentHousing: boolean;
211
+ seniorHousing: boolean;
212
+ corporateHousing: boolean;
213
+ wheelchairAccessible: boolean;
214
+ minRentalMonths: number | null;
215
+ amenities: string[] | null;
216
+ includedUtilities: string[] | null;
217
+ objektNummer: string | null;
218
+ lagenhetsnummer: string | null;
219
+ costPerMonth: number | null;
220
+ baseMonthlyRent: number | null;
221
+ additionalCosts: number | null;
222
+ deposit: number | null;
223
+ rentalStart: string | null;
224
+ rentalEnd: string | null;
225
+ extensionPossible: boolean | null;
226
+ planlosningFiles: string[] | null;
227
+ descriptionEn: string | null;
228
+ applicantCriteria: string | number | boolean | any[] | {
229
+ [x: string]: any;
230
+ } | null;
231
+ fastighetsId: string | null;
232
+ } | null;
233
+ primaryImage: {
234
+ url: string;
235
+ id: string;
236
+ createdAt: string;
237
+ propertyId: string;
238
+ urls: string | number | boolean | any[] | {
239
+ [x: string]: any;
240
+ } | null;
241
+ width: number | null;
242
+ height: number | null;
243
+ order: number;
244
+ isPrimary: boolean;
245
+ caption: string | null;
246
+ } | null;
247
+ }[];
248
+ outputFormat: "json";
249
+ status: 200;
250
+ };
251
+ };
252
+ } & {
253
+ "/public/listings/count": {
254
+ $get: {
255
+ input: {};
256
+ output: {
257
+ count: number;
258
+ };
259
+ outputFormat: "json";
260
+ status: 200;
261
+ };
262
+ };
263
+ } & {
264
+ "/public/listings/:id/track-view": {
265
+ $post: {
266
+ input: {
267
+ param: {
268
+ id: string;
269
+ };
270
+ } & {
271
+ json: {
272
+ timestamp?: number | undefined;
273
+ utmSource?: string | undefined;
274
+ utmMedium?: string | undefined;
275
+ utmCampaign?: string | undefined;
276
+ utmContent?: string | undefined;
277
+ userAgent?: string | undefined;
278
+ };
279
+ };
280
+ output: {
281
+ error: string;
282
+ };
283
+ outputFormat: "json";
284
+ status: 404;
285
+ } | {
286
+ input: {
287
+ param: {
288
+ id: string;
289
+ };
290
+ } & {
291
+ json: {
292
+ timestamp?: number | undefined;
293
+ utmSource?: string | undefined;
294
+ utmMedium?: string | undefined;
295
+ utmCampaign?: string | undefined;
296
+ utmContent?: string | undefined;
297
+ userAgent?: string | undefined;
298
+ };
299
+ };
300
+ output: {
301
+ totalViews: number;
302
+ viewCounted: boolean;
303
+ };
304
+ outputFormat: "json";
305
+ status: 200;
306
+ };
307
+ };
308
+ } & {
309
+ "/public/listings/by-id/:id": {
310
+ $get: {
311
+ input: {
312
+ param: {
313
+ id: string;
314
+ };
315
+ };
316
+ output: {
317
+ error: string;
318
+ };
319
+ outputFormat: "json";
320
+ status: 404;
321
+ } | {
322
+ input: {
323
+ param: {
324
+ id: string;
325
+ };
326
+ };
327
+ output: {
328
+ status: string;
329
+ id: string;
330
+ createdAt: string | null;
331
+ updatedAt: string | null;
332
+ landlordId: string;
333
+ companyName: string | null;
334
+ location: {
335
+ address: {
336
+ street: string;
337
+ streetNumber: string;
338
+ postalCode: string;
339
+ city: string;
340
+ municipality?: string | undefined;
341
+ };
342
+ geoCoordinates: {
343
+ lat: number;
344
+ lon: number;
345
+ };
346
+ };
347
+ amenities: string[];
348
+ includedUtilities: string[];
349
+ applicantCriteria: {
350
+ requiredDocuments?: string[] | undefined;
351
+ minimumReferences?: number | undefined;
352
+ } | null;
353
+ geo: {
354
+ routePrefix?: string | undefined;
355
+ lan?: string | undefined;
356
+ kommun?: string | undefined;
357
+ omrade?: string | undefined;
358
+ seoPath?: string | undefined;
359
+ seoPathEn?: string | undefined;
360
+ } | null;
361
+ publicUrl: string | null;
362
+ publicUrlEn: string | null;
363
+ viewCount: number;
364
+ pendingReview: boolean | null;
365
+ publishedAt: string | null;
366
+ images: {
367
+ url: string;
368
+ id: string;
369
+ createdAt: string;
370
+ propertyId: string;
371
+ urls: string | number | boolean | any[] | {
372
+ [x: string]: any;
373
+ } | null;
374
+ width: number | null;
375
+ height: number | null;
376
+ order: number;
377
+ isPrimary: boolean;
378
+ caption: string | null;
379
+ }[];
380
+ listing: {
381
+ propertyType: "apartment" | "house";
382
+ description?: string | undefined;
383
+ legalTenure?: "owner" | "rental" | "cooperative" | undefined;
384
+ furnishingStatus?: "furnished" | "partially_furnished" | "unfurnished" | undefined;
385
+ descriptionEn?: string | undefined;
386
+ };
387
+ dimensions: {
388
+ propertySize: number | null;
389
+ totalRooms: number | null;
390
+ bedrooms: number;
391
+ floor?: number | undefined;
392
+ };
393
+ pricing: {
394
+ totalMonthlyRent: number;
395
+ baseMonthlyRent?: number | undefined;
396
+ additionalCosts?: number | undefined;
397
+ deposit?: number | undefined;
398
+ };
399
+ terms: {
400
+ rentalPeriod: {
401
+ start: string | null;
402
+ end?: string | undefined;
403
+ };
404
+ extensionPossible?: boolean | undefined;
405
+ };
406
+ rules: {
407
+ maxOccupancy?: number | undefined;
408
+ petsAllowed?: boolean | undefined;
409
+ smokingAllowed?: boolean | undefined;
410
+ };
411
+ landlordInfo: {
412
+ name: string;
413
+ landlordId: string;
414
+ isVerified: boolean;
415
+ verifiedAt?: string | null | undefined;
416
+ photoURL?: string | null | undefined;
417
+ } | null;
418
+ isCompanyListing: boolean;
419
+ companySlug: string | null;
420
+ companyLogoUrl: string | null;
421
+ companyId?: string | undefined;
422
+ upgradedAt?: string | null | undefined;
423
+ };
424
+ outputFormat: "json";
425
+ status: 200;
426
+ };
427
+ };
428
+ } & {
429
+ "/public/listings/by-slug": {
430
+ $get: {
431
+ input: {
432
+ query: {
433
+ slug: string;
434
+ municipalitySlug: string;
435
+ områdeSlug: string;
436
+ };
437
+ };
438
+ output: {
439
+ error: string;
440
+ };
441
+ outputFormat: "json";
442
+ status: 404;
443
+ } | {
444
+ input: {
445
+ query: {
446
+ slug: string;
447
+ municipalitySlug: string;
448
+ områdeSlug: string;
449
+ };
450
+ };
451
+ output: {
452
+ status: string;
453
+ id: string;
454
+ shortId: string | null;
455
+ isFeatured: boolean;
456
+ createdAt: string;
457
+ updatedAt: string;
458
+ slug: string | null;
459
+ countryCode: string;
460
+ lat: number | null;
461
+ lon: number | null;
462
+ geoLan: string | null;
463
+ geoKommun: string | null;
464
+ geoOmrade: string | null;
465
+ geoRoutePrefix: string | null;
466
+ propertyId: string | null;
467
+ currencyCode: string;
468
+ geo: string | number | boolean | any[] | {
469
+ [x: string]: any;
470
+ } | null;
471
+ publicUrl: string | null;
472
+ publicUrlEn: string | null;
473
+ position: number | null;
474
+ viewCount: number;
475
+ currentStep: number | null;
476
+ isLocked: boolean;
477
+ pendingReview: boolean;
478
+ rejectionComment: string | null;
479
+ submissionCount: number;
480
+ premiumListingPriceOre: number;
481
+ upgradedAt: string | null;
482
+ upgradeTier: number | null;
483
+ reviewedBy: string | null;
484
+ reviewedAt: string | null;
485
+ publishedAt: string | null;
486
+ images: {
487
+ url: string;
488
+ id: string;
489
+ createdAt: string;
490
+ propertyId: string;
491
+ urls: string | number | boolean | any[] | {
492
+ [x: string]: any;
493
+ } | null;
494
+ width: number | null;
495
+ height: number | null;
496
+ order: number;
497
+ isPrimary: boolean;
498
+ caption: string | null;
499
+ }[];
500
+ };
501
+ outputFormat: "json";
502
+ status: 200;
503
+ };
504
+ };
505
+ } & {
506
+ "/public/listings/by-slug-only": {
507
+ $get: {
508
+ input: {
509
+ query: {
510
+ slug: string;
511
+ };
512
+ };
513
+ output: {
514
+ error: string;
515
+ };
516
+ outputFormat: "json";
517
+ status: 404;
518
+ } | {
519
+ input: {
520
+ query: {
521
+ slug: string;
522
+ };
523
+ };
524
+ output: {
525
+ status: string;
526
+ id: string;
527
+ shortId: string | null;
528
+ isFeatured: boolean;
529
+ createdAt: string;
530
+ updatedAt: string;
531
+ slug: string | null;
532
+ countryCode: string;
533
+ lat: number | null;
534
+ lon: number | null;
535
+ geoLan: string | null;
536
+ geoKommun: string | null;
537
+ geoOmrade: string | null;
538
+ geoRoutePrefix: string | null;
539
+ propertyId: string | null;
540
+ currencyCode: string;
541
+ geo: string | number | boolean | any[] | {
542
+ [x: string]: any;
543
+ } | null;
544
+ publicUrl: string | null;
545
+ publicUrlEn: string | null;
546
+ position: number | null;
547
+ viewCount: number;
548
+ currentStep: number | null;
549
+ isLocked: boolean;
550
+ pendingReview: boolean;
551
+ rejectionComment: string | null;
552
+ submissionCount: number;
553
+ premiumListingPriceOre: number;
554
+ upgradedAt: string | null;
555
+ upgradeTier: number | null;
556
+ reviewedBy: string | null;
557
+ reviewedAt: string | null;
558
+ publishedAt: string | null;
559
+ };
560
+ outputFormat: "json";
561
+ status: 200;
562
+ };
563
+ };
564
+ } & {
565
+ "/public/listings/similar/:id": {
566
+ $get: {
567
+ input: {
568
+ param: {
569
+ id: string;
570
+ };
571
+ } & {
572
+ query: {
573
+ city: string;
574
+ };
575
+ };
576
+ output: {
577
+ status: string;
578
+ id: string;
579
+ shortId: string | null;
580
+ isFeatured: boolean;
581
+ createdAt: string;
582
+ updatedAt: string;
583
+ slug: string | null;
584
+ countryCode: string;
585
+ lat: number | null;
586
+ lon: number | null;
587
+ geoLan: string | null;
588
+ geoKommun: string | null;
589
+ geoOmrade: string | null;
590
+ geoRoutePrefix: string | null;
591
+ propertyId: string | null;
592
+ currencyCode: string;
593
+ geo: string | number | boolean | any[] | {
594
+ [x: string]: any;
595
+ } | null;
596
+ publicUrl: string | null;
597
+ publicUrlEn: string | null;
598
+ position: number | null;
599
+ viewCount: number;
600
+ currentStep: number | null;
601
+ isLocked: boolean;
602
+ pendingReview: boolean;
603
+ rejectionComment: string | null;
604
+ submissionCount: number;
605
+ premiumListingPriceOre: number;
606
+ upgradedAt: string | null;
607
+ upgradeTier: number | null;
608
+ reviewedBy: string | null;
609
+ reviewedAt: string | null;
610
+ publishedAt: string | null;
611
+ }[];
612
+ outputFormat: "json";
613
+ status: 200;
614
+ };
615
+ };
616
+ } & {
617
+ "/public/listings/by-city": {
618
+ $get: {
619
+ input: {
620
+ query: {
621
+ city: string;
622
+ limit?: number | undefined;
623
+ propertyType?: string | undefined;
624
+ exclude?: string | undefined;
625
+ };
626
+ };
627
+ output: {
628
+ status: string;
629
+ id: string;
630
+ shortId: string | null;
631
+ isFeatured: boolean;
632
+ createdAt: string;
633
+ updatedAt: string;
634
+ slug: string | null;
635
+ countryCode: string;
636
+ lat: number | null;
637
+ lon: number | null;
638
+ geoLan: string | null;
639
+ geoKommun: string | null;
640
+ geoOmrade: string | null;
641
+ geoRoutePrefix: string | null;
642
+ propertyId: string | null;
643
+ currencyCode: string;
644
+ geo: string | number | boolean | any[] | {
645
+ [x: string]: any;
646
+ } | null;
647
+ publicUrl: string | null;
648
+ publicUrlEn: string | null;
649
+ position: number | null;
650
+ viewCount: number;
651
+ currentStep: number | null;
652
+ isLocked: boolean;
653
+ pendingReview: boolean;
654
+ rejectionComment: string | null;
655
+ submissionCount: number;
656
+ premiumListingPriceOre: number;
657
+ upgradedAt: string | null;
658
+ upgradeTier: number | null;
659
+ reviewedBy: string | null;
660
+ reviewedAt: string | null;
661
+ publishedAt: string | null;
662
+ }[];
663
+ outputFormat: "json";
664
+ status: 200;
665
+ };
666
+ };
667
+ } & {
668
+ "/public/listings/:id/application-count": {
669
+ $get: {
670
+ input: {
671
+ param: {
672
+ id: string;
673
+ };
674
+ };
675
+ output: {
676
+ count: number;
677
+ };
678
+ outputFormat: "json";
679
+ status: 200;
680
+ };
681
+ };
682
+ } & {
683
+ "/public/listings/markers": {
684
+ $get: {
685
+ input: {};
686
+ output: {
687
+ id: string;
688
+ location: {
689
+ street: string | null;
690
+ city: string | null;
691
+ geoCoordinates: {
692
+ lat: number;
693
+ lon: number;
694
+ };
695
+ };
696
+ listing: {
697
+ propertyType: string | null;
698
+ furnishingStatus?: string | null | undefined;
699
+ };
700
+ dimensions: {
701
+ propertySize: number | null;
702
+ totalRooms: number | null;
703
+ bedrooms?: number | null | undefined;
704
+ };
705
+ pricing: {
706
+ baseMonthlyRent: number | null;
707
+ totalMonthlyRent: number | null;
708
+ deposit?: number | null | undefined;
709
+ };
710
+ rules: {
711
+ maxOccupancy?: number | null | undefined;
712
+ petsAllowed?: boolean | null | undefined;
713
+ smokingAllowed?: boolean | null | undefined;
714
+ };
715
+ status?: string | null | undefined;
716
+ createdAt?: string | null | undefined;
717
+ updatedAt?: string | null | undefined;
718
+ isFastighetsbolag?: boolean | undefined;
719
+ studentHousing?: boolean | undefined;
720
+ seniorHousing?: boolean | undefined;
721
+ corporateHousing?: boolean | undefined;
722
+ wheelchairAccessible?: boolean | undefined;
723
+ minRentalMonths?: number | null | undefined;
724
+ geo?: {
725
+ seoPath?: string | null | undefined;
726
+ seoPathEn?: string | null | undefined;
727
+ } | null | undefined;
728
+ upgradedAt?: string | null | undefined;
729
+ publishedAt?: string | null | undefined;
730
+ source?: string | null | undefined;
731
+ terms?: {
732
+ rentalPeriod: {
733
+ start: string | null;
734
+ end?: string | null | undefined;
735
+ };
736
+ extensionPossible?: boolean | null | undefined;
737
+ } | null | undefined;
738
+ isCompanyListing?: boolean | undefined;
739
+ primaryImage?: string | null | undefined;
740
+ }[];
741
+ outputFormat: "json";
742
+ status: 200;
743
+ };
744
+ };
745
+ } & {
746
+ "/public/sitemap/properties": {
747
+ $get: {
748
+ input: {};
749
+ output: {
750
+ status: string;
751
+ id: string;
752
+ createdAt: string | null;
753
+ updatedAt: string | null;
754
+ publicUrl: string | null;
755
+ publicUrlEn: string | null;
756
+ location?: any;
757
+ upgradedAt?: string | null | undefined;
758
+ source?: string | null | undefined;
759
+ images?: any[] | null | undefined;
760
+ listing?: any;
761
+ dimensions?: any;
762
+ }[];
763
+ outputFormat: "json";
764
+ status: 200;
765
+ };
766
+ };
767
+ } & {
768
+ "/public/landlords": {
769
+ $get: {
770
+ input: {
771
+ query: {
772
+ limit?: number | undefined;
773
+ lan?: string | undefined;
774
+ kommun?: string | undefined;
775
+ tatort?: string | undefined;
776
+ };
777
+ };
778
+ output: {
779
+ displayName: string;
780
+ firstName: string;
781
+ slug: string;
782
+ userId: string;
783
+ listingCount: number;
784
+ publicId: string;
785
+ profilePictureUrl?: string | null | undefined;
786
+ activeTatorter?: string[] | undefined;
787
+ activeKommuner?: string[] | undefined;
788
+ }[];
789
+ outputFormat: "json";
790
+ status: 200;
791
+ };
792
+ };
793
+ } & {
794
+ "/public/listings/latest": {
795
+ $get: {
796
+ input: {
797
+ query: {
798
+ limit?: number | undefined;
799
+ };
800
+ };
801
+ output: {
802
+ status: string;
803
+ id: string;
804
+ shortId: string | null;
805
+ isFeatured: boolean;
806
+ createdAt: string;
807
+ updatedAt: string;
808
+ slug: string | null;
809
+ countryCode: string;
810
+ lat: number | null;
811
+ lon: number | null;
812
+ geoLan: string | null;
813
+ geoKommun: string | null;
814
+ geoOmrade: string | null;
815
+ geoRoutePrefix: string | null;
816
+ propertyId: string | null;
817
+ currencyCode: string;
818
+ geo: string | number | boolean | any[] | {
819
+ [x: string]: any;
820
+ } | null;
821
+ publicUrl: string | null;
822
+ publicUrlEn: string | null;
823
+ position: number | null;
824
+ viewCount: number;
825
+ currentStep: number | null;
826
+ isLocked: boolean;
827
+ pendingReview: boolean;
828
+ rejectionComment: string | null;
829
+ submissionCount: number;
830
+ premiumListingPriceOre: number;
831
+ upgradedAt: string | null;
832
+ upgradeTier: number | null;
833
+ reviewedBy: string | null;
834
+ reviewedAt: string | null;
835
+ publishedAt: string | null;
836
+ property: {
837
+ description: string | null;
838
+ status: string;
839
+ id: string;
840
+ shortId: string;
841
+ companyId: string | null;
842
+ createdAt: string;
843
+ updatedAt: string;
844
+ identityHash: string | null;
845
+ landlordId: string | null;
846
+ countryCode: string;
847
+ street: string;
848
+ streetNumber: string | null;
849
+ postalCode: string | null;
850
+ city: string;
851
+ municipality: string | null;
852
+ neighborhood: string | null;
853
+ location: string | null;
854
+ lat: number | null;
855
+ lon: number | null;
856
+ geoLan: string | null;
857
+ geoKommun: string | null;
858
+ geoOmrade: string | null;
859
+ geoRoutePrefix: string | null;
860
+ propertyType: string;
861
+ legalTenure: string | null;
862
+ furnishingStatus: string | null;
863
+ propertySize: number;
864
+ totalRooms: number;
865
+ floor: number | null;
866
+ maxOccupancy: number | null;
867
+ petsAllowed: string | null;
868
+ smokingAllowed: string | null;
869
+ studentHousing: boolean;
870
+ seniorHousing: boolean;
871
+ corporateHousing: boolean;
872
+ wheelchairAccessible: boolean;
873
+ minRentalMonths: number | null;
874
+ amenities: string[] | null;
875
+ includedUtilities: string[] | null;
876
+ objektNummer: string | null;
877
+ lagenhetsnummer: string | null;
878
+ costPerMonth: number | null;
879
+ baseMonthlyRent: number | null;
880
+ additionalCosts: number | null;
881
+ deposit: number | null;
882
+ rentalStart: string | null;
883
+ rentalEnd: string | null;
884
+ extensionPossible: boolean | null;
885
+ planlosningFiles: string[] | null;
886
+ descriptionEn: string | null;
887
+ applicantCriteria: string | number | boolean | any[] | {
888
+ [x: string]: any;
889
+ } | null;
890
+ fastighetsId: string | null;
891
+ } | null;
892
+ primaryImage: {
893
+ url: string;
894
+ id: string;
895
+ createdAt: string;
896
+ propertyId: string;
897
+ urls: string | number | boolean | any[] | {
898
+ [x: string]: any;
899
+ } | null;
900
+ width: number | null;
901
+ height: number | null;
902
+ order: number;
903
+ isPrimary: boolean;
904
+ caption: string | null;
905
+ } | null;
906
+ }[];
907
+ outputFormat: "json";
908
+ status: 200;
909
+ };
910
+ };
911
+ } & {
912
+ "/public/listings/:id/facebook-data": {
913
+ $get: {
914
+ input: {
915
+ param: {
916
+ id: string;
917
+ };
918
+ };
919
+ output: {
920
+ error: string;
921
+ };
922
+ outputFormat: "json";
923
+ status: 404;
924
+ } | {
925
+ input: {
926
+ param: {
927
+ id: string;
928
+ };
929
+ };
930
+ output: {
931
+ environment: string;
932
+ street: string | null;
933
+ city: string | null;
934
+ propertySize: number | null;
935
+ totalRooms: number | null;
936
+ baseMonthlyRent: number | null;
937
+ listingId: string;
938
+ landlordName: string | null;
939
+ regionSlug: string | null;
940
+ municipalitySlug: string;
941
+ imageUrls: string[];
942
+ totalMonthlyRent: number | null;
943
+ seoUrl: string;
944
+ rentalPeriodStart: string | null;
945
+ rentalPeriodEnd: string | null;
946
+ isTestMode: boolean;
947
+ };
948
+ outputFormat: "json";
949
+ status: 200;
950
+ };
951
+ };
952
+ } & {
953
+ "/public/listings/:id": {
954
+ $get: {
955
+ input: {
956
+ param: {
957
+ id: string;
958
+ };
959
+ };
960
+ output: {
961
+ error: string;
962
+ };
963
+ outputFormat: "json";
964
+ status: 404;
965
+ } | {
966
+ input: {
967
+ param: {
968
+ id: string;
969
+ };
970
+ };
971
+ output: {
972
+ status: string;
973
+ id: string;
974
+ shortId: string | null;
975
+ isFeatured: boolean;
976
+ createdAt: string;
977
+ updatedAt: string;
978
+ slug: string | null;
979
+ countryCode: string;
980
+ lat: number | null;
981
+ lon: number | null;
982
+ geoLan: string | null;
983
+ geoKommun: string | null;
984
+ geoOmrade: string | null;
985
+ geoRoutePrefix: string | null;
986
+ propertyId: string | null;
987
+ currencyCode: string;
988
+ geo: string | number | boolean | any[] | {
989
+ [x: string]: any;
990
+ } | null;
991
+ publicUrl: string | null;
992
+ publicUrlEn: string | null;
993
+ position: number | null;
994
+ viewCount: number;
995
+ currentStep: number | null;
996
+ isLocked: boolean;
997
+ pendingReview: boolean;
998
+ rejectionComment: string | null;
999
+ submissionCount: number;
1000
+ premiumListingPriceOre: number;
1001
+ upgradedAt: string | null;
1002
+ upgradeTier: number | null;
1003
+ reviewedBy: string | null;
1004
+ reviewedAt: string | null;
1005
+ publishedAt: string | null;
1006
+ property: {
1007
+ description: string | null;
1008
+ status: string;
1009
+ id: string;
1010
+ shortId: string;
1011
+ companyId: string | null;
1012
+ createdAt: string;
1013
+ updatedAt: string;
1014
+ identityHash: string | null;
1015
+ landlordId: string | null;
1016
+ countryCode: string;
1017
+ street: string;
1018
+ streetNumber: string | null;
1019
+ postalCode: string | null;
1020
+ city: string;
1021
+ municipality: string | null;
1022
+ neighborhood: string | null;
1023
+ location: string | null;
1024
+ lat: number | null;
1025
+ lon: number | null;
1026
+ geoLan: string | null;
1027
+ geoKommun: string | null;
1028
+ geoOmrade: string | null;
1029
+ geoRoutePrefix: string | null;
1030
+ propertyType: string;
1031
+ legalTenure: string | null;
1032
+ furnishingStatus: string | null;
1033
+ propertySize: number;
1034
+ totalRooms: number;
1035
+ floor: number | null;
1036
+ maxOccupancy: number | null;
1037
+ petsAllowed: string | null;
1038
+ smokingAllowed: string | null;
1039
+ studentHousing: boolean;
1040
+ seniorHousing: boolean;
1041
+ corporateHousing: boolean;
1042
+ wheelchairAccessible: boolean;
1043
+ minRentalMonths: number | null;
1044
+ amenities: string[] | null;
1045
+ includedUtilities: string[] | null;
1046
+ objektNummer: string | null;
1047
+ lagenhetsnummer: string | null;
1048
+ costPerMonth: number | null;
1049
+ baseMonthlyRent: number | null;
1050
+ additionalCosts: number | null;
1051
+ deposit: number | null;
1052
+ rentalStart: string | null;
1053
+ rentalEnd: string | null;
1054
+ extensionPossible: boolean | null;
1055
+ planlosningFiles: string[] | null;
1056
+ descriptionEn: string | null;
1057
+ applicantCriteria: string | number | boolean | any[] | {
1058
+ [x: string]: any;
1059
+ } | null;
1060
+ fastighetsId: string | null;
1061
+ } | null;
1062
+ images: {
1063
+ url: string;
1064
+ id: string;
1065
+ createdAt: string;
1066
+ propertyId: string;
1067
+ urls: string | number | boolean | any[] | {
1068
+ [x: string]: any;
1069
+ } | null;
1070
+ width: number | null;
1071
+ height: number | null;
1072
+ order: number;
1073
+ isPrimary: boolean;
1074
+ caption: string | null;
1075
+ }[];
1076
+ };
1077
+ outputFormat: "json";
1078
+ status: 200;
1079
+ };
1080
+ };
1081
+ } & {
1082
+ "/public/listings/:id/broadcast-callback": {
1083
+ $post: {
1084
+ input: {
1085
+ param: {
1086
+ id: string;
1087
+ };
1088
+ } & {
1089
+ json: {
1090
+ status: "failed" | "completed";
1091
+ failed: number;
1092
+ posted: number;
1093
+ skipped: number;
1094
+ error?: string | undefined;
1095
+ groups?: {
1096
+ status: "success" | "failed" | "skipped";
1097
+ groupName: string;
1098
+ error?: string | undefined;
1099
+ groupUrl?: string | undefined;
1100
+ postUrl?: string | undefined;
1101
+ }[] | undefined;
1102
+ };
1103
+ };
1104
+ output: {
1105
+ error: string;
1106
+ };
1107
+ outputFormat: "json";
1108
+ status: 404;
1109
+ } | {
1110
+ input: {
1111
+ param: {
1112
+ id: string;
1113
+ };
1114
+ } & {
1115
+ json: {
1116
+ status: "failed" | "completed";
1117
+ failed: number;
1118
+ posted: number;
1119
+ skipped: number;
1120
+ error?: string | undefined;
1121
+ groups?: {
1122
+ status: "success" | "failed" | "skipped";
1123
+ groupName: string;
1124
+ error?: string | undefined;
1125
+ groupUrl?: string | undefined;
1126
+ postUrl?: string | undefined;
1127
+ }[] | undefined;
1128
+ };
1129
+ };
1130
+ output: {
1131
+ success: boolean;
1132
+ };
1133
+ outputFormat: "json";
1134
+ status: 200;
1135
+ };
1136
+ };
1137
+ }, "/">;