@homespot-sdk/core 0.0.358 → 0.0.359

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 (63) hide show
  1. package/dist/property/index.d.ts +2 -2
  2. package/dist/property/index.d.ts.map +1 -1
  3. package/dist/property/index.js +1 -1
  4. package/dist/property/index.js.map +1 -1
  5. package/dist/property/schemas.gen.d.ts +92 -0
  6. package/dist/property/schemas.gen.d.ts.map +1 -1
  7. package/dist/property/schemas.gen.js +99 -0
  8. package/dist/property/schemas.gen.js.map +1 -1
  9. package/dist/property/sdk.gen.d.ts +6 -2
  10. package/dist/property/sdk.gen.d.ts.map +1 -1
  11. package/dist/property/sdk.gen.js +34 -2
  12. package/dist/property/sdk.gen.js.map +1 -1
  13. package/dist/property/transformers.gen.d.ts +5 -1
  14. package/dist/property/transformers.gen.d.ts.map +1 -1
  15. package/dist/property/transformers.gen.js +40 -0
  16. package/dist/property/transformers.gen.js.map +1 -1
  17. package/dist/property/types.gen.d.ts +86 -0
  18. package/dist/property/types.gen.d.ts.map +1 -1
  19. package/dist/property/zod.gen.d.ts +271 -6
  20. package/dist/property/zod.gen.d.ts.map +1 -1
  21. package/dist/property/zod.gen.js +98 -0
  22. package/dist/property/zod.gen.js.map +1 -1
  23. package/dist/rem/index.d.ts +2 -2
  24. package/dist/rem/index.d.ts.map +1 -1
  25. package/dist/rem/index.js +1 -1
  26. package/dist/rem/index.js.map +1 -1
  27. package/dist/rem/schemas.gen.d.ts +453 -6
  28. package/dist/rem/schemas.gen.d.ts.map +1 -1
  29. package/dist/rem/schemas.gen.js +499 -2
  30. package/dist/rem/schemas.gen.js.map +1 -1
  31. package/dist/rem/sdk.gen.d.ts +7 -2
  32. package/dist/rem/sdk.gen.d.ts.map +1 -1
  33. package/dist/rem/sdk.gen.js +38 -2
  34. package/dist/rem/sdk.gen.js.map +1 -1
  35. package/dist/rem/transformers.gen.d.ts +4 -1
  36. package/dist/rem/transformers.gen.d.ts.map +1 -1
  37. package/dist/rem/transformers.gen.js +33 -0
  38. package/dist/rem/transformers.gen.js.map +1 -1
  39. package/dist/rem/types.gen.d.ts +288 -4
  40. package/dist/rem/types.gen.d.ts.map +1 -1
  41. package/dist/rem/zod.gen.d.ts +961 -74
  42. package/dist/rem/zod.gen.d.ts.map +1 -1
  43. package/dist/rem/zod.gen.js +401 -1
  44. package/dist/rem/zod.gen.js.map +1 -1
  45. package/dist/utils/index.d.ts +2 -2
  46. package/dist/utils/index.d.ts.map +1 -1
  47. package/dist/utils/index.js +1 -1
  48. package/dist/utils/index.js.map +1 -1
  49. package/dist/utils/schemas.gen.d.ts +72 -0
  50. package/dist/utils/schemas.gen.d.ts.map +1 -1
  51. package/dist/utils/schemas.gen.js +72 -0
  52. package/dist/utils/schemas.gen.js.map +1 -1
  53. package/dist/utils/sdk.gen.d.ts +10 -1
  54. package/dist/utils/sdk.gen.d.ts.map +1 -1
  55. package/dist/utils/sdk.gen.js +9 -0
  56. package/dist/utils/sdk.gen.js.map +1 -1
  57. package/dist/utils/types.gen.d.ts +73 -0
  58. package/dist/utils/types.gen.d.ts.map +1 -1
  59. package/dist/utils/zod.gen.d.ts +157 -0
  60. package/dist/utils/zod.gen.d.ts.map +1 -1
  61. package/dist/utils/zod.gen.js +122 -0
  62. package/dist/utils/zod.gen.js.map +1 -1
  63. package/package.json +1 -1
@@ -314,6 +314,17 @@ export type OauthConnectionResponse = {
314
314
  createdAt: Date;
315
315
  updatedAt: Date;
316
316
  revokedAt?: Date;
317
+ canPublish: boolean;
318
+ canReadComments: boolean;
319
+ canReply: boolean;
320
+ /**
321
+ * Like and comment counts on a post
322
+ */
323
+ canReadStats: boolean;
324
+ /**
325
+ * The token is dead, or the grant lacks a scope the connect flow asks for — re-running the connect flow is what fixes it
326
+ */
327
+ reconnectRequired: boolean;
317
328
  };
318
329
  export type AttendeeRequest = {
319
330
  role: 'ORGANIZER' | 'MEMBER' | 'OWNER' | 'CLIENT' | 'OTHER';
@@ -415,6 +426,58 @@ export type Percentage = Omit<AddDealRequest, 'type'> & {
415
426
  commission?: number;
416
427
  type: 'PERCENTAGE';
417
428
  };
429
+ export type FocusRequest = {
430
+ x: number;
431
+ y: number;
432
+ };
433
+ export type Photo = {
434
+ photoId: number;
435
+ mode?: 'AUTO' | 'CROP' | 'FIT';
436
+ focus?: FocusRequest;
437
+ };
438
+ export type PublishSocialPostRequest = {
439
+ channel: 'FACEBOOK' | 'INSTAGRAM';
440
+ caption: string;
441
+ /**
442
+ * Instagram only; defaults to LANDSCAPE
443
+ */
444
+ ratio?: 'LANDSCAPE' | 'SQUARE' | 'PORTRAIT';
445
+ /**
446
+ * In post order
447
+ */
448
+ photos: Array<Photo>;
449
+ templateId?: string;
450
+ };
451
+ export type FocusView = {
452
+ x: number;
453
+ y: number;
454
+ };
455
+ export type PhotoView = {
456
+ photoId: number;
457
+ mode: 'AUTO' | 'CROP' | 'FIT';
458
+ focus: FocusView;
459
+ };
460
+ export type SocialPostView = {
461
+ id: string;
462
+ channel: 'FACEBOOK' | 'INSTAGRAM';
463
+ status: 'PUBLISHING' | 'PUBLISHED' | 'FAILED' | 'REMOVED';
464
+ caption: string;
465
+ /**
466
+ * Instagram only
467
+ */
468
+ ratio?: 'LANDSCAPE' | 'SQUARE' | 'PORTRAIT';
469
+ photos: Array<PhotoView>;
470
+ templateId?: string;
471
+ failureReason?: 'RECONNECT_REQUIRED' | 'PERMISSION_MISSING' | 'PAGE_PUBLISHING_AUTHORIZATION' | 'RATE_LIMITED' | 'BAD_MEDIA' | 'UNCONFIRMED' | 'UNKNOWN';
472
+ failureDetail?: string;
473
+ /**
474
+ * The post on Facebook / Instagram, once published
475
+ */
476
+ permalink?: string;
477
+ publishedAt?: Date;
478
+ createdBy: string;
479
+ createdAt: Date;
480
+ };
418
481
  export type CloseListingRequest = {
419
482
  withdrawExternal?: boolean;
420
483
  };
@@ -435,6 +498,10 @@ export type OnboardClientRequest = {
435
498
  export type IdResponseLong = {
436
499
  id: number;
437
500
  };
501
+ export type ExternalListingWithdrawRequest = {
502
+ platform: 'SS' | 'MY_HOME';
503
+ listingId: number;
504
+ };
438
505
  export type ExternalListingPublishRequest = {
439
506
  platform: 'SS' | 'MY_HOME';
440
507
  listingId: number;
@@ -1082,10 +1149,11 @@ export type DealResponse = {
1082
1149
  export type PlatformListingResponse = {
1083
1150
  platformId?: number;
1084
1151
  platformType: 'SS' | 'MY_HOME';
1085
- status: 'PENDING' | 'SYNDICATED' | 'FAILED' | 'EXPIRED';
1152
+ status: 'PENDING' | 'SYNDICATED' | 'FAILED' | 'EXPIRED' | 'WITHDRAWING' | 'WITHDRAWN';
1086
1153
  listedAt?: Date;
1087
1154
  expiresAt?: Date;
1088
1155
  renewedAt?: Date;
1156
+ failureReason?: string;
1089
1157
  boost?: BoostResponse;
1090
1158
  coloredListing?: ColoredListingResponse;
1091
1159
  };
@@ -1109,12 +1177,16 @@ export type PropertyListingResponse = {
1109
1177
  marketplaceStatus: 'ACTIVE' | 'PAUSED' | 'EXPIRED';
1110
1178
  crmState: 'OPEN' | 'CLOSED';
1111
1179
  /**
1112
- * True while an external-portal placement or boost is in flight — poll the property page until false. Creating the Homespot listing itself is synchronous, so it never sets this.
1180
+ * True while an external-portal placement, a boost or a social post is in flight — poll the property page until false. Creating the Homespot listing itself is synchronous, so it never sets this.
1113
1181
  */
1114
1182
  isProcessing: boolean;
1115
1183
  price: number;
1116
1184
  deal?: Fixed | MonthsOfRent | Percentage;
1117
1185
  platformListings: Array<PlatformListingResponse>;
1186
+ /**
1187
+ * Facebook / Instagram posts of this listing, newest first
1188
+ */
1189
+ socialPosts: Array<SocialPostResponse>;
1118
1190
  createdAt: Date;
1119
1191
  closedAt?: Date;
1120
1192
  };
@@ -1134,6 +1206,45 @@ export type PropertyPageResponse = {
1134
1206
  updatedAt: Date;
1135
1207
  closeReason?: PropertyCloseReasonResponse;
1136
1208
  };
1209
+ export type SocialPostResponse = {
1210
+ /**
1211
+ * For retrying a failed post, or reading it in full
1212
+ */
1213
+ postId: string;
1214
+ channel: 'FACEBOOK' | 'INSTAGRAM';
1215
+ status: 'PUBLISHING' | 'PUBLISHED' | 'FAILED' | 'REMOVED';
1216
+ /**
1217
+ * Exactly as published
1218
+ */
1219
+ caption: string;
1220
+ /**
1221
+ * The post's first photo, as uploaded to the gallery (not the Instagram crop)
1222
+ */
1223
+ thumbnailUrl?: string;
1224
+ /**
1225
+ * The post on Facebook / Instagram, once published
1226
+ */
1227
+ permalink?: string;
1228
+ publishedAt?: Date;
1229
+ /**
1230
+ * The member who created the post, also after they left the agency
1231
+ */
1232
+ createdBy: MemberPeekResponse;
1233
+ failureReason?: 'RECONNECT_REQUIRED' | 'PERMISSION_MISSING' | 'PAGE_PUBLISHING_AUTHORIZATION' | 'RATE_LIMITED' | 'BAD_MEDIA' | 'UNCONFIRMED' | 'UNKNOWN';
1234
+ /**
1235
+ * The post's public counts as last read from Facebook / Instagram; null until the first read
1236
+ */
1237
+ stats?: SocialPostStats;
1238
+ };
1239
+ export type SocialPostStats = {
1240
+ likes: number;
1241
+ comments: number;
1242
+ shares: number;
1243
+ /**
1244
+ * When the counts were read — show how old they are
1245
+ */
1246
+ fetchedAt: Date;
1247
+ };
1137
1248
  export type ListingOwnerContactResponse = {
1138
1249
  contactId: number;
1139
1250
  personalDetails: ContactPersonalDetailsRestricted | ContactPersonalDetailsVisible;
@@ -1146,9 +1257,18 @@ export type AgentCommented = {
1146
1257
  commentSnippet?: string;
1147
1258
  kind: 'AGENT_COMMENTED';
1148
1259
  };
1260
+ export type ChannelReauthRequired = {
1261
+ connectionId?: ConnectionId;
1262
+ channelType?: 'FACEBOOK' | 'INSTAGRAM' | 'WHATSAPP' | 'TIKTOK';
1263
+ displayName?: string;
1264
+ kind: 'CHANNEL_REAUTH_REQUIRED';
1265
+ };
1149
1266
  export type CommentId = {
1150
1267
  value?: string;
1151
1268
  };
1269
+ export type ConnectionId = {
1270
+ value?: string;
1271
+ };
1152
1272
  export type ContactAssigned = {
1153
1273
  contactId?: ContactId;
1154
1274
  contactName?: string;
@@ -1204,15 +1324,28 @@ export type NotificationFeed = {
1204
1324
  export type NotificationView = {
1205
1325
  id: string;
1206
1326
  seq: number;
1207
- type: 'AGENT_COMMENTED' | 'TASK_COMMENTED' | 'EXTERNAL_LISTING_EXPIRED' | 'LISTING_EXPIRED' | 'NEW_SEEKER_RATING' | 'NEW_MESSAGE' | 'CONTACT_ASSIGNED' | 'SUBSCRIPTION_PAYMENT_FAILED' | 'SUBSCRIPTION_ENDING' | 'SUBSCRIPTION_EXPIRED' | 'SUBSCRIPTION_PAYMENT_REVERSED';
1327
+ type: 'AGENT_COMMENTED' | 'TASK_COMMENTED' | 'EXTERNAL_LISTING_EXPIRED' | 'LISTING_EXPIRED' | 'NEW_SEEKER_RATING' | 'NEW_MESSAGE' | 'CONTACT_ASSIGNED' | 'SUBSCRIPTION_PAYMENT_FAILED' | 'SUBSCRIPTION_ENDING' | 'SUBSCRIPTION_EXPIRED' | 'SUBSCRIPTION_PAYMENT_REVERSED' | 'CHANNEL_REAUTH_REQUIRED' | 'SOCIAL_POST_FAILED';
1208
1328
  targetId?: string;
1209
- payload: AgentCommented | ContactAssigned | ListingExpired | NewMessage | NewSeekerRating | SubscriptionEnding | SubscriptionExpired | SubscriptionPaymentFailed | SubscriptionPaymentReversed | TaskCommented;
1329
+ payload: AgentCommented | ChannelReauthRequired | ContactAssigned | ListingExpired | NewMessage | NewSeekerRating | SocialPostFailed | SubscriptionEnding | SubscriptionExpired | SubscriptionPaymentFailed | SubscriptionPaymentReversed | TaskCommented;
1210
1330
  createdAt: Date;
1211
1331
  read: boolean;
1212
1332
  };
1213
1333
  export type PropertyId = {
1214
1334
  value?: number;
1215
1335
  };
1336
+ export type SocialPostFailed = {
1337
+ postId?: SocialPostId;
1338
+ contactId?: ContactId;
1339
+ propertyId?: PropertyId;
1340
+ listingId?: number;
1341
+ propertyTitle?: string;
1342
+ channel?: 'FACEBOOK' | 'INSTAGRAM';
1343
+ reason?: 'RECONNECT_REQUIRED' | 'PERMISSION_MISSING' | 'PAGE_PUBLISHING_AUTHORIZATION' | 'RATE_LIMITED' | 'BAD_MEDIA' | 'UNCONFIRMED' | 'UNKNOWN';
1344
+ kind: 'SOCIAL_POST_FAILED';
1345
+ };
1346
+ export type SocialPostId = {
1347
+ value?: string;
1348
+ };
1216
1349
  export type SubscriptionEnding = {
1217
1350
  subscriptionId?: SubscriptionId;
1218
1351
  status?: 'PENDING' | 'TRIALING' | 'ACTIVE' | 'PAST_DUE' | 'CANCELLED' | 'EXPIRED' | 'SUPERSEDED';
@@ -1346,6 +1479,10 @@ export type ListingGridResponse = {
1346
1479
  commissionType?: 'NOT_SET' | 'FIXED' | 'PERCENTAGE' | 'MONTHS_OF_RENT';
1347
1480
  commission?: number;
1348
1481
  platforms: Array<PlatformView>;
1482
+ /**
1483
+ * Where the listing is posted on Facebook / Instagram: the latest published post per channel
1484
+ */
1485
+ socialPosts: Array<SocialPostLink>;
1349
1486
  createdAt: Date;
1350
1487
  updatedAt: Date;
1351
1488
  };
@@ -1360,6 +1497,13 @@ export type PlatformView = {
1360
1497
  tier?: 'VIP' | 'VIP_PLUS' | 'SUPER_VIP';
1361
1498
  boostExpiresAt?: Date;
1362
1499
  };
1500
+ export type SocialPostLink = {
1501
+ channel: 'FACEBOOK' | 'INSTAGRAM';
1502
+ /**
1503
+ * Opens the post on Facebook / Instagram
1504
+ */
1505
+ permalink: string;
1506
+ };
1363
1507
  export type GroupCount = {
1364
1508
  groupKey: string;
1365
1509
  label: string;
@@ -1484,6 +1628,57 @@ export type CursorPageMessageView = {
1484
1628
  nextCursor?: string;
1485
1629
  hasNext?: boolean;
1486
1630
  };
1631
+ export type ComposerLimits = {
1632
+ maxPhotos: number;
1633
+ /**
1634
+ * In Unicode code points: an emoji counts once, as [...text].length counts in JavaScript (text.length counts it twice)
1635
+ */
1636
+ maxCaptionLength: number;
1637
+ };
1638
+ export type ComposerPhoto = {
1639
+ /**
1640
+ * What the publish request sends
1641
+ */
1642
+ photoId: number;
1643
+ url: string;
1644
+ /**
1645
+ * As the photo is shown, in pixels
1646
+ */
1647
+ width: number;
1648
+ /**
1649
+ * As the photo is shown, in pixels
1650
+ */
1651
+ height: number;
1652
+ selectedByDefault: boolean;
1653
+ };
1654
+ export type ComposerPreview = {
1655
+ channel: 'FACEBOOK' | 'INSTAGRAM';
1656
+ /**
1657
+ * The built-in Georgian template filled in from the listing; a line with nothing to fill it is left out
1658
+ */
1659
+ caption: string;
1660
+ /**
1661
+ * The template the text came from, sent back on publish; null for the built-in one
1662
+ */
1663
+ templateId?: string;
1664
+ limits: ComposerLimits;
1665
+ /**
1666
+ * The shapes the agent can pick; empty on Facebook, which keeps each photo's own
1667
+ */
1668
+ ratios: Array<'LANDSCAPE' | 'SQUARE' | 'PORTRAIT'>;
1669
+ /**
1670
+ * Instagram only
1671
+ */
1672
+ defaultRatio?: 'LANDSCAPE' | 'SQUARE' | 'PORTRAIT';
1673
+ /**
1674
+ * The whole gallery, in gallery order
1675
+ */
1676
+ photos: Array<ComposerPhoto>;
1677
+ /**
1678
+ * Whether the agency can post to the channel now; publishing refuses anything but ALLOWED
1679
+ */
1680
+ access: 'ALLOWED' | 'NOT_CONNECTED' | 'RECONNECT_REQUIRED';
1681
+ };
1487
1682
  export type ContactGridResponse = {
1488
1683
  id: number;
1489
1684
  createdBy?: string;
@@ -3462,6 +3657,41 @@ export type PostContactsByContactIdPropertiesByPropertyIdListingsResponses = {
3462
3657
  201: IdResponseUuid;
3463
3658
  };
3464
3659
  export type PostContactsByContactIdPropertiesByPropertyIdListingsResponse = PostContactsByContactIdPropertiesByPropertyIdListingsResponses[keyof PostContactsByContactIdPropertiesByPropertyIdListingsResponses];
3660
+ export type PostContactsByContactIdPropertiesByPropertyIdListingsByListingIdSocialPostsData = {
3661
+ body: PublishSocialPostRequest;
3662
+ path: {
3663
+ contactId: number;
3664
+ propertyId: number;
3665
+ listingId: number;
3666
+ };
3667
+ query?: never;
3668
+ url: '/contacts/{contactId}/properties/{propertyId}/listings/{listingId}/social-posts';
3669
+ };
3670
+ export type PostContactsByContactIdPropertiesByPropertyIdListingsByListingIdSocialPostsResponses = {
3671
+ /**
3672
+ * Accepted
3673
+ */
3674
+ 202: SocialPostView;
3675
+ };
3676
+ export type PostContactsByContactIdPropertiesByPropertyIdListingsByListingIdSocialPostsResponse = PostContactsByContactIdPropertiesByPropertyIdListingsByListingIdSocialPostsResponses[keyof PostContactsByContactIdPropertiesByPropertyIdListingsByListingIdSocialPostsResponses];
3677
+ export type PostContactsByContactIdPropertiesByPropertyIdListingsByListingIdSocialPostsByPostIdRetryData = {
3678
+ body?: never;
3679
+ path: {
3680
+ contactId: number;
3681
+ propertyId: number;
3682
+ listingId: number;
3683
+ postId: string;
3684
+ };
3685
+ query?: never;
3686
+ url: '/contacts/{contactId}/properties/{propertyId}/listings/{listingId}/social-posts/{postId}/retry';
3687
+ };
3688
+ export type PostContactsByContactIdPropertiesByPropertyIdListingsByListingIdSocialPostsByPostIdRetryResponses = {
3689
+ /**
3690
+ * Accepted
3691
+ */
3692
+ 202: SocialPostView;
3693
+ };
3694
+ export type PostContactsByContactIdPropertiesByPropertyIdListingsByListingIdSocialPostsByPostIdRetryResponse = PostContactsByContactIdPropertiesByPropertyIdListingsByListingIdSocialPostsByPostIdRetryResponses[keyof PostContactsByContactIdPropertiesByPropertyIdListingsByListingIdSocialPostsByPostIdRetryResponses];
3465
3695
  export type PostContactsByContactIdPropertiesByPropertyIdListingsByListingIdResumeData = {
3466
3696
  body?: never;
3467
3697
  path: {
@@ -3712,6 +3942,21 @@ export type PostContactResponses = {
3712
3942
  201: IdResponseLong;
3713
3943
  };
3714
3944
  export type PostContactResponse = PostContactResponses[keyof PostContactResponses];
3945
+ export type PostContactByContactIdPropertyByPropertyIdExternalListingWithdrawData = {
3946
+ body: ExternalListingWithdrawRequest;
3947
+ path: {
3948
+ contactId: number;
3949
+ propertyId: number;
3950
+ };
3951
+ query?: never;
3952
+ url: '/contact/{contactId}/property/{propertyId}/external-listing/withdraw';
3953
+ };
3954
+ export type PostContactByContactIdPropertyByPropertyIdExternalListingWithdrawResponses = {
3955
+ /**
3956
+ * OK
3957
+ */
3958
+ 200: unknown;
3959
+ };
3715
3960
  export type PostContactByContactIdPropertyByPropertyIdExternalListingPublishData = {
3716
3961
  body: ExternalListingPublishRequest;
3717
3962
  path: {
@@ -4472,6 +4717,7 @@ export type GetListingData = {
4472
4717
  platforms?: Array<'SS' | 'MY_HOME'>;
4473
4718
  platformExpiresFrom?: Date;
4474
4719
  platformExpiresTo?: Date;
4720
+ socialChannels?: Array<'FACEBOOK' | 'INSTAGRAM'>;
4475
4721
  boostTiers?: Array<string>;
4476
4722
  boostExpiresFrom?: Date;
4477
4723
  boostExpiresTo?: Date;
@@ -4538,6 +4784,7 @@ export type GetListingGroupsData = {
4538
4784
  platforms?: Array<'SS' | 'MY_HOME'>;
4539
4785
  platformExpiresFrom?: Date;
4540
4786
  platformExpiresTo?: Date;
4787
+ socialChannels?: Array<'FACEBOOK' | 'INSTAGRAM'>;
4541
4788
  boostTiers?: Array<string>;
4542
4789
  boostExpiresFrom?: Date;
4543
4790
  boostExpiresTo?: Date;
@@ -4722,6 +4969,43 @@ export type GetConversationsByConversationIdUpdatesResponses = {
4722
4969
  200: ThreadUpdates;
4723
4970
  };
4724
4971
  export type GetConversationsByConversationIdUpdatesResponse = GetConversationsByConversationIdUpdatesResponses[keyof GetConversationsByConversationIdUpdatesResponses];
4972
+ export type GetContactsByContactIdPropertiesByPropertyIdListingsByListingIdSocialPostsByPostIdData = {
4973
+ body?: never;
4974
+ path: {
4975
+ contactId: number;
4976
+ propertyId: number;
4977
+ listingId: number;
4978
+ postId: string;
4979
+ };
4980
+ query?: never;
4981
+ url: '/contacts/{contactId}/properties/{propertyId}/listings/{listingId}/social-posts/{postId}';
4982
+ };
4983
+ export type GetContactsByContactIdPropertiesByPropertyIdListingsByListingIdSocialPostsByPostIdResponses = {
4984
+ /**
4985
+ * OK
4986
+ */
4987
+ 200: SocialPostView;
4988
+ };
4989
+ export type GetContactsByContactIdPropertiesByPropertyIdListingsByListingIdSocialPostsByPostIdResponse = GetContactsByContactIdPropertiesByPropertyIdListingsByListingIdSocialPostsByPostIdResponses[keyof GetContactsByContactIdPropertiesByPropertyIdListingsByListingIdSocialPostsByPostIdResponses];
4990
+ export type GetContactsByContactIdPropertiesByPropertyIdListingsByListingIdSocialPostsPreviewData = {
4991
+ body?: never;
4992
+ path: {
4993
+ contactId: number;
4994
+ propertyId: number;
4995
+ listingId: number;
4996
+ };
4997
+ query: {
4998
+ channel: 'FACEBOOK' | 'INSTAGRAM';
4999
+ };
5000
+ url: '/contacts/{contactId}/properties/{propertyId}/listings/{listingId}/social-posts/preview';
5001
+ };
5002
+ export type GetContactsByContactIdPropertiesByPropertyIdListingsByListingIdSocialPostsPreviewResponses = {
5003
+ /**
5004
+ * OK
5005
+ */
5006
+ 200: ComposerPreview;
5007
+ };
5008
+ export type GetContactsByContactIdPropertiesByPropertyIdListingsByListingIdSocialPostsPreviewResponse = GetContactsByContactIdPropertiesByPropertyIdListingsByListingIdSocialPostsPreviewResponses[keyof GetContactsByContactIdPropertiesByPropertyIdListingsByListingIdSocialPostsPreviewResponses];
4725
5009
  export type GetContactsByContactIdInterestsByInterestIdRecommendationsDecisionsData = {
4726
5010
  body?: never;
4727
5011
  path: {