@glagan/rettiwt-api 7.0.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 (165) hide show
  1. package/.eslintrc.js +166 -0
  2. package/.gitattributes +3 -0
  3. package/.github/FUNDING.yml +4 -0
  4. package/.github/ISSUE_TEMPLATE/bug-report.yml +57 -0
  5. package/.github/ISSUE_TEMPLATE/feature-request.yml +20 -0
  6. package/.github/ISSUE_TEMPLATE/question.yml +15 -0
  7. package/.github/PULL_REQUEST_TEMPLATE.md +32 -0
  8. package/.github/workflows/ci.yml +32 -0
  9. package/.github/workflows/publish.yml +23 -0
  10. package/.nvmrc +1 -0
  11. package/.prettierignore +3 -0
  12. package/.prettierrc +13 -0
  13. package/LICENSE +21 -0
  14. package/README.md +566 -0
  15. package/dist/cli.js +43 -0
  16. package/eslint.config.mjs +17 -0
  17. package/package.json +50 -0
  18. package/src/Rettiwt.ts +97 -0
  19. package/src/cli.ts +48 -0
  20. package/src/collections/Extractors.ts +155 -0
  21. package/src/collections/Groups.ts +81 -0
  22. package/src/collections/Requests.ts +89 -0
  23. package/src/collections/Tweet.ts +17 -0
  24. package/src/commands/DirectMessage.ts +62 -0
  25. package/src/commands/List.ts +90 -0
  26. package/src/commands/Tweet.ts +437 -0
  27. package/src/commands/User.ts +367 -0
  28. package/src/enums/Api.ts +10 -0
  29. package/src/enums/Authentication.ts +10 -0
  30. package/src/enums/Data.ts +13 -0
  31. package/src/enums/Logging.ts +14 -0
  32. package/src/enums/Media.ts +10 -0
  33. package/src/enums/Notification.ts +12 -0
  34. package/src/enums/Resource.ts +69 -0
  35. package/src/enums/Tweet.ts +8 -0
  36. package/src/enums/raw/Analytics.ts +32 -0
  37. package/src/enums/raw/Media.ts +10 -0
  38. package/src/enums/raw/Notification.ts +11 -0
  39. package/src/enums/raw/Tweet.ts +20 -0
  40. package/src/helper/CliUtils.ts +17 -0
  41. package/src/helper/JsonUtils.ts +70 -0
  42. package/src/index.ts +128 -0
  43. package/src/models/RettiwtConfig.ts +101 -0
  44. package/src/models/args/FetchArgs.ts +169 -0
  45. package/src/models/args/PostArgs.ts +93 -0
  46. package/src/models/args/ProfileArgs.ts +68 -0
  47. package/src/models/auth/AuthCookie.ts +58 -0
  48. package/src/models/auth/AuthCredential.ts +83 -0
  49. package/src/models/data/Analytics.ts +97 -0
  50. package/src/models/data/BookmarkFolder.ts +73 -0
  51. package/src/models/data/Conversation.ts +344 -0
  52. package/src/models/data/CursoredData.ts +64 -0
  53. package/src/models/data/DirectMessage.ts +335 -0
  54. package/src/models/data/Inbox.ts +124 -0
  55. package/src/models/data/List.ts +113 -0
  56. package/src/models/data/Notification.ts +84 -0
  57. package/src/models/data/Tweet.ts +388 -0
  58. package/src/models/data/User.ts +187 -0
  59. package/src/models/errors/TwitterError.ts +65 -0
  60. package/src/models/params/Variables.ts +62 -0
  61. package/src/requests/DirectMessage.ts +229 -0
  62. package/src/requests/List.ts +203 -0
  63. package/src/requests/Media.ts +67 -0
  64. package/src/requests/Tweet.ts +607 -0
  65. package/src/requests/User.ts +1191 -0
  66. package/src/services/internal/AuthService.ts +115 -0
  67. package/src/services/internal/ErrorService.ts +41 -0
  68. package/src/services/internal/LogService.ts +34 -0
  69. package/src/services/public/DirectMessageService.ts +159 -0
  70. package/src/services/public/FetcherService.ts +366 -0
  71. package/src/services/public/ListService.ts +241 -0
  72. package/src/services/public/TweetService.ts +886 -0
  73. package/src/services/public/UserService.ts +1154 -0
  74. package/src/types/ErrorHandler.ts +13 -0
  75. package/src/types/Fetch.ts +3 -0
  76. package/src/types/RettiwtConfig.ts +48 -0
  77. package/src/types/args/FetchArgs.ts +233 -0
  78. package/src/types/args/PostArgs.ts +142 -0
  79. package/src/types/args/ProfileArgs.ts +33 -0
  80. package/src/types/auth/AuthCookie.ts +22 -0
  81. package/src/types/auth/AuthCredential.ts +28 -0
  82. package/src/types/auth/TransactionHeader.ts +8 -0
  83. package/src/types/data/Analytics.ts +58 -0
  84. package/src/types/data/BookmarkFolder.ts +12 -0
  85. package/src/types/data/Conversation.ts +44 -0
  86. package/src/types/data/CursoredData.ts +24 -0
  87. package/src/types/data/DirectMessage.ts +33 -0
  88. package/src/types/data/Inbox.ts +23 -0
  89. package/src/types/data/List.ts +33 -0
  90. package/src/types/data/Notification.ts +26 -0
  91. package/src/types/data/Tweet.ts +99 -0
  92. package/src/types/data/User.ts +54 -0
  93. package/src/types/errors/TwitterError.ts +37 -0
  94. package/src/types/params/Variables.ts +41 -0
  95. package/src/types/raw/base/Analytic.ts +32 -0
  96. package/src/types/raw/base/BookmarkFolder.ts +12 -0
  97. package/src/types/raw/base/Cursor.ts +13 -0
  98. package/src/types/raw/base/Error.ts +38 -0
  99. package/src/types/raw/base/LimitedVisibilityTweet.ts +40 -0
  100. package/src/types/raw/base/List.ts +50 -0
  101. package/src/types/raw/base/Media.ts +53 -0
  102. package/src/types/raw/base/Message.ts +22 -0
  103. package/src/types/raw/base/Notification.ts +66 -0
  104. package/src/types/raw/base/Space.ts +35 -0
  105. package/src/types/raw/base/Tweet.ts +139 -0
  106. package/src/types/raw/base/User.ts +182 -0
  107. package/src/types/raw/composite/DataResult.ts +8 -0
  108. package/src/types/raw/composite/TimelineList.ts +10 -0
  109. package/src/types/raw/composite/TimelineTweet.ts +14 -0
  110. package/src/types/raw/composite/TimelineUser.ts +13 -0
  111. package/src/types/raw/dm/Conversation.ts +59 -0
  112. package/src/types/raw/dm/InboxInitial.ts +155 -0
  113. package/src/types/raw/dm/InboxTimeline.ts +301 -0
  114. package/src/types/raw/dm/UserUpdates.ts +46 -0
  115. package/src/types/raw/generic/Response.ts +10 -0
  116. package/src/types/raw/list/AddMember.ts +175 -0
  117. package/src/types/raw/list/Details.ts +176 -0
  118. package/src/types/raw/list/Members.ts +154 -0
  119. package/src/types/raw/list/RemoveMember.ts +174 -0
  120. package/src/types/raw/list/Tweets.ts +2296 -0
  121. package/src/types/raw/media/FinalizeUpload.ts +20 -0
  122. package/src/types/raw/media/InitalizeUpload.ts +12 -0
  123. package/src/types/raw/media/LiveVideoStream.ts +21 -0
  124. package/src/types/raw/space/Details.ts +359 -0
  125. package/src/types/raw/tweet/Bookmark.ts +14 -0
  126. package/src/types/raw/tweet/Details.ts +210 -0
  127. package/src/types/raw/tweet/DetailsBulk.ts +338 -0
  128. package/src/types/raw/tweet/Like.ts +14 -0
  129. package/src/types/raw/tweet/Likers.ts +200 -0
  130. package/src/types/raw/tweet/Post.ts +150 -0
  131. package/src/types/raw/tweet/Replies.ts +539 -0
  132. package/src/types/raw/tweet/Retweet.ts +31 -0
  133. package/src/types/raw/tweet/Retweeters.ts +208 -0
  134. package/src/types/raw/tweet/Schedule.ts +18 -0
  135. package/src/types/raw/tweet/Search.ts +597 -0
  136. package/src/types/raw/tweet/Unbookmark.ts +14 -0
  137. package/src/types/raw/tweet/Unlike.ts +14 -0
  138. package/src/types/raw/tweet/Unpost.ts +20 -0
  139. package/src/types/raw/tweet/Unretweet.ts +31 -0
  140. package/src/types/raw/tweet/Unschedule.ts +14 -0
  141. package/src/types/raw/user/Affiliates.ts +179 -0
  142. package/src/types/raw/user/Analytics.ts +23 -0
  143. package/src/types/raw/user/BookmarkFolderTweets.ts +53 -0
  144. package/src/types/raw/user/BookmarkFolders.ts +41 -0
  145. package/src/types/raw/user/Bookmarks.ts +637 -0
  146. package/src/types/raw/user/Details.ts +185 -0
  147. package/src/types/raw/user/DetailsBulk.ts +104 -0
  148. package/src/types/raw/user/Follow.ts +280 -0
  149. package/src/types/raw/user/Followed.ts +1942 -0
  150. package/src/types/raw/user/Followers.ts +215 -0
  151. package/src/types/raw/user/Following.ts +215 -0
  152. package/src/types/raw/user/Highlights.ts +1287 -0
  153. package/src/types/raw/user/Likes.ts +1254 -0
  154. package/src/types/raw/user/Lists.ts +378 -0
  155. package/src/types/raw/user/Media.ts +1738 -0
  156. package/src/types/raw/user/Notifications.ts +499 -0
  157. package/src/types/raw/user/ProfileUpdate.ts +80 -0
  158. package/src/types/raw/user/Recommended.ts +2319 -0
  159. package/src/types/raw/user/Scheduled.ts +37 -0
  160. package/src/types/raw/user/Search.ts +230 -0
  161. package/src/types/raw/user/Subscriptions.ts +176 -0
  162. package/src/types/raw/user/Tweets.ts +1254 -0
  163. package/src/types/raw/user/TweetsAndReplies.ts +1254 -0
  164. package/src/types/raw/user/Unfollow.ts +280 -0
  165. package/tsconfig.json +97 -0
@@ -0,0 +1,1738 @@
1
+ /* eslint-disable */
2
+
3
+ /**
4
+ * The raw data received when fetching the uploaded media of the given user.
5
+ *
6
+ * @public
7
+ */
8
+ export interface IUserMediaResponse {
9
+ data: Data;
10
+ }
11
+
12
+ interface Data {
13
+ user: User;
14
+ }
15
+
16
+ interface User {
17
+ result: Result;
18
+ }
19
+
20
+ interface Result {
21
+ __typename: string;
22
+ timeline_v2: TimelineV2;
23
+ }
24
+
25
+ interface TimelineV2 {
26
+ timeline: Timeline;
27
+ }
28
+
29
+ interface Timeline {
30
+ instructions: Instruction[];
31
+ metadata: Metadata;
32
+ }
33
+
34
+ interface Instruction {
35
+ type: string;
36
+ direction?: string;
37
+ entries?: Entry[];
38
+ }
39
+
40
+ interface Entry {
41
+ entryId: string;
42
+ sortIndex: string;
43
+ content: Content;
44
+ }
45
+
46
+ interface Content {
47
+ entryType: string;
48
+ __typename: string;
49
+ items?: Item[];
50
+ displayType?: string;
51
+ clientEventInfo?: ClientEventInfo;
52
+ value?: string;
53
+ cursorType?: string;
54
+ }
55
+
56
+ interface Item {
57
+ entryId: string;
58
+ item: Item2;
59
+ }
60
+
61
+ interface Item2 {
62
+ itemContent: ItemContent;
63
+ }
64
+
65
+ interface ItemContent {
66
+ itemType: string;
67
+ __typename: string;
68
+ tweet_results: TweetResults;
69
+ tweetDisplayType: string;
70
+ }
71
+
72
+ interface TweetResults {
73
+ result: Result2;
74
+ }
75
+
76
+ interface Result2 {
77
+ __typename: string;
78
+ rest_id?: string;
79
+ core?: Core;
80
+ unmention_data?: UnmentionData;
81
+ edit_control?: EditControl;
82
+ is_translatable?: boolean;
83
+ views?: Views;
84
+ source?: string;
85
+ legacy?: Legacy2;
86
+ birdwatch_pivot?: BirdwatchPivot;
87
+ tweet?: Tweet;
88
+ limitedActionResults?: LimitedActionResults;
89
+ }
90
+
91
+ interface Core {
92
+ user_results: UserResults;
93
+ }
94
+
95
+ interface UserResults {
96
+ result: Result3;
97
+ }
98
+
99
+ interface Result3 {
100
+ __typename: string;
101
+ id: string;
102
+ rest_id: string;
103
+ affiliates_highlighted_label: AffiliatesHighlightedLabel;
104
+ has_graduated_access: boolean;
105
+ is_blue_verified: boolean;
106
+ profile_image_shape: string;
107
+ legacy: Legacy;
108
+ professional: Professional;
109
+ super_follow_eligible: boolean;
110
+ verified_phone_status: boolean;
111
+ }
112
+
113
+ interface AffiliatesHighlightedLabel {
114
+ label: Label;
115
+ }
116
+
117
+ interface Label {
118
+ url: Url;
119
+ badge: Badge;
120
+ description: string;
121
+ userLabelType: string;
122
+ userLabelDisplayType: string;
123
+ }
124
+
125
+ interface Url {
126
+ url: string;
127
+ urlType: string;
128
+ }
129
+
130
+ interface Badge {
131
+ url: string;
132
+ }
133
+
134
+ interface Legacy {
135
+ following: boolean;
136
+ can_dm: boolean;
137
+ can_media_tag: boolean;
138
+ created_at: string;
139
+ default_profile: boolean;
140
+ default_profile_image: boolean;
141
+ description: string;
142
+ entities: Entities;
143
+ fast_followers_count: number;
144
+ favourites_count: number;
145
+ followers_count: number;
146
+ friends_count: number;
147
+ has_custom_timelines: boolean;
148
+ is_translator: boolean;
149
+ listed_count: number;
150
+ location: string;
151
+ media_count: number;
152
+ name: string;
153
+ normal_followers_count: number;
154
+ pinned_tweet_ids_str: string[];
155
+ possibly_sensitive: boolean;
156
+ profile_banner_url: string;
157
+ profile_image_url_https: string;
158
+ profile_interstitial_type: string;
159
+ screen_name: string;
160
+ statuses_count: number;
161
+ translator_type: string;
162
+ verified: boolean;
163
+ want_retweets: boolean;
164
+ withheld_in_countries: any[];
165
+ }
166
+
167
+ interface Entities {
168
+ description: Description;
169
+ }
170
+
171
+ interface Description {
172
+ urls: any[];
173
+ }
174
+
175
+ interface Professional {
176
+ rest_id: string;
177
+ professional_type: string;
178
+ category: any[];
179
+ }
180
+
181
+ interface UnmentionData {}
182
+
183
+ interface EditControl {
184
+ edit_tweet_ids: string[];
185
+ editable_until_msecs: string;
186
+ is_edit_eligible: boolean;
187
+ edits_remaining: string;
188
+ }
189
+
190
+ interface Views {
191
+ count: string;
192
+ state: string;
193
+ }
194
+
195
+ interface Legacy2 {
196
+ bookmark_count: number;
197
+ bookmarked: boolean;
198
+ created_at: string;
199
+ conversation_id_str: string;
200
+ display_text_range: number[];
201
+ entities: Entities2;
202
+ extended_entities: ExtendedEntities;
203
+ favorite_count: number;
204
+ favorited: boolean;
205
+ full_text: string;
206
+ is_quote_status: boolean;
207
+ lang: string;
208
+ possibly_sensitive: boolean;
209
+ possibly_sensitive_editable: boolean;
210
+ quote_count: number;
211
+ reply_count: number;
212
+ retweet_count: number;
213
+ retweeted: boolean;
214
+ user_id_str: string;
215
+ id_str: string;
216
+ in_reply_to_screen_name?: string;
217
+ in_reply_to_status_id_str?: string;
218
+ in_reply_to_user_id_str?: string;
219
+ }
220
+
221
+ interface Entities2 {
222
+ hashtags: any[];
223
+ media: Medum[];
224
+ symbols: any[];
225
+ timestamps: any[];
226
+ urls: any[];
227
+ user_mentions: UserMention[];
228
+ }
229
+
230
+ interface Medum {
231
+ display_url: string;
232
+ expanded_url: string;
233
+ id_str: string;
234
+ indices: number[];
235
+ media_key: string;
236
+ media_url_https: string;
237
+ type: string;
238
+ url: string;
239
+ ext_media_availability: ExtMediaAvailability;
240
+ features?: Features;
241
+ sizes: Sizes;
242
+ original_info: OriginalInfo;
243
+ media_results: MediaResults;
244
+ source_status_id_str?: string;
245
+ source_user_id_str?: string;
246
+ additional_media_info?: AdditionalMediaInfo;
247
+ allow_download_status?: AllowDownloadStatus;
248
+ video_info?: VideoInfo;
249
+ }
250
+
251
+ interface ExtMediaAvailability {
252
+ status: string;
253
+ }
254
+
255
+ interface Features {
256
+ large: Large;
257
+ medium: Medium;
258
+ small: Small;
259
+ orig: Orig;
260
+ }
261
+
262
+ interface Large {
263
+ faces: Face[];
264
+ }
265
+
266
+ interface Face {
267
+ x: number;
268
+ y: number;
269
+ h: number;
270
+ w: number;
271
+ }
272
+
273
+ interface Medium {
274
+ faces: Face2[];
275
+ }
276
+
277
+ interface Face2 {
278
+ x: number;
279
+ y: number;
280
+ h: number;
281
+ w: number;
282
+ }
283
+
284
+ interface Small {
285
+ faces: Face3[];
286
+ }
287
+
288
+ interface Face3 {
289
+ x: number;
290
+ y: number;
291
+ h: number;
292
+ w: number;
293
+ }
294
+
295
+ interface Orig {
296
+ faces: Face4[];
297
+ }
298
+
299
+ interface Face4 {
300
+ x: number;
301
+ y: number;
302
+ h: number;
303
+ w: number;
304
+ }
305
+
306
+ interface Sizes {
307
+ large: Large2;
308
+ medium: Medium2;
309
+ small: Small2;
310
+ thumb: Thumb;
311
+ }
312
+
313
+ interface Large2 {
314
+ h: number;
315
+ w: number;
316
+ resize: string;
317
+ }
318
+
319
+ interface Medium2 {
320
+ h: number;
321
+ w: number;
322
+ resize: string;
323
+ }
324
+
325
+ interface Small2 {
326
+ h: number;
327
+ w: number;
328
+ resize: string;
329
+ }
330
+
331
+ interface Thumb {
332
+ h: number;
333
+ w: number;
334
+ resize: string;
335
+ }
336
+
337
+ interface OriginalInfo {
338
+ height: number;
339
+ width: number;
340
+ focus_rects: FocusRect[];
341
+ }
342
+
343
+ interface FocusRect {
344
+ x: number;
345
+ y: number;
346
+ w: number;
347
+ h: number;
348
+ }
349
+
350
+ interface MediaResults {
351
+ result: Result4;
352
+ }
353
+
354
+ interface Result4 {
355
+ media_key: string;
356
+ }
357
+
358
+ interface AdditionalMediaInfo {
359
+ monetizable: boolean;
360
+ source_user: SourceUser;
361
+ title?: string;
362
+ description?: string;
363
+ embeddable?: boolean;
364
+ }
365
+
366
+ interface SourceUser {
367
+ user_results: UserResults2;
368
+ }
369
+
370
+ interface UserResults2 {
371
+ result: Result5;
372
+ }
373
+
374
+ interface Result5 {
375
+ __typename: string;
376
+ id: string;
377
+ rest_id: string;
378
+ affiliates_highlighted_label: AffiliatesHighlightedLabel2;
379
+ has_graduated_access: boolean;
380
+ is_blue_verified: boolean;
381
+ profile_image_shape: string;
382
+ legacy: Legacy3;
383
+ professional?: Professional2;
384
+ verified_phone_status: boolean;
385
+ super_follow_eligible?: boolean;
386
+ }
387
+
388
+ interface AffiliatesHighlightedLabel2 {
389
+ label: Label2;
390
+ }
391
+
392
+ interface Label2 {
393
+ url: Url2;
394
+ badge: Badge2;
395
+ description: string;
396
+ userLabelType: string;
397
+ userLabelDisplayType: string;
398
+ }
399
+
400
+ interface Url2 {
401
+ url: string;
402
+ urlType: string;
403
+ }
404
+
405
+ interface Badge2 {
406
+ url: string;
407
+ }
408
+
409
+ interface Legacy3 {
410
+ can_dm: boolean;
411
+ can_media_tag: boolean;
412
+ created_at: string;
413
+ default_profile: boolean;
414
+ default_profile_image: boolean;
415
+ description: string;
416
+ entities: Entities3;
417
+ fast_followers_count: number;
418
+ favourites_count: number;
419
+ followers_count: number;
420
+ friends_count: number;
421
+ has_custom_timelines: boolean;
422
+ is_translator: boolean;
423
+ listed_count: number;
424
+ location: string;
425
+ media_count: number;
426
+ name: string;
427
+ normal_followers_count: number;
428
+ pinned_tweet_ids_str: string[];
429
+ possibly_sensitive: boolean;
430
+ profile_banner_url: string;
431
+ profile_image_url_https: string;
432
+ profile_interstitial_type: string;
433
+ screen_name: string;
434
+ statuses_count: number;
435
+ translator_type: string;
436
+ url: string;
437
+ verified: boolean;
438
+ want_retweets: boolean;
439
+ withheld_in_countries: any[];
440
+ verified_type?: string;
441
+ }
442
+
443
+ interface Entities3 {
444
+ description: Description2;
445
+ url: Url4;
446
+ }
447
+
448
+ interface Description2 {
449
+ urls: Url3[];
450
+ }
451
+
452
+ interface Url3 {
453
+ display_url: string;
454
+ expanded_url: string;
455
+ url: string;
456
+ indices: number[];
457
+ }
458
+
459
+ interface Url4 {
460
+ urls: Url5[];
461
+ }
462
+
463
+ interface Url5 {
464
+ display_url: string;
465
+ expanded_url: string;
466
+ url: string;
467
+ indices: number[];
468
+ }
469
+
470
+ interface Professional2 {
471
+ rest_id: string;
472
+ professional_type: string;
473
+ category: Category[];
474
+ }
475
+
476
+ interface Category {
477
+ id: number;
478
+ name: string;
479
+ icon_name: string;
480
+ }
481
+
482
+ interface AllowDownloadStatus {
483
+ allow_download: boolean;
484
+ }
485
+
486
+ interface VideoInfo {
487
+ aspect_ratio: number[];
488
+ duration_millis: number;
489
+ variants: Variant[];
490
+ }
491
+
492
+ interface Variant {
493
+ bitrate?: number;
494
+ content_type: string;
495
+ url: string;
496
+ }
497
+
498
+ interface UserMention {
499
+ id_str: string;
500
+ name: string;
501
+ screen_name: string;
502
+ indices: number[];
503
+ }
504
+
505
+ interface ExtendedEntities {
506
+ media: Medum2[];
507
+ }
508
+
509
+ interface Medum2 {
510
+ display_url: string;
511
+ expanded_url: string;
512
+ id_str: string;
513
+ indices: number[];
514
+ media_key: string;
515
+ media_url_https: string;
516
+ type: string;
517
+ url: string;
518
+ ext_media_availability: ExtMediaAvailability2;
519
+ features?: Features2;
520
+ sizes: Sizes2;
521
+ original_info: OriginalInfo2;
522
+ media_results: MediaResults2;
523
+ source_status_id_str?: string;
524
+ source_user_id_str?: string;
525
+ additional_media_info?: AdditionalMediaInfo2;
526
+ allow_download_status?: AllowDownloadStatus2;
527
+ video_info?: VideoInfo2;
528
+ }
529
+
530
+ interface ExtMediaAvailability2 {
531
+ status: string;
532
+ }
533
+
534
+ interface Features2 {
535
+ large: Large3;
536
+ medium: Medium3;
537
+ small: Small3;
538
+ orig: Orig2;
539
+ }
540
+
541
+ interface Large3 {
542
+ faces: Face5[];
543
+ }
544
+
545
+ interface Face5 {
546
+ x: number;
547
+ y: number;
548
+ h: number;
549
+ w: number;
550
+ }
551
+
552
+ interface Medium3 {
553
+ faces: Face6[];
554
+ }
555
+
556
+ interface Face6 {
557
+ x: number;
558
+ y: number;
559
+ h: number;
560
+ w: number;
561
+ }
562
+
563
+ interface Small3 {
564
+ faces: Face7[];
565
+ }
566
+
567
+ interface Face7 {
568
+ x: number;
569
+ y: number;
570
+ h: number;
571
+ w: number;
572
+ }
573
+
574
+ interface Orig2 {
575
+ faces: Face8[];
576
+ }
577
+
578
+ interface Face8 {
579
+ x: number;
580
+ y: number;
581
+ h: number;
582
+ w: number;
583
+ }
584
+
585
+ interface Sizes2 {
586
+ large: Large4;
587
+ medium: Medium4;
588
+ small: Small4;
589
+ thumb: Thumb2;
590
+ }
591
+
592
+ interface Large4 {
593
+ h: number;
594
+ w: number;
595
+ resize: string;
596
+ }
597
+
598
+ interface Medium4 {
599
+ h: number;
600
+ w: number;
601
+ resize: string;
602
+ }
603
+
604
+ interface Small4 {
605
+ h: number;
606
+ w: number;
607
+ resize: string;
608
+ }
609
+
610
+ interface Thumb2 {
611
+ h: number;
612
+ w: number;
613
+ resize: string;
614
+ }
615
+
616
+ interface OriginalInfo2 {
617
+ height: number;
618
+ width: number;
619
+ focus_rects: FocusRect2[];
620
+ }
621
+
622
+ interface FocusRect2 {
623
+ x: number;
624
+ y: number;
625
+ w: number;
626
+ h: number;
627
+ }
628
+
629
+ interface MediaResults2 {
630
+ result: Result6;
631
+ }
632
+
633
+ interface Result6 {
634
+ media_key: string;
635
+ }
636
+
637
+ interface AdditionalMediaInfo2 {
638
+ monetizable: boolean;
639
+ source_user: SourceUser2;
640
+ title?: string;
641
+ description?: string;
642
+ embeddable?: boolean;
643
+ }
644
+
645
+ interface SourceUser2 {
646
+ user_results: UserResults3;
647
+ }
648
+
649
+ interface UserResults3 {
650
+ result: Result7;
651
+ }
652
+
653
+ interface Result7 {
654
+ __typename: string;
655
+ id: string;
656
+ rest_id: string;
657
+ affiliates_highlighted_label: AffiliatesHighlightedLabel3;
658
+ has_graduated_access: boolean;
659
+ is_blue_verified: boolean;
660
+ profile_image_shape: string;
661
+ legacy: Legacy4;
662
+ professional?: Professional3;
663
+ verified_phone_status: boolean;
664
+ super_follow_eligible?: boolean;
665
+ }
666
+
667
+ interface AffiliatesHighlightedLabel3 {
668
+ label: Label3;
669
+ }
670
+
671
+ interface Label3 {
672
+ url: Url6;
673
+ badge: Badge3;
674
+ description: string;
675
+ userLabelType: string;
676
+ userLabelDisplayType: string;
677
+ }
678
+
679
+ interface Url6 {
680
+ url: string;
681
+ urlType: string;
682
+ }
683
+
684
+ interface Badge3 {
685
+ url: string;
686
+ }
687
+
688
+ interface Legacy4 {
689
+ can_dm: boolean;
690
+ can_media_tag: boolean;
691
+ created_at: string;
692
+ default_profile: boolean;
693
+ default_profile_image: boolean;
694
+ description: string;
695
+ entities: Entities4;
696
+ fast_followers_count: number;
697
+ favourites_count: number;
698
+ followers_count: number;
699
+ friends_count: number;
700
+ has_custom_timelines: boolean;
701
+ is_translator: boolean;
702
+ listed_count: number;
703
+ location: string;
704
+ media_count: number;
705
+ name: string;
706
+ normal_followers_count: number;
707
+ pinned_tweet_ids_str: string[];
708
+ possibly_sensitive: boolean;
709
+ profile_banner_url: string;
710
+ profile_image_url_https: string;
711
+ profile_interstitial_type: string;
712
+ screen_name: string;
713
+ statuses_count: number;
714
+ translator_type: string;
715
+ url: string;
716
+ verified: boolean;
717
+ want_retweets: boolean;
718
+ withheld_in_countries: any[];
719
+ verified_type?: string;
720
+ }
721
+
722
+ interface Entities4 {
723
+ description: Description3;
724
+ url: Url8;
725
+ }
726
+
727
+ interface Description3 {
728
+ urls: Url7[];
729
+ }
730
+
731
+ interface Url7 {
732
+ display_url: string;
733
+ expanded_url: string;
734
+ url: string;
735
+ indices: number[];
736
+ }
737
+
738
+ interface Url8 {
739
+ urls: Url9[];
740
+ }
741
+
742
+ interface Url9 {
743
+ display_url: string;
744
+ expanded_url: string;
745
+ url: string;
746
+ indices: number[];
747
+ }
748
+
749
+ interface Professional3 {
750
+ rest_id: string;
751
+ professional_type: string;
752
+ category: Category2[];
753
+ }
754
+
755
+ interface Category2 {
756
+ id: number;
757
+ name: string;
758
+ icon_name: string;
759
+ }
760
+
761
+ interface AllowDownloadStatus2 {
762
+ allow_download: boolean;
763
+ }
764
+
765
+ interface VideoInfo2 {
766
+ aspect_ratio: number[];
767
+ duration_millis: number;
768
+ variants: Variant2[];
769
+ }
770
+
771
+ interface Variant2 {
772
+ bitrate?: number;
773
+ content_type: string;
774
+ url: string;
775
+ }
776
+
777
+ interface BirdwatchPivot {
778
+ callToAction: CallToAction;
779
+ destinationUrl: string;
780
+ footer: Footer;
781
+ note: Note;
782
+ subtitle: Subtitle;
783
+ title: string;
784
+ shorttitle: string;
785
+ visualStyle: string;
786
+ iconType: string;
787
+ }
788
+
789
+ interface CallToAction {
790
+ prompt: string;
791
+ title: string;
792
+ destinationUrl: string;
793
+ }
794
+
795
+ interface Footer {
796
+ text: string;
797
+ entities: Entity[];
798
+ }
799
+
800
+ interface Entity {
801
+ fromIndex: number;
802
+ toIndex: number;
803
+ ref: Ref;
804
+ }
805
+
806
+ interface Ref {
807
+ type: string;
808
+ url: string;
809
+ urlType: string;
810
+ }
811
+
812
+ interface Note {
813
+ rest_id: string;
814
+ }
815
+
816
+ interface Subtitle {
817
+ text: string;
818
+ entities: Entity2[];
819
+ }
820
+
821
+ interface Entity2 {
822
+ fromIndex: number;
823
+ toIndex: number;
824
+ ref: Ref2;
825
+ }
826
+
827
+ interface Ref2 {
828
+ type: string;
829
+ url: string;
830
+ urlType: string;
831
+ }
832
+
833
+ interface Tweet {
834
+ rest_id: string;
835
+ core: Core2;
836
+ unmention_data: UnmentionData2;
837
+ edit_control: EditControl2;
838
+ is_translatable: boolean;
839
+ views: Views2;
840
+ source: string;
841
+ author_community_relationship: AuthorCommunityRelationship;
842
+ legacy: Legacy10;
843
+ }
844
+
845
+ interface Core2 {
846
+ user_results: UserResults4;
847
+ }
848
+
849
+ interface UserResults4 {
850
+ result: Result8;
851
+ }
852
+
853
+ interface Result8 {
854
+ __typename: string;
855
+ id: string;
856
+ rest_id: string;
857
+ affiliates_highlighted_label: AffiliatesHighlightedLabel4;
858
+ has_graduated_access: boolean;
859
+ is_blue_verified: boolean;
860
+ profile_image_shape: string;
861
+ legacy: Legacy5;
862
+ professional: Professional4;
863
+ super_follow_eligible: boolean;
864
+ verified_phone_status: boolean;
865
+ }
866
+
867
+ interface AffiliatesHighlightedLabel4 {
868
+ label: Label4;
869
+ }
870
+
871
+ interface Label4 {
872
+ url: Url10;
873
+ badge: Badge4;
874
+ description: string;
875
+ userLabelType: string;
876
+ userLabelDisplayType: string;
877
+ }
878
+
879
+ interface Url10 {
880
+ url: string;
881
+ urlType: string;
882
+ }
883
+
884
+ interface Badge4 {
885
+ url: string;
886
+ }
887
+
888
+ interface Legacy5 {
889
+ following: boolean;
890
+ can_dm: boolean;
891
+ can_media_tag: boolean;
892
+ created_at: string;
893
+ default_profile: boolean;
894
+ default_profile_image: boolean;
895
+ description: string;
896
+ entities: Entities5;
897
+ fast_followers_count: number;
898
+ favourites_count: number;
899
+ followers_count: number;
900
+ friends_count: number;
901
+ has_custom_timelines: boolean;
902
+ is_translator: boolean;
903
+ listed_count: number;
904
+ location: string;
905
+ media_count: number;
906
+ name: string;
907
+ normal_followers_count: number;
908
+ pinned_tweet_ids_str: string[];
909
+ possibly_sensitive: boolean;
910
+ profile_banner_url: string;
911
+ profile_image_url_https: string;
912
+ profile_interstitial_type: string;
913
+ screen_name: string;
914
+ statuses_count: number;
915
+ translator_type: string;
916
+ verified: boolean;
917
+ want_retweets: boolean;
918
+ withheld_in_countries: any[];
919
+ }
920
+
921
+ interface Entities5 {
922
+ description: Description4;
923
+ }
924
+
925
+ interface Description4 {
926
+ urls: any[];
927
+ }
928
+
929
+ interface Professional4 {
930
+ rest_id: string;
931
+ professional_type: string;
932
+ category: any[];
933
+ }
934
+
935
+ interface UnmentionData2 {}
936
+
937
+ interface EditControl2 {
938
+ edit_tweet_ids: string[];
939
+ editable_until_msecs: string;
940
+ is_edit_eligible: boolean;
941
+ edits_remaining: string;
942
+ }
943
+
944
+ interface Views2 {
945
+ count: string;
946
+ state: string;
947
+ }
948
+
949
+ interface AuthorCommunityRelationship {
950
+ community_results: CommunityResults;
951
+ role: string;
952
+ user_results: UserResults5;
953
+ }
954
+
955
+ interface CommunityResults {
956
+ result: Result9;
957
+ }
958
+
959
+ interface Result9 {
960
+ __typename: string;
961
+ id_str: string;
962
+ name: string;
963
+ description: string;
964
+ created_at: number;
965
+ question: string;
966
+ search_tags: string[];
967
+ is_nsfw: boolean;
968
+ actions: Actions;
969
+ admin_results: AdminResults;
970
+ creator_results: CreatorResults;
971
+ invites_result: InvitesResult;
972
+ join_policy: string;
973
+ invites_policy: string;
974
+ is_pinned: boolean;
975
+ members_facepile_results: MembersFacepileResult[];
976
+ moderator_count: number;
977
+ member_count: number;
978
+ role: string;
979
+ rules: Rule[];
980
+ custom_banner_media: CustomBannerMedia;
981
+ default_banner_media: DefaultBannerMedia;
982
+ viewer_relationship: ViewerRelationship;
983
+ join_requests_result: JoinRequestsResult;
984
+ }
985
+
986
+ interface Actions {
987
+ delete_action_result: DeleteActionResult;
988
+ join_action_result: JoinActionResult;
989
+ leave_action_result: LeaveActionResult;
990
+ pin_action_result: PinActionResult;
991
+ }
992
+
993
+ interface DeleteActionResult {
994
+ __typename: string;
995
+ reason: string;
996
+ }
997
+
998
+ interface JoinActionResult {
999
+ __typename: string;
1000
+ }
1001
+
1002
+ interface LeaveActionResult {
1003
+ __typename: string;
1004
+ reason: string;
1005
+ message: string;
1006
+ }
1007
+
1008
+ interface PinActionResult {
1009
+ __typename: string;
1010
+ }
1011
+
1012
+ interface AdminResults {
1013
+ result: Result10;
1014
+ }
1015
+
1016
+ interface Result10 {
1017
+ __typename: string;
1018
+ id: string;
1019
+ rest_id: string;
1020
+ affiliates_highlighted_label: AffiliatesHighlightedLabel5;
1021
+ has_graduated_access: boolean;
1022
+ is_blue_verified: boolean;
1023
+ profile_image_shape: string;
1024
+ legacy: Legacy6;
1025
+ verified_phone_status: boolean;
1026
+ }
1027
+
1028
+ interface AffiliatesHighlightedLabel5 {
1029
+ label: Label5;
1030
+ }
1031
+
1032
+ interface Label5 {
1033
+ url: Url11;
1034
+ badge: Badge5;
1035
+ description: string;
1036
+ userLabelType: string;
1037
+ userLabelDisplayType: string;
1038
+ }
1039
+
1040
+ interface Url11 {
1041
+ url: string;
1042
+ urlType: string;
1043
+ }
1044
+
1045
+ interface Badge5 {
1046
+ url: string;
1047
+ }
1048
+
1049
+ interface Legacy6 {
1050
+ can_dm: boolean;
1051
+ can_media_tag: boolean;
1052
+ created_at: string;
1053
+ default_profile: boolean;
1054
+ default_profile_image: boolean;
1055
+ description: string;
1056
+ entities: Entities6;
1057
+ fast_followers_count: number;
1058
+ favourites_count: number;
1059
+ followers_count: number;
1060
+ friends_count: number;
1061
+ has_custom_timelines: boolean;
1062
+ is_translator: boolean;
1063
+ listed_count: number;
1064
+ location: string;
1065
+ media_count: number;
1066
+ name: string;
1067
+ normal_followers_count: number;
1068
+ pinned_tweet_ids_str: string[];
1069
+ possibly_sensitive: boolean;
1070
+ profile_banner_url: string;
1071
+ profile_image_url_https: string;
1072
+ profile_interstitial_type: string;
1073
+ screen_name: string;
1074
+ statuses_count: number;
1075
+ translator_type: string;
1076
+ url: string;
1077
+ verified: boolean;
1078
+ want_retweets: boolean;
1079
+ withheld_in_countries: any[];
1080
+ }
1081
+
1082
+ interface Entities6 {
1083
+ description: Description5;
1084
+ url: Url12;
1085
+ }
1086
+
1087
+ interface Description5 {
1088
+ urls: any[];
1089
+ }
1090
+
1091
+ interface Url12 {
1092
+ urls: Url13[];
1093
+ }
1094
+
1095
+ interface Url13 {
1096
+ display_url: string;
1097
+ expanded_url: string;
1098
+ url: string;
1099
+ indices: number[];
1100
+ }
1101
+
1102
+ interface CreatorResults {
1103
+ result: Result11;
1104
+ }
1105
+
1106
+ interface Result11 {
1107
+ __typename: string;
1108
+ id: string;
1109
+ rest_id: string;
1110
+ affiliates_highlighted_label: AffiliatesHighlightedLabel6;
1111
+ has_graduated_access: boolean;
1112
+ is_blue_verified: boolean;
1113
+ profile_image_shape: string;
1114
+ legacy: Legacy7;
1115
+ verified_phone_status: boolean;
1116
+ }
1117
+
1118
+ interface AffiliatesHighlightedLabel6 {
1119
+ label: Label6;
1120
+ }
1121
+
1122
+ interface Label6 {
1123
+ url: Url14;
1124
+ badge: Badge6;
1125
+ description: string;
1126
+ userLabelType: string;
1127
+ userLabelDisplayType: string;
1128
+ }
1129
+
1130
+ interface Url14 {
1131
+ url: string;
1132
+ urlType: string;
1133
+ }
1134
+
1135
+ interface Badge6 {
1136
+ url: string;
1137
+ }
1138
+
1139
+ interface Legacy7 {
1140
+ can_dm: boolean;
1141
+ can_media_tag: boolean;
1142
+ created_at: string;
1143
+ default_profile: boolean;
1144
+ default_profile_image: boolean;
1145
+ description: string;
1146
+ entities: Entities7;
1147
+ fast_followers_count: number;
1148
+ favourites_count: number;
1149
+ followers_count: number;
1150
+ friends_count: number;
1151
+ has_custom_timelines: boolean;
1152
+ is_translator: boolean;
1153
+ listed_count: number;
1154
+ location: string;
1155
+ media_count: number;
1156
+ name: string;
1157
+ normal_followers_count: number;
1158
+ pinned_tweet_ids_str: string[];
1159
+ possibly_sensitive: boolean;
1160
+ profile_banner_url: string;
1161
+ profile_image_url_https: string;
1162
+ profile_interstitial_type: string;
1163
+ screen_name: string;
1164
+ statuses_count: number;
1165
+ translator_type: string;
1166
+ url: string;
1167
+ verified: boolean;
1168
+ want_retweets: boolean;
1169
+ withheld_in_countries: any[];
1170
+ }
1171
+
1172
+ interface Entities7 {
1173
+ description: Description6;
1174
+ url: Url15;
1175
+ }
1176
+
1177
+ interface Description6 {
1178
+ urls: any[];
1179
+ }
1180
+
1181
+ interface Url15 {
1182
+ urls: Url16[];
1183
+ }
1184
+
1185
+ interface Url16 {
1186
+ display_url: string;
1187
+ expanded_url: string;
1188
+ url: string;
1189
+ indices: number[];
1190
+ }
1191
+
1192
+ interface InvitesResult {
1193
+ __typename: string;
1194
+ reason: string;
1195
+ message: string;
1196
+ }
1197
+
1198
+ interface MembersFacepileResult {
1199
+ result: Result12;
1200
+ }
1201
+
1202
+ interface Result12 {
1203
+ __typename: string;
1204
+ id: string;
1205
+ rest_id: string;
1206
+ affiliates_highlighted_label: AffiliatesHighlightedLabel7;
1207
+ has_graduated_access: boolean;
1208
+ is_blue_verified: boolean;
1209
+ profile_image_shape: string;
1210
+ legacy: Legacy8;
1211
+ verified_phone_status: boolean;
1212
+ professional?: Professional5;
1213
+ }
1214
+
1215
+ interface AffiliatesHighlightedLabel7 {
1216
+ label?: Label7;
1217
+ }
1218
+
1219
+ interface Label7 {
1220
+ url: Url17;
1221
+ badge: Badge7;
1222
+ description: string;
1223
+ userLabelType: string;
1224
+ userLabelDisplayType: string;
1225
+ }
1226
+
1227
+ interface Url17 {
1228
+ url: string;
1229
+ urlType: string;
1230
+ }
1231
+
1232
+ interface Badge7 {
1233
+ url: string;
1234
+ }
1235
+
1236
+ interface Legacy8 {
1237
+ can_dm: boolean;
1238
+ can_media_tag: boolean;
1239
+ created_at: string;
1240
+ default_profile: boolean;
1241
+ default_profile_image: boolean;
1242
+ description: string;
1243
+ entities: Entities8;
1244
+ fast_followers_count: number;
1245
+ favourites_count: number;
1246
+ followers_count: number;
1247
+ friends_count: number;
1248
+ has_custom_timelines: boolean;
1249
+ is_translator: boolean;
1250
+ listed_count: number;
1251
+ location: string;
1252
+ media_count: number;
1253
+ name: string;
1254
+ normal_followers_count: number;
1255
+ pinned_tweet_ids_str: string[];
1256
+ possibly_sensitive: boolean;
1257
+ profile_banner_url?: string;
1258
+ profile_image_url_https: string;
1259
+ profile_interstitial_type: string;
1260
+ screen_name: string;
1261
+ statuses_count: number;
1262
+ translator_type: string;
1263
+ url?: string;
1264
+ verified: boolean;
1265
+ want_retweets: boolean;
1266
+ withheld_in_countries: any[];
1267
+ }
1268
+
1269
+ interface Entities8 {
1270
+ description: Description7;
1271
+ url?: Url18;
1272
+ }
1273
+
1274
+ interface Description7 {
1275
+ urls: any[];
1276
+ }
1277
+
1278
+ interface Url18 {
1279
+ urls: Url19[];
1280
+ }
1281
+
1282
+ interface Url19 {
1283
+ display_url: string;
1284
+ expanded_url: string;
1285
+ url: string;
1286
+ indices: number[];
1287
+ }
1288
+
1289
+ interface Professional5 {
1290
+ rest_id: string;
1291
+ professional_type: string;
1292
+ category: Category3[];
1293
+ }
1294
+
1295
+ interface Category3 {
1296
+ id: number;
1297
+ name: string;
1298
+ icon_name: string;
1299
+ }
1300
+
1301
+ interface Rule {
1302
+ rest_id: string;
1303
+ name: string;
1304
+ description?: string;
1305
+ }
1306
+
1307
+ interface CustomBannerMedia {
1308
+ media_info: MediaInfo;
1309
+ }
1310
+
1311
+ interface MediaInfo {
1312
+ color_info: ColorInfo;
1313
+ original_img_url: string;
1314
+ original_img_width: number;
1315
+ original_img_height: number;
1316
+ salient_rect: SalientRect;
1317
+ }
1318
+
1319
+ interface ColorInfo {
1320
+ palette: Palette[];
1321
+ }
1322
+
1323
+ interface Palette {
1324
+ rgb: Rgb;
1325
+ percentage: number;
1326
+ }
1327
+
1328
+ interface Rgb {
1329
+ red: number;
1330
+ green: number;
1331
+ blue: number;
1332
+ }
1333
+
1334
+ interface SalientRect {
1335
+ left: number;
1336
+ top: number;
1337
+ width: number;
1338
+ height: number;
1339
+ }
1340
+
1341
+ interface DefaultBannerMedia {
1342
+ media_info: MediaInfo2;
1343
+ }
1344
+
1345
+ interface MediaInfo2 {
1346
+ color_info: ColorInfo2;
1347
+ original_img_url: string;
1348
+ original_img_width: number;
1349
+ original_img_height: number;
1350
+ }
1351
+
1352
+ interface ColorInfo2 {
1353
+ palette: Palette2[];
1354
+ }
1355
+
1356
+ interface Palette2 {
1357
+ rgb: Rgb2;
1358
+ percentage: number;
1359
+ }
1360
+
1361
+ interface Rgb2 {
1362
+ red: number;
1363
+ green: number;
1364
+ blue: number;
1365
+ }
1366
+
1367
+ interface ViewerRelationship {
1368
+ moderation_state: ModerationState;
1369
+ }
1370
+
1371
+ interface ModerationState {
1372
+ __typename: string;
1373
+ }
1374
+
1375
+ interface JoinRequestsResult {
1376
+ __typename: string;
1377
+ }
1378
+
1379
+ interface UserResults5 {
1380
+ result: Result13;
1381
+ }
1382
+
1383
+ interface Result13 {
1384
+ __typename: string;
1385
+ id: string;
1386
+ rest_id: string;
1387
+ affiliates_highlighted_label: AffiliatesHighlightedLabel8;
1388
+ has_graduated_access: boolean;
1389
+ is_blue_verified: boolean;
1390
+ profile_image_shape: string;
1391
+ legacy: Legacy9;
1392
+ professional: Professional6;
1393
+ super_follow_eligible: boolean;
1394
+ verified_phone_status: boolean;
1395
+ }
1396
+
1397
+ interface AffiliatesHighlightedLabel8 {
1398
+ label: Label8;
1399
+ }
1400
+
1401
+ interface Label8 {
1402
+ url: Url20;
1403
+ badge: Badge8;
1404
+ description: string;
1405
+ userLabelType: string;
1406
+ userLabelDisplayType: string;
1407
+ }
1408
+
1409
+ interface Url20 {
1410
+ url: string;
1411
+ urlType: string;
1412
+ }
1413
+
1414
+ interface Badge8 {
1415
+ url: string;
1416
+ }
1417
+
1418
+ interface Legacy9 {
1419
+ following: boolean;
1420
+ can_dm: boolean;
1421
+ can_media_tag: boolean;
1422
+ created_at: string;
1423
+ default_profile: boolean;
1424
+ default_profile_image: boolean;
1425
+ description: string;
1426
+ entities: Entities9;
1427
+ fast_followers_count: number;
1428
+ favourites_count: number;
1429
+ followers_count: number;
1430
+ friends_count: number;
1431
+ has_custom_timelines: boolean;
1432
+ is_translator: boolean;
1433
+ listed_count: number;
1434
+ location: string;
1435
+ media_count: number;
1436
+ name: string;
1437
+ normal_followers_count: number;
1438
+ pinned_tweet_ids_str: string[];
1439
+ possibly_sensitive: boolean;
1440
+ profile_banner_url: string;
1441
+ profile_image_url_https: string;
1442
+ profile_interstitial_type: string;
1443
+ screen_name: string;
1444
+ statuses_count: number;
1445
+ translator_type: string;
1446
+ verified: boolean;
1447
+ want_retweets: boolean;
1448
+ withheld_in_countries: any[];
1449
+ }
1450
+
1451
+ interface Entities9 {
1452
+ description: Description8;
1453
+ }
1454
+
1455
+ interface Description8 {
1456
+ urls: any[];
1457
+ }
1458
+
1459
+ interface Professional6 {
1460
+ rest_id: string;
1461
+ professional_type: string;
1462
+ category: any[];
1463
+ }
1464
+
1465
+ interface Legacy10 {
1466
+ bookmark_count: number;
1467
+ bookmarked: boolean;
1468
+ created_at: string;
1469
+ conversation_id_str: string;
1470
+ display_text_range: number[];
1471
+ entities: Entities10;
1472
+ extended_entities: ExtendedEntities2;
1473
+ favorite_count: number;
1474
+ favorited: boolean;
1475
+ full_text: string;
1476
+ is_quote_status: boolean;
1477
+ lang: string;
1478
+ limited_actions: string;
1479
+ possibly_sensitive: boolean;
1480
+ possibly_sensitive_editable: boolean;
1481
+ quote_count: number;
1482
+ reply_count: number;
1483
+ retweet_count: number;
1484
+ retweeted: boolean;
1485
+ user_id_str: string;
1486
+ id_str: string;
1487
+ }
1488
+
1489
+ interface Entities10 {
1490
+ hashtags: any[];
1491
+ media: Medum3[];
1492
+ symbols: any[];
1493
+ timestamps: any[];
1494
+ urls: any[];
1495
+ user_mentions: any[];
1496
+ }
1497
+
1498
+ interface Medum3 {
1499
+ display_url: string;
1500
+ expanded_url: string;
1501
+ id_str: string;
1502
+ indices: number[];
1503
+ media_key: string;
1504
+ media_url_https: string;
1505
+ type: string;
1506
+ url: string;
1507
+ ext_media_availability: ExtMediaAvailability3;
1508
+ features: Features3;
1509
+ sizes: Sizes3;
1510
+ original_info: OriginalInfo3;
1511
+ allow_download_status: AllowDownloadStatus3;
1512
+ media_results: MediaResults3;
1513
+ }
1514
+
1515
+ interface ExtMediaAvailability3 {
1516
+ status: string;
1517
+ }
1518
+
1519
+ interface Features3 {
1520
+ large: Large5;
1521
+ medium: Medium5;
1522
+ small: Small5;
1523
+ orig: Orig3;
1524
+ }
1525
+
1526
+ interface Large5 {
1527
+ faces: any[];
1528
+ }
1529
+
1530
+ interface Medium5 {
1531
+ faces: any[];
1532
+ }
1533
+
1534
+ interface Small5 {
1535
+ faces: any[];
1536
+ }
1537
+
1538
+ interface Orig3 {
1539
+ faces: any[];
1540
+ }
1541
+
1542
+ interface Sizes3 {
1543
+ large: Large6;
1544
+ medium: Medium6;
1545
+ small: Small6;
1546
+ thumb: Thumb3;
1547
+ }
1548
+
1549
+ interface Large6 {
1550
+ h: number;
1551
+ w: number;
1552
+ resize: string;
1553
+ }
1554
+
1555
+ interface Medium6 {
1556
+ h: number;
1557
+ w: number;
1558
+ resize: string;
1559
+ }
1560
+
1561
+ interface Small6 {
1562
+ h: number;
1563
+ w: number;
1564
+ resize: string;
1565
+ }
1566
+
1567
+ interface Thumb3 {
1568
+ h: number;
1569
+ w: number;
1570
+ resize: string;
1571
+ }
1572
+
1573
+ interface OriginalInfo3 {
1574
+ height: number;
1575
+ width: number;
1576
+ focus_rects: FocusRect3[];
1577
+ }
1578
+
1579
+ interface FocusRect3 {
1580
+ x: number;
1581
+ y: number;
1582
+ w: number;
1583
+ h: number;
1584
+ }
1585
+
1586
+ interface AllowDownloadStatus3 {
1587
+ allow_download: boolean;
1588
+ }
1589
+
1590
+ interface MediaResults3 {
1591
+ result: Result14;
1592
+ }
1593
+
1594
+ interface Result14 {
1595
+ media_key: string;
1596
+ }
1597
+
1598
+ interface ExtendedEntities2 {
1599
+ media: Medum4[];
1600
+ }
1601
+
1602
+ interface Medum4 {
1603
+ display_url: string;
1604
+ expanded_url: string;
1605
+ id_str: string;
1606
+ indices: number[];
1607
+ media_key: string;
1608
+ media_url_https: string;
1609
+ type: string;
1610
+ url: string;
1611
+ ext_media_availability: ExtMediaAvailability4;
1612
+ features: Features4;
1613
+ sizes: Sizes4;
1614
+ original_info: OriginalInfo4;
1615
+ allow_download_status: AllowDownloadStatus4;
1616
+ media_results: MediaResults4;
1617
+ }
1618
+
1619
+ interface ExtMediaAvailability4 {
1620
+ status: string;
1621
+ }
1622
+
1623
+ interface Features4 {
1624
+ large: Large7;
1625
+ medium: Medium7;
1626
+ small: Small7;
1627
+ orig: Orig4;
1628
+ }
1629
+
1630
+ interface Large7 {
1631
+ faces: any[];
1632
+ }
1633
+
1634
+ interface Medium7 {
1635
+ faces: any[];
1636
+ }
1637
+
1638
+ interface Small7 {
1639
+ faces: any[];
1640
+ }
1641
+
1642
+ interface Orig4 {
1643
+ faces: any[];
1644
+ }
1645
+
1646
+ interface Sizes4 {
1647
+ large: Large8;
1648
+ medium: Medium8;
1649
+ small: Small8;
1650
+ thumb: Thumb4;
1651
+ }
1652
+
1653
+ interface Large8 {
1654
+ h: number;
1655
+ w: number;
1656
+ resize: string;
1657
+ }
1658
+
1659
+ interface Medium8 {
1660
+ h: number;
1661
+ w: number;
1662
+ resize: string;
1663
+ }
1664
+
1665
+ interface Small8 {
1666
+ h: number;
1667
+ w: number;
1668
+ resize: string;
1669
+ }
1670
+
1671
+ interface Thumb4 {
1672
+ h: number;
1673
+ w: number;
1674
+ resize: string;
1675
+ }
1676
+
1677
+ interface OriginalInfo4 {
1678
+ height: number;
1679
+ width: number;
1680
+ focus_rects: FocusRect4[];
1681
+ }
1682
+
1683
+ interface FocusRect4 {
1684
+ x: number;
1685
+ y: number;
1686
+ w: number;
1687
+ h: number;
1688
+ }
1689
+
1690
+ interface AllowDownloadStatus4 {
1691
+ allow_download: boolean;
1692
+ }
1693
+
1694
+ interface MediaResults4 {
1695
+ result: Result15;
1696
+ }
1697
+
1698
+ interface Result15 {
1699
+ media_key: string;
1700
+ }
1701
+
1702
+ interface LimitedActionResults {
1703
+ limited_actions: LimitedAction[];
1704
+ }
1705
+
1706
+ interface LimitedAction {
1707
+ action: string;
1708
+ prompt?: Prompt;
1709
+ }
1710
+
1711
+ interface Prompt {
1712
+ __typename: string;
1713
+ cta_type: string;
1714
+ headline: Headline;
1715
+ subtext: Subtext;
1716
+ }
1717
+
1718
+ interface Headline {
1719
+ text: string;
1720
+ entities: any[];
1721
+ }
1722
+
1723
+ interface Subtext {
1724
+ text: string;
1725
+ entities: any[];
1726
+ }
1727
+
1728
+ interface ClientEventInfo {
1729
+ component: string;
1730
+ }
1731
+
1732
+ interface Metadata {
1733
+ scribeConfig: ScribeConfig;
1734
+ }
1735
+
1736
+ interface ScribeConfig {
1737
+ page: string;
1738
+ }