fxtwitter 0.0.0-reserved → 2.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.
package/dist/v2.d.cts ADDED
@@ -0,0 +1,685 @@
1
+ import { t as ClientOptions } from "./http-CidaL0TV.cjs";
2
+ declare namespace v2_d_exports {
3
+ export { AboutAccount, AnyMedia, AnyReply, AnyStatus, Article, ArticleContent, ArticleContentBlock, ArticleEntity, ArticleImageInfo, ArticleMarkdownEntity, ArticleMediaEntity, ArticleMediaEntityRef, ArticleMediaInfo, ArticleTweetEntity, ArticleVideoInfo, Birthday, Broadcast, BroadcastOrientation, BroadcastState, BroadcastThumbnail, Card, CardImage, Community, CommunityInvitesPolicy, CommunityJoinPolicy, CommunityNote, Cursor, EmbedCard, ExternalMedia, Facet, GenericMedia, GroupedSearchResults, MosaicPhoto, Photo, Poll, PollChoice, ProfileAboutResponse, ProfileRelationshipList, ProfileResponse, QueryError, RawText, ReplyingTo, RepostedBy, SearchResults, SocialConversationResponse, SocialThreadResponse, StatusMedia, StatusRawText, StatusTombstone, Substatus, SubstatusMedia, ThreadTimelineEntry, TimelineEntry, TombstoneReason, Translation, Trend, TrendsResponse, TwitterStatus, TypeaheadEvent, TypeaheadResponse, TypeaheadTopic, User, UserListResults, Verification, VerificationType, Video, VideoCodec, VideoContainer, VideoFormat, Website };
4
+ }
5
+ interface Facet {
6
+ /** e.g. `url`, `mention`, `hashtag`, `bold`, `media`. */
7
+ type: string;
8
+ /** Start/end UTF-16 indices. */
9
+ indices: [number, number];
10
+ original?: string;
11
+ replacement?: string;
12
+ display?: string;
13
+ id?: string;
14
+ }
15
+ interface RawText {
16
+ text: string;
17
+ facets: Facet[];
18
+ }
19
+ interface StatusRawText extends RawText {
20
+ display_text_range: [number, number];
21
+ }
22
+ interface Website {
23
+ url: string;
24
+ display_url: string;
25
+ }
26
+ interface Birthday {
27
+ day?: number;
28
+ month?: number;
29
+ year?: number;
30
+ }
31
+ type VerificationType = "organization" | "government" | "individual" | null;
32
+ interface Verification {
33
+ verified: boolean;
34
+ type: VerificationType;
35
+ verified_at?: string | null;
36
+ identity_verified?: boolean;
37
+ verified_by?: string;
38
+ }
39
+ interface AboutAccount {
40
+ based_in?: string | null;
41
+ location_accurate?: boolean;
42
+ created_country_accurate?: boolean | null;
43
+ source?: string | null;
44
+ username_changes?: {
45
+ count: number;
46
+ last_changed_at: string | null;
47
+ };
48
+ }
49
+ interface User {
50
+ type: "profile";
51
+ id: string;
52
+ name: string;
53
+ screen_name: string;
54
+ avatar_url: string | null;
55
+ banner_url: string | null;
56
+ description: string;
57
+ raw_description: RawText;
58
+ location: string;
59
+ url: string;
60
+ protected: boolean;
61
+ followers: number;
62
+ following: number;
63
+ statuses: number;
64
+ media_count: number;
65
+ likes: number;
66
+ joined: string;
67
+ website: Website | null;
68
+ birthday?: Birthday | null;
69
+ verification?: Verification;
70
+ /** Only present when the request opted in via `aboutAccount`. */
71
+ about_account?: AboutAccount;
72
+ profile_embed?: boolean;
73
+ }
74
+ interface ReplyingTo {
75
+ /** Handle or account id used in permalinks. */
76
+ screen_name: string;
77
+ /** Parent post id (X snowflake). */
78
+ status: string;
79
+ url?: string;
80
+ profile_url?: string;
81
+ display_name?: string;
82
+ }
83
+ interface RepostedBy {
84
+ id: string;
85
+ name: string;
86
+ screen_name: string;
87
+ avatar_url?: string | null;
88
+ url?: string;
89
+ }
90
+ type VideoContainer = "mp4" | "webm" | "m3u8";
91
+ type VideoCodec = "h264" | "hevc" | "vp9" | "av1";
92
+ interface VideoFormat {
93
+ container?: VideoContainer;
94
+ codec?: VideoCodec;
95
+ bitrate?: number;
96
+ url: string;
97
+ size?: number;
98
+ height?: number;
99
+ width?: number;
100
+ }
101
+ interface Photo {
102
+ id?: string;
103
+ format?: string;
104
+ type: "photo" | "gif";
105
+ url: string;
106
+ width: number;
107
+ height: number;
108
+ transcode_url?: string | null;
109
+ altText?: string;
110
+ }
111
+ interface Video {
112
+ id?: string;
113
+ format?: string;
114
+ type: "video" | "gif";
115
+ url: string;
116
+ width: number;
117
+ height: number;
118
+ thumbnail_url?: string | null;
119
+ transcode_url?: string | null;
120
+ duration: number;
121
+ filesize?: number;
122
+ formats: VideoFormat[];
123
+ publisher?: User | null;
124
+ }
125
+ interface MosaicPhoto {
126
+ id?: string;
127
+ format?: string;
128
+ type: "mosaic_photo";
129
+ url: string;
130
+ width: number;
131
+ height: number;
132
+ formats: {
133
+ webp: string;
134
+ jpeg: string;
135
+ };
136
+ }
137
+ interface ExternalMedia {
138
+ /** Currently always `video`. */
139
+ type: "video";
140
+ url: string;
141
+ thumbnail_url?: string;
142
+ height?: number;
143
+ width?: number;
144
+ }
145
+ /** Any other media item shape the API may return that isn't one of the known kinds. */
146
+ interface GenericMedia {
147
+ id?: string;
148
+ format?: string;
149
+ type: string;
150
+ url: string;
151
+ width: number;
152
+ height: number;
153
+ }
154
+ type AnyMedia = Photo | Video | MosaicPhoto | GenericMedia;
155
+ type BroadcastState = "LIVE" | "ENDED";
156
+ type BroadcastOrientation = "landscape" | "portrait";
157
+ interface BroadcastThumbnail {
158
+ url: string;
159
+ }
160
+ interface Broadcast {
161
+ url: string;
162
+ width: number;
163
+ height: number;
164
+ state: BroadcastState;
165
+ broadcaster: {
166
+ username: string;
167
+ display_name: string;
168
+ id: string;
169
+ };
170
+ stream?: {
171
+ url: string;
172
+ };
173
+ title: string;
174
+ source: string;
175
+ orientation: BroadcastOrientation;
176
+ broadcast_id: string;
177
+ media_id: string;
178
+ media_key: string;
179
+ is_high_latency: boolean;
180
+ thumbnail: {
181
+ original: BroadcastThumbnail;
182
+ small?: BroadcastThumbnail;
183
+ medium?: BroadcastThumbnail;
184
+ large?: BroadcastThumbnail;
185
+ x_large?: BroadcastThumbnail;
186
+ };
187
+ }
188
+ interface StatusMedia {
189
+ external?: ExternalMedia;
190
+ photos?: Photo[];
191
+ videos?: Video[];
192
+ /** Preserves original ordering across photos and videos. */
193
+ all?: AnyMedia[];
194
+ mosaic?: MosaicPhoto;
195
+ broadcast?: Broadcast;
196
+ }
197
+ type SubstatusMedia = StatusMedia;
198
+ interface PollChoice {
199
+ label: string;
200
+ count: number;
201
+ percentage: number;
202
+ }
203
+ interface Poll {
204
+ choices: PollChoice[];
205
+ total_votes: number;
206
+ ends_at: string;
207
+ time_left_en: string;
208
+ }
209
+ interface Translation {
210
+ text: string;
211
+ source_lang: string;
212
+ source_lang_en: string;
213
+ target_lang: string;
214
+ provider: string;
215
+ }
216
+ interface CardImage {
217
+ width?: number;
218
+ height?: number;
219
+ url?: string;
220
+ alt?: string;
221
+ }
222
+ interface Card {
223
+ url: string;
224
+ title?: string;
225
+ description?: string;
226
+ domain?: string;
227
+ card_name?: string;
228
+ image?: CardImage;
229
+ }
230
+ interface CommunityNote {
231
+ text: string;
232
+ facets: Facet[];
233
+ }
234
+ type CommunityJoinPolicy = "Open" | "Closed";
235
+ type CommunityInvitesPolicy = "MemberInvitesAllowed" | "MemberInvitesDisabled";
236
+ interface Community {
237
+ id: string;
238
+ name: string;
239
+ description: string;
240
+ created_at: string;
241
+ search_tags: string[];
242
+ is_nsfw: boolean;
243
+ topic: string | null;
244
+ admin?: User | null;
245
+ creator?: User | null;
246
+ join_policy?: CommunityJoinPolicy;
247
+ invites_policy?: CommunityInvitesPolicy;
248
+ is_pinned: boolean;
249
+ }
250
+ interface RgbColor {
251
+ red: number;
252
+ green: number;
253
+ blue: number;
254
+ }
255
+ interface ColorPalette {
256
+ palette: Array<{
257
+ percentage: number;
258
+ rgb: RgbColor;
259
+ }>;
260
+ }
261
+ interface ArticleImageInfo {
262
+ __typename: "ApiImage";
263
+ original_img_height: number;
264
+ original_img_width: number;
265
+ original_img_url: string;
266
+ color_info: ColorPalette;
267
+ }
268
+ interface ArticleVideoInfo {
269
+ __typename: "ApiVideo" | "ApiGif";
270
+ type: "video" | "animated_gif";
271
+ id: string;
272
+ id_str: string;
273
+ ext_alt_text: string | null;
274
+ ext_media_color: ColorPalette;
275
+ media_url: string;
276
+ media_url_https: string;
277
+ url: string;
278
+ display_url: string;
279
+ expanded_url: string;
280
+ original_info: {
281
+ height: number;
282
+ width: number;
283
+ };
284
+ sizes: {
285
+ original: {
286
+ h: number;
287
+ resize: "fit";
288
+ w: number;
289
+ };
290
+ };
291
+ video_info: {
292
+ aspect_ratio: [number, number];
293
+ duration_millis: number;
294
+ variants: Array<{
295
+ bitrate: number;
296
+ content_type: string;
297
+ url: string;
298
+ }>;
299
+ };
300
+ }
301
+ type ArticleMediaInfo = ArticleImageInfo | ArticleVideoInfo;
302
+ interface ArticleMediaEntity {
303
+ id: string;
304
+ media_key: string;
305
+ media_id: string;
306
+ media_info: ArticleMediaInfo;
307
+ }
308
+ interface ArticleContentBlock {
309
+ key: string;
310
+ data: Record<string, unknown>;
311
+ entityRanges: Array<{
312
+ key: number;
313
+ length: number;
314
+ offset: number;
315
+ }>;
316
+ inlineStyleRanges: Array<{
317
+ length: number;
318
+ offset: number;
319
+ style: string;
320
+ }>;
321
+ text: string;
322
+ type: string;
323
+ }
324
+ interface ArticleMarkdownEntity {
325
+ key: string;
326
+ value: {
327
+ type: "MARKDOWN";
328
+ mutability: "Mutable";
329
+ data: {
330
+ entityKey: string;
331
+ markdown: string;
332
+ };
333
+ };
334
+ }
335
+ interface ArticleMediaEntityRef {
336
+ key: string;
337
+ value: {
338
+ type: "MEDIA";
339
+ mutability: "Immutable";
340
+ data: {
341
+ entityKey: string;
342
+ mediaItems: Array<{
343
+ localMediaId: string;
344
+ mediaCategory: string;
345
+ mediaId: string;
346
+ }>;
347
+ };
348
+ };
349
+ }
350
+ interface ArticleTweetEntity {
351
+ key: string;
352
+ value: {
353
+ type: "TWEET";
354
+ mutability: "Immutable";
355
+ data: {
356
+ tweetId: string;
357
+ };
358
+ };
359
+ }
360
+ type ArticleEntity = ArticleMarkdownEntity | ArticleMediaEntityRef | ArticleTweetEntity;
361
+ interface ArticleContent {
362
+ blocks: ArticleContentBlock[];
363
+ entityMap: ArticleEntity[];
364
+ }
365
+ interface Article {
366
+ created_at: string;
367
+ modified_at?: string;
368
+ id: string;
369
+ title: string;
370
+ preview_text: string;
371
+ cover_media: ArticleMediaEntity;
372
+ content: ArticleContent;
373
+ media_entities: ArticleMediaEntity[];
374
+ }
375
+ type EmbedCard = "tweet" | "summary" | "summary_large_image" | "player";
376
+ interface TwitterStatus {
377
+ type: "status";
378
+ id: string;
379
+ url: string;
380
+ text: string;
381
+ created_at: string;
382
+ created_timestamp: number;
383
+ likes: number;
384
+ reposts: number;
385
+ quotes: number;
386
+ replies: number;
387
+ quote?: TwitterStatus | StatusTombstone;
388
+ poll?: Poll;
389
+ author: User;
390
+ /** Absent on posts without media, despite being marked required upstream. */
391
+ media?: StatusMedia;
392
+ raw_text: StatusRawText;
393
+ lang: string | null;
394
+ /** Only present when translation was requested via `lang`. */
395
+ translation?: Translation;
396
+ /** Omitted upstream rather than sent as `false`. */
397
+ possibly_sensitive?: boolean;
398
+ replying_to: ReplyingTo | null;
399
+ source: string | null;
400
+ embed_card: EmbedCard;
401
+ provider: "twitter";
402
+ views?: number | null;
403
+ bookmarks?: number | null;
404
+ community?: Community;
405
+ article?: Article;
406
+ is_note_tweet: boolean;
407
+ community_note: CommunityNote | null;
408
+ reposted_by: RepostedBy | null;
409
+ card?: Card;
410
+ }
411
+ type TombstoneReason = "deleted" | "suspended" | "private" | "blocked" | "unavailable";
412
+ /** Placeholder returned in place of a quote/thread post that's no longer available. */
413
+ interface StatusTombstone {
414
+ type: "tombstone";
415
+ provider: "twitter";
416
+ reason: TombstoneReason;
417
+ message: string;
418
+ id?: string;
419
+ url?: string;
420
+ author?: User;
421
+ }
422
+ /**
423
+ * A reply row inside `/2/conversation`. Documented as part of the shared
424
+ * multi-platform schema (its `provider` enum on FxEmbed excludes Twitter),
425
+ * kept here only because the API's own union allows it to appear in
426
+ * `SocialConversationResponse.replies`.
427
+ */
428
+ interface Substatus {
429
+ type: "substatus";
430
+ parent_id: string;
431
+ id: string;
432
+ url: string;
433
+ text: string;
434
+ created_at: string;
435
+ created_timestamp: number;
436
+ likes: number;
437
+ reposts: number;
438
+ replies: number;
439
+ author: User;
440
+ media?: SubstatusMedia | null;
441
+ raw_text: RawText;
442
+ lang: string | null;
443
+ possibly_sensitive?: boolean;
444
+ replying_to?: ReplyingTo | null;
445
+ source: string | null;
446
+ embed_card?: EmbedCard;
447
+ provider: "instagram" | "tiktok" | "threads";
448
+ media_pk?: string;
449
+ }
450
+ type AnyStatus = TwitterStatus | StatusTombstone;
451
+ type AnyReply = TwitterStatus | StatusTombstone | Substatus;
452
+ interface Cursor {
453
+ top: string | null;
454
+ bottom: string | null;
455
+ }
456
+ /** Response for `/2/status/{id}` and `/2/thread/{id}`. */
457
+ interface SocialThreadResponse {
458
+ code: number;
459
+ status: AnyStatus | null;
460
+ thread: AnyStatus[] | null;
461
+ author: User | null;
462
+ }
463
+ /** Response for `/2/conversation/{id}`. */
464
+ interface SocialConversationResponse {
465
+ code: number;
466
+ status: AnyStatus | null;
467
+ thread: AnyStatus[] | null;
468
+ replies: AnyReply[] | null;
469
+ author: User | null;
470
+ cursor: {
471
+ bottom: string | null;
472
+ } | null;
473
+ }
474
+ interface SearchResults {
475
+ code: number;
476
+ results: TwitterStatus[];
477
+ cursor: Cursor;
478
+ }
479
+ interface UserListResults {
480
+ code: number;
481
+ results: User[];
482
+ cursor: Cursor;
483
+ }
484
+ /** A grouped conversation snippet, returned when `groupthreads` is set. */
485
+ interface ThreadTimelineEntry {
486
+ type: "thread";
487
+ conversation_id: string;
488
+ statuses: TwitterStatus[];
489
+ all_status_ids?: string[];
490
+ /** True when `statuses` doesn't contain the full conversation. */
491
+ truncated: boolean;
492
+ }
493
+ type TimelineEntry = TwitterStatus | ThreadTimelineEntry;
494
+ interface GroupedSearchResults {
495
+ code: number;
496
+ results: TimelineEntry[];
497
+ cursor: Cursor;
498
+ }
499
+ interface ProfileRelationshipList {
500
+ code: number;
501
+ results: User[];
502
+ cursor: Cursor;
503
+ }
504
+ interface ProfileResponse {
505
+ code: number;
506
+ message?: string;
507
+ user?: User;
508
+ /** Set to `suspended` when the user is suspended. */
509
+ reason?: "suspended";
510
+ id?: string;
511
+ }
512
+ interface ProfileAboutResponse {
513
+ code: number;
514
+ message?: string;
515
+ about_account?: AboutAccount;
516
+ }
517
+ interface TypeaheadTopic {
518
+ topic: string;
519
+ result_context?: {
520
+ display_string?: string;
521
+ redirect_url?: string;
522
+ types?: Array<{
523
+ type: string;
524
+ }>;
525
+ };
526
+ }
527
+ interface TypeaheadEvent {
528
+ topic: string;
529
+ url?: string;
530
+ supporting_text?: string;
531
+ primary_image?: {
532
+ url: string;
533
+ width?: number;
534
+ height?: number;
535
+ };
536
+ }
537
+ interface TypeaheadResponse {
538
+ code: number;
539
+ query: string;
540
+ num_results: number;
541
+ users: User[];
542
+ topics: TypeaheadTopic[];
543
+ events: TypeaheadEvent[];
544
+ }
545
+ interface Trend {
546
+ name: string;
547
+ rank: string | null;
548
+ context: string | null;
549
+ grouped_topics?: Array<{
550
+ name: string;
551
+ }>;
552
+ }
553
+ interface TrendsResponse {
554
+ code: number;
555
+ message?: string;
556
+ timeline_type: string;
557
+ trends: Trend[];
558
+ cursor: Cursor;
559
+ }
560
+ /** Body returned for 400 responses (invalid path/query parameters). */
561
+ interface QueryError {
562
+ code: 400;
563
+ message: string;
564
+ }
565
+ //#endregion
566
+ //#region src/v2.d.ts
567
+ type FxTwitterV2Options = ClientOptions;
568
+ type RankingMode = "likes" | "recency";
569
+ type SearchFeed = "latest" | "top" | "media";
570
+ type TypeaheadResultType = "events" | "users" | "topics";
571
+ /** Per-call cancellation, composed with the client-level `timeout`. */
572
+ interface AbortOptions {
573
+ signal?: AbortSignal;
574
+ }
575
+ interface GetStatusOptions extends AbortOptions {
576
+ /** Include `about_account` on the author when available. */
577
+ aboutAccount?: boolean;
578
+ /** ISO 639-1/639-5 target language for inline translation. */
579
+ lang?: string;
580
+ }
581
+ interface PageOptions extends AbortOptions {
582
+ /** Page size (1-100, API default 20). */
583
+ count?: number;
584
+ /** Pagination cursor from a prior response. */
585
+ cursor?: string;
586
+ }
587
+ interface GetStatusQuotesOptions extends PageOptions {
588
+ lang?: string;
589
+ }
590
+ interface GetConversationOptions extends AbortOptions {
591
+ rankingMode?: RankingMode;
592
+ cursor?: string;
593
+ aboutAccount?: boolean;
594
+ lang?: string;
595
+ }
596
+ interface GetProfileOptions extends AbortOptions {
597
+ aboutAccount?: boolean;
598
+ }
599
+ interface GetProfileStatusesOptions extends PageOptions {
600
+ /**
601
+ * Unix timestamp (seconds, or ms if >= 1e12). When set without `cursor`,
602
+ * the API returns 204 — and this method resolves to `null` — if no post in
603
+ * the page is newer than this instant.
604
+ */
605
+ since?: number;
606
+ withReplies?: boolean;
607
+ /** Return `results` as a mix of `status` and `thread` entries. */
608
+ groupThreads?: boolean;
609
+ lang?: string;
610
+ }
611
+ interface GetProfileArticlesOptions extends PageOptions {
612
+ lang?: string;
613
+ }
614
+ interface GetProfileMediaOptions extends PageOptions {
615
+ lang?: string;
616
+ }
617
+ interface SearchOptions extends PageOptions {
618
+ feed?: SearchFeed;
619
+ lang?: string;
620
+ }
621
+ interface TypeaheadOptions extends AbortOptions {
622
+ resultType?: TypeaheadResultType[];
623
+ /** Upstream `src` hint. Defaults to `search_box`. */
624
+ src?: string;
625
+ }
626
+ interface TrendsOptions extends AbortOptions {
627
+ /** Number of trends to return (1-50, API default 20). */
628
+ count?: number;
629
+ }
630
+ /** Builds the `id:<rest_id>` handle form accepted by the profile endpoints. */
631
+ declare function byUserId(id: string): string;
632
+ /** Client for the FxTwitter/FxEmbed v2 API (https://docs.fxembed.com/api/twitter/). */
633
+ declare class FxTwitterV2 {
634
+ private readonly http;
635
+ constructor(options?: FxTwitterV2Options);
636
+ /** Only `/2/profile/{handle}/statuses` can answer 204, so everything else demands a body. */
637
+ private get;
638
+ /**
639
+ * Same as {@link get}, for the endpoints that report "no results" as a 404
640
+ * carrying an otherwise normal body. An empty page is a result, not an
641
+ * error, so it is returned rather than thrown.
642
+ *
643
+ * The API uses that same 404 for an unknown handle, which it does not
644
+ * distinguish from an empty timeline.
645
+ */
646
+ private getPage;
647
+ /** `GET /2/status/{id}` — a single post by snowflake ID. */
648
+ getStatus(id: string, options?: GetStatusOptions): Promise<SocialThreadResponse>;
649
+ /** `GET /2/status/{id}/reposts` — users who reposted a post. */
650
+ getStatusReposts(id: string, options?: PageOptions): Promise<UserListResults>;
651
+ /** `GET /2/status/{id}/quotes` — posts quoting a post. */
652
+ getStatusQuotes(id: string, options?: GetStatusQuotesOptions): Promise<SearchResults>;
653
+ /** `GET /2/thread/{id}` — a post with its unrolled thread. */
654
+ getThread(id: string, options?: GetStatusOptions): Promise<SocialThreadResponse>;
655
+ /** `GET /2/conversation/{id}` — a post, its thread, and ranked replies. */
656
+ getConversation(id: string, options?: GetConversationOptions): Promise<SocialConversationResponse>;
657
+ /**
658
+ * `GET /2/profile/{handle}` — a user's profile. `handle` is a username
659
+ * without `@`, or `byUserId(id)` for a numeric user ID.
660
+ */
661
+ getProfile(handle: string, options?: GetProfileOptions): Promise<ProfileResponse>;
662
+ /**
663
+ * `GET /2/profile/{handle}/statuses` — a user's posts. Resolves to `null`
664
+ * when `since` is set (without `cursor`) and nothing is newer than it.
665
+ */
666
+ getProfileStatuses(handle: string, options?: GetProfileStatusesOptions): Promise<SearchResults | GroupedSearchResults | null>;
667
+ /** `GET /2/profile/{handle}/articles` — a user's long-form articles. */
668
+ getProfileArticles(handle: string, options?: GetProfileArticlesOptions): Promise<SearchResults>;
669
+ /** `GET /2/profile/{handle}/about` — account metadata (based-in country, name changes). */
670
+ getProfileAbout(handle: string, options?: AbortOptions): Promise<ProfileAboutResponse>;
671
+ /** `GET /2/profile/{handle}/media` — a user's posts that contain media. */
672
+ getProfileMedia(handle: string, options?: GetProfileMediaOptions): Promise<SearchResults>;
673
+ /** `GET /2/profile/{handle}/followers` — a user's followers. */
674
+ getProfileFollowers(handle: string, options?: PageOptions): Promise<ProfileRelationshipList>;
675
+ /** `GET /2/profile/{handle}/following` — accounts a user follows. */
676
+ getProfileFollowing(handle: string, options?: PageOptions): Promise<ProfileRelationshipList>;
677
+ /** `GET /2/search` — search posts. */
678
+ search(query: string, options?: SearchOptions): Promise<SearchResults>;
679
+ /** `GET /2/typeahead` — search-box autocomplete suggestions. */
680
+ typeahead(query: string, options?: TypeaheadOptions): Promise<TypeaheadResponse>;
681
+ /** `GET /2/trends` — trending topics. */
682
+ trends(options?: TrendsOptions): Promise<TrendsResponse>;
683
+ }
684
+ //#endregion
685
+ export { AbortOptions, type AboutAccount, type AnyMedia, type AnyReply, type AnyStatus, type Article, type ArticleContent, type ArticleContentBlock, type ArticleEntity, type ArticleImageInfo, type ArticleMarkdownEntity, type ArticleMediaEntity, type ArticleMediaEntityRef, type ArticleMediaInfo, type ArticleTweetEntity, type ArticleVideoInfo, type Birthday, type Broadcast, type BroadcastOrientation, type BroadcastState, type BroadcastThumbnail, type Card, type CardImage, type Community, type CommunityInvitesPolicy, type CommunityJoinPolicy, type CommunityNote, type Cursor, type EmbedCard, type ExternalMedia, type Facet, FxTwitterV2, FxTwitterV2Options, type GenericMedia, GetConversationOptions, GetProfileArticlesOptions, GetProfileMediaOptions, GetProfileOptions, GetProfileStatusesOptions, GetStatusOptions, GetStatusQuotesOptions, type GroupedSearchResults, type MosaicPhoto, PageOptions, type Photo, type Poll, type PollChoice, type ProfileAboutResponse, type ProfileRelationshipList, type ProfileResponse, type QueryError, RankingMode, type RawText, type ReplyingTo, type RepostedBy, SearchFeed, SearchOptions, type SearchResults, type SocialConversationResponse, type SocialThreadResponse, type StatusMedia, type StatusRawText, type StatusTombstone, type Substatus, type SubstatusMedia, type ThreadTimelineEntry, type TimelineEntry, type TombstoneReason, type Translation, type Trend, TrendsOptions, type TrendsResponse, type TwitterStatus, type TypeaheadEvent, TypeaheadOptions, type TypeaheadResponse, TypeaheadResultType, type TypeaheadTopic, type User, type UserListResults, type Verification, type VerificationType, type Video, type VideoCodec, type VideoContainer, type VideoFormat, type Website, byUserId, v2_d_exports as t };