scavio 0.6.0 → 0.7.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/index.d.cts CHANGED
@@ -410,6 +410,10 @@ declare class GoogleNamespace {
410
410
  trending(options: GoogleTrendingOptions): Promise<Record<string, unknown>>;
411
411
  }
412
412
 
413
+ /** Comment / feed sort orders. */
414
+ type RedditSort = "HOT" | "NEW" | "TOP" | "BEST" | "CONTROVERSIAL";
415
+ /** Subreddit feed sort orders. */
416
+ type RedditFeedSort = "BEST" | "HOT" | "NEW" | "TOP" | "CONTROVERSIAL" | "RISING";
413
417
  interface RedditSearchOptions {
414
418
  /** Search query (1-500 characters). */
415
419
  query: string;
@@ -421,16 +425,84 @@ interface RedditSearchOptions {
421
425
  cursor?: string;
422
426
  [key: string]: unknown;
423
427
  }
428
+ interface RedditSearchSuggestionsOptions {
429
+ /** Search query (1-500 characters). */
430
+ query: string;
431
+ [key: string]: unknown;
432
+ }
424
433
  interface RedditPostOptions {
434
+ /** Post fullname (t3_...) or bare id. */
435
+ post_id?: string;
425
436
  /** Full Reddit post URL. */
426
- url: string;
437
+ url?: string;
438
+ [key: string]: unknown;
439
+ }
440
+ interface RedditPostCommentsOptions {
441
+ /** Post fullname (t3_...). */
442
+ post_id: string;
443
+ /** Comment sort order (default 'TOP'). */
444
+ sort?: RedditSort;
445
+ /** Pagination cursor from a prior response. */
446
+ cursor?: string;
447
+ [key: string]: unknown;
448
+ }
449
+ interface RedditCommentRepliesOptions {
450
+ /** Post fullname (t3_...). */
451
+ post_id: string;
452
+ /** reply_cursor from a comment in the comments endpoint. */
453
+ cursor: string;
454
+ /** Comment sort order (default 'TOP'). */
455
+ sort?: RedditSort;
456
+ [key: string]: unknown;
457
+ }
458
+ interface RedditSubredditOptions {
459
+ /** Subreddit name (without r/). */
460
+ subreddit: string;
461
+ [key: string]: unknown;
462
+ }
463
+ interface RedditSubredditPostsOptions {
464
+ /** Subreddit name (without r/). */
465
+ subreddit: string;
466
+ /** Feed sort order (default 'HOT'). */
467
+ sort?: RedditFeedSort;
468
+ /** Pagination cursor from a prior response. */
469
+ cursor?: string;
470
+ [key: string]: unknown;
471
+ }
472
+ interface RedditUserOptions {
473
+ /** Redditor username (without u/). */
474
+ username: string;
475
+ [key: string]: unknown;
476
+ }
477
+ interface RedditUserFeedOptions {
478
+ /** Redditor username (without u/). */
479
+ username: string;
480
+ /** Sort order (default 'NEW'). */
481
+ sort?: RedditSort;
482
+ /** Pagination cursor from a prior response. */
483
+ cursor?: string;
484
+ [key: string]: unknown;
485
+ }
486
+ interface RedditPopularOptions {
487
+ /** Pagination cursor from a prior response. */
488
+ cursor?: string;
427
489
  [key: string]: unknown;
428
490
  }
429
491
  declare class RedditNamespace {
430
492
  private client;
431
493
  constructor(client: Scavio);
432
494
  search(options: RedditSearchOptions): Promise<Record<string, unknown>>;
495
+ searchSuggestions(options: RedditSearchSuggestionsOptions): Promise<Record<string, unknown>>;
433
496
  post(options: RedditPostOptions): Promise<Record<string, unknown>>;
497
+ postComments(options: RedditPostCommentsOptions): Promise<Record<string, unknown>>;
498
+ commentReplies(options: RedditCommentRepliesOptions): Promise<Record<string, unknown>>;
499
+ subreddit(options: RedditSubredditOptions): Promise<Record<string, unknown>>;
500
+ subredditPosts(options: RedditSubredditPostsOptions): Promise<Record<string, unknown>>;
501
+ user(options: RedditUserOptions): Promise<Record<string, unknown>>;
502
+ userPosts(options: RedditUserFeedOptions): Promise<Record<string, unknown>>;
503
+ userComments(options: RedditUserFeedOptions): Promise<Record<string, unknown>>;
504
+ popular(options?: RedditPopularOptions): Promise<Record<string, unknown>>;
505
+ trending(): Promise<Record<string, unknown>>;
434
506
  }
435
507
 
436
508
  interface TikTokProfileOptions {
@@ -852,6 +924,215 @@ declare class YouTubeNamespace {
852
924
  streams(options: YouTubeStreamsOptions): Promise<Record<string, unknown>>;
853
925
  }
854
926
 
927
+ interface TwitterSearchOptions {
928
+ /** Search query (1-500 characters). */
929
+ search: string;
930
+ /** Result category (default 'Top'). */
931
+ search_type?: "Top" | "Latest" | "People" | "Photos" | "Videos";
932
+ /** Pagination cursor from a prior response. */
933
+ cursor?: string;
934
+ [key: string]: unknown;
935
+ }
936
+ interface TwitterTweetOptions {
937
+ /** Tweet id. */
938
+ tweet_id: string;
939
+ [key: string]: unknown;
940
+ }
941
+ interface TwitterTweetCommentsOptions {
942
+ /** Tweet id. */
943
+ tweet_id: string;
944
+ /** 'top' (ranked) or 'latest' (chronological); default 'top'. */
945
+ rank?: "top" | "latest";
946
+ /** Pagination cursor from a prior response. */
947
+ cursor?: string;
948
+ [key: string]: unknown;
949
+ }
950
+ interface TwitterTweetRetweetersOptions {
951
+ /** Tweet id. */
952
+ tweet_id: string;
953
+ /** Pagination cursor from a prior response. */
954
+ cursor?: string;
955
+ [key: string]: unknown;
956
+ }
957
+ interface TwitterUserOptions {
958
+ /** A Twitter handle (without the @). */
959
+ screen_name: string;
960
+ [key: string]: unknown;
961
+ }
962
+ interface TwitterUserFeedOptions {
963
+ /** A Twitter handle (without the @). */
964
+ screen_name: string;
965
+ /** Pagination cursor from a prior response. */
966
+ cursor?: string;
967
+ [key: string]: unknown;
968
+ }
969
+ interface TwitterTrendingOptions {
970
+ /** Country name (default 'UnitedStates'). */
971
+ country?: string;
972
+ [key: string]: unknown;
973
+ }
974
+ declare class TwitterNamespace {
975
+ private client;
976
+ constructor(client: Scavio);
977
+ search(options: TwitterSearchOptions): Promise<Record<string, unknown>>;
978
+ tweet(options: TwitterTweetOptions): Promise<Record<string, unknown>>;
979
+ tweetComments(options: TwitterTweetCommentsOptions): Promise<Record<string, unknown>>;
980
+ tweetRetweeters(options: TwitterTweetRetweetersOptions): Promise<Record<string, unknown>>;
981
+ user(options: TwitterUserOptions): Promise<Record<string, unknown>>;
982
+ userTweets(options: TwitterUserFeedOptions): Promise<Record<string, unknown>>;
983
+ userReplies(options: TwitterUserFeedOptions): Promise<Record<string, unknown>>;
984
+ userMedia(options: TwitterUserFeedOptions): Promise<Record<string, unknown>>;
985
+ userFollowers(options: TwitterUserFeedOptions): Promise<Record<string, unknown>>;
986
+ userFollowings(options: TwitterUserFeedOptions): Promise<Record<string, unknown>>;
987
+ trending(options?: TwitterTrendingOptions): Promise<Record<string, unknown>>;
988
+ }
989
+
990
+ interface LinkedInPersonOptions {
991
+ /** Public identifier (vanity handle). */
992
+ username: string;
993
+ /** Include the experiences section (default true server-side). */
994
+ include_experiences?: boolean;
995
+ /** Include the educations section (default true server-side). */
996
+ include_educations?: boolean;
997
+ /** Include the skills section (default true server-side). */
998
+ include_skills?: boolean;
999
+ /** Include the certifications section (default true server-side). */
1000
+ include_certifications?: boolean;
1001
+ /** Include follower and connection counts (default true server-side). */
1002
+ include_follower_and_connection?: boolean;
1003
+ [key: string]: unknown;
1004
+ }
1005
+ interface LinkedInPersonRefOptions {
1006
+ /** Member urn. */
1007
+ urn?: string;
1008
+ /** Public identifier; resolved to a urn if urn is omitted. */
1009
+ username?: string;
1010
+ [key: string]: unknown;
1011
+ }
1012
+ interface LinkedInPersonPostsOptions {
1013
+ /** Member urn. */
1014
+ urn?: string;
1015
+ /** Public identifier; resolved to a urn if urn is omitted. */
1016
+ username?: string;
1017
+ /** Pagination cursor from a prior response. */
1018
+ cursor?: string;
1019
+ [key: string]: unknown;
1020
+ }
1021
+ interface LinkedInPersonContactOptions {
1022
+ /** Public identifier (vanity handle). */
1023
+ username: string;
1024
+ [key: string]: unknown;
1025
+ }
1026
+ interface LinkedInCompanyOptions {
1027
+ /** Company universal name (slug) or LinkedIn company URL. */
1028
+ company: string;
1029
+ [key: string]: unknown;
1030
+ }
1031
+ interface LinkedInCompanyPostsOptions {
1032
+ /** Company universal name (slug) or LinkedIn company URL. */
1033
+ company: string;
1034
+ /** Pagination cursor from a prior response. */
1035
+ cursor?: string;
1036
+ /** Results per page (1-100). */
1037
+ count?: number;
1038
+ [key: string]: unknown;
1039
+ }
1040
+ interface LinkedInCompanyRefOptions {
1041
+ /** Numeric company id. */
1042
+ company_id?: string;
1043
+ /** Company slug/url; resolved to a company_id if company_id is omitted. */
1044
+ company?: string;
1045
+ /** Pagination cursor from a prior response. */
1046
+ cursor?: string;
1047
+ [key: string]: unknown;
1048
+ }
1049
+ interface LinkedInSearchPeopleOptions {
1050
+ /** Name to search for. */
1051
+ search?: string;
1052
+ /** Job title filter. */
1053
+ title?: string;
1054
+ /** Company filter. */
1055
+ company?: string;
1056
+ /** School filter. */
1057
+ school?: string;
1058
+ /** A geo name or id to filter by. */
1059
+ location?: string;
1060
+ /** Page cursor (page number). */
1061
+ cursor?: string;
1062
+ [key: string]: unknown;
1063
+ }
1064
+ interface LinkedInSearchJobsOptions {
1065
+ /** Search query (1-500 characters). */
1066
+ search: string;
1067
+ /** Page cursor (page number). */
1068
+ cursor?: string;
1069
+ /** Date-posted filter. */
1070
+ date_posted?: string;
1071
+ /** Geo code to filter by. */
1072
+ geocode?: string;
1073
+ /** Experience level filter. */
1074
+ experience_level?: string;
1075
+ /** Remote filter. */
1076
+ remote?: string;
1077
+ /** Job type filter. */
1078
+ job_type?: string;
1079
+ [key: string]: unknown;
1080
+ }
1081
+ interface LinkedInSearchPostsOptions {
1082
+ /** Search query (1-500 characters). */
1083
+ search: string;
1084
+ /** Page cursor (page number). */
1085
+ cursor?: string;
1086
+ /** Date-posted filter. */
1087
+ date_posted?: string;
1088
+ /** Sort order. */
1089
+ sort_by?: string;
1090
+ /** Content type filter. */
1091
+ content_type?: string;
1092
+ [key: string]: unknown;
1093
+ }
1094
+ interface LinkedInJobOptions {
1095
+ /** Job listing id. */
1096
+ job_id: string;
1097
+ /** Include the required-skills section. */
1098
+ include_skills?: boolean;
1099
+ [key: string]: unknown;
1100
+ }
1101
+ interface LinkedInPostOptions {
1102
+ /** Post id or activity urn. */
1103
+ post_id: string;
1104
+ [key: string]: unknown;
1105
+ }
1106
+ interface LinkedInPostCommentsOptions {
1107
+ /** Post id or activity urn. */
1108
+ post_id: string;
1109
+ /** Pagination cursor from a prior response. */
1110
+ cursor?: string;
1111
+ /** Comment sort order. */
1112
+ sort_order?: "relevance" | "recent";
1113
+ /** Post type. */
1114
+ post_type?: "activity" | "ugc";
1115
+ [key: string]: unknown;
1116
+ }
1117
+ declare class LinkedInNamespace {
1118
+ private client;
1119
+ constructor(client: Scavio);
1120
+ person(options: LinkedInPersonOptions): Promise<Record<string, unknown>>;
1121
+ personAbout(options: LinkedInPersonRefOptions): Promise<Record<string, unknown>>;
1122
+ personPosts(options: LinkedInPersonPostsOptions): Promise<Record<string, unknown>>;
1123
+ personContact(options: LinkedInPersonContactOptions): Promise<Record<string, unknown>>;
1124
+ company(options: LinkedInCompanyOptions): Promise<Record<string, unknown>>;
1125
+ companyPosts(options: LinkedInCompanyPostsOptions): Promise<Record<string, unknown>>;
1126
+ companyPeople(options: LinkedInCompanyRefOptions): Promise<Record<string, unknown>>;
1127
+ companyJobs(options: LinkedInCompanyRefOptions): Promise<Record<string, unknown>>;
1128
+ searchPeople(options: LinkedInSearchPeopleOptions): Promise<Record<string, unknown>>;
1129
+ searchJobs(options: LinkedInSearchJobsOptions): Promise<Record<string, unknown>>;
1130
+ searchPosts(options: LinkedInSearchPostsOptions): Promise<Record<string, unknown>>;
1131
+ job(options: LinkedInJobOptions): Promise<Record<string, unknown>>;
1132
+ post(options: LinkedInPostOptions): Promise<Record<string, unknown>>;
1133
+ postComments(options: LinkedInPostCommentsOptions): Promise<Record<string, unknown>>;
1134
+ }
1135
+
855
1136
  interface ScavioConfig {
856
1137
  apiKey?: string;
857
1138
  baseUrl?: string;
@@ -872,6 +1153,8 @@ declare class Scavio {
872
1153
  readonly reddit: RedditNamespace;
873
1154
  readonly tiktok: TikTokNamespace;
874
1155
  readonly instagram: InstagramNamespace;
1156
+ readonly twitter: TwitterNamespace;
1157
+ readonly linkedin: LinkedInNamespace;
875
1158
  private readonly apiKey;
876
1159
  private readonly baseUrl;
877
1160
  private readonly timeout;
@@ -931,4 +1214,4 @@ declare class ScavioAPIError extends ScavioError {
931
1214
  constructor(statusCode: number, message: string, responseBody?: Record<string, unknown>);
932
1215
  }
933
1216
 
934
- export { type AmazonProductOptions, type AmazonSearchOptions, BadRequestError, type GoogleAiModeOptions, type GoogleFlightsOptions, type GoogleHotelsDetailOptions, type GoogleHotelsOptions, type GoogleMapsPlaceOptions, type GoogleMapsReviewsOptions, type GoogleMapsSearchOptions, type GoogleNewsOptions, type GoogleSearchOptions, type GoogleShoppingOptions, type GoogleShoppingProductOptions, type GoogleShoppingStoresOptions, type GoogleTrendingOptions, type GoogleTrendsOptions, type InstagramCommentRepliesOptions, type InstagramFollowOptions, type InstagramPostCommentsOptions, type InstagramPostOptions, type InstagramProfileOptions, type InstagramSearchOptions, type InstagramStoriesOptions, type InstagramUserFeedOptions, InsufficientCreditsError, InvalidAPIKeyError, MissingAPIKeyError, NotFoundError, RateLimitError, type RedditPostOptions, type RedditSearchOptions, Scavio, ScavioAPIError, type ScavioConfig, ScavioConnectionError, ScavioError, ScavioTimeoutError, type TikTokCommentRepliesOptions, type TikTokHashtagOptions, type TikTokHashtagVideosOptions, type TikTokProfileOptions, type TikTokSearchUsersOptions, type TikTokSearchVideosOptions, type TikTokUserFollowersOptions, type TikTokUserFollowingsOptions, type TikTokUserPostsOptions, type TikTokVideoCommentsOptions, type TikTokVideoOptions, type WalmartProductOptions, type WalmartSearchOptions, type YouTubeChannelCommunityOptions, type YouTubeChannelOptions, type YouTubeChannelResolveOptions, type YouTubeChannelSearchOptions, type YouTubeChannelShortsOptions, type YouTubeChannelVideosOptions, type YouTubeCommentRepliesOptions, type YouTubeCommentsOptions, type YouTubeMetadataOptions, type YouTubeRelatedOptions, type YouTubeSearchOptions, type YouTubeShortsOptions, type YouTubeStreamsOptions, type YouTubeSuggestionsOptions, type YouTubeTranscriptOptions, type YouTubeVideoOptions };
1217
+ export { type AmazonProductOptions, type AmazonSearchOptions, BadRequestError, type GoogleAiModeOptions, type GoogleFlightsOptions, type GoogleHotelsDetailOptions, type GoogleHotelsOptions, type GoogleMapsPlaceOptions, type GoogleMapsReviewsOptions, type GoogleMapsSearchOptions, type GoogleNewsOptions, type GoogleSearchOptions, type GoogleShoppingOptions, type GoogleShoppingProductOptions, type GoogleShoppingStoresOptions, type GoogleTrendingOptions, type GoogleTrendsOptions, type InstagramCommentRepliesOptions, type InstagramFollowOptions, type InstagramPostCommentsOptions, type InstagramPostOptions, type InstagramProfileOptions, type InstagramSearchOptions, type InstagramStoriesOptions, type InstagramUserFeedOptions, InsufficientCreditsError, InvalidAPIKeyError, type LinkedInCompanyOptions, type LinkedInCompanyPostsOptions, type LinkedInCompanyRefOptions, type LinkedInJobOptions, type LinkedInPersonContactOptions, type LinkedInPersonOptions, type LinkedInPersonPostsOptions, type LinkedInPersonRefOptions, type LinkedInPostCommentsOptions, type LinkedInPostOptions, type LinkedInSearchJobsOptions, type LinkedInSearchPeopleOptions, type LinkedInSearchPostsOptions, MissingAPIKeyError, NotFoundError, RateLimitError, type RedditCommentRepliesOptions, type RedditFeedSort, type RedditPopularOptions, type RedditPostCommentsOptions, type RedditPostOptions, type RedditSearchOptions, type RedditSearchSuggestionsOptions, type RedditSort, type RedditSubredditOptions, type RedditSubredditPostsOptions, type RedditUserFeedOptions, type RedditUserOptions, Scavio, ScavioAPIError, type ScavioConfig, ScavioConnectionError, ScavioError, ScavioTimeoutError, type TikTokCommentRepliesOptions, type TikTokHashtagOptions, type TikTokHashtagVideosOptions, type TikTokProfileOptions, type TikTokSearchUsersOptions, type TikTokSearchVideosOptions, type TikTokUserFollowersOptions, type TikTokUserFollowingsOptions, type TikTokUserPostsOptions, type TikTokVideoCommentsOptions, type TikTokVideoOptions, type TwitterSearchOptions, type TwitterTrendingOptions, type TwitterTweetCommentsOptions, type TwitterTweetOptions, type TwitterTweetRetweetersOptions, type TwitterUserFeedOptions, type TwitterUserOptions, type WalmartProductOptions, type WalmartSearchOptions, type YouTubeChannelCommunityOptions, type YouTubeChannelOptions, type YouTubeChannelResolveOptions, type YouTubeChannelSearchOptions, type YouTubeChannelShortsOptions, type YouTubeChannelVideosOptions, type YouTubeCommentRepliesOptions, type YouTubeCommentsOptions, type YouTubeMetadataOptions, type YouTubeRelatedOptions, type YouTubeSearchOptions, type YouTubeShortsOptions, type YouTubeStreamsOptions, type YouTubeSuggestionsOptions, type YouTubeTranscriptOptions, type YouTubeVideoOptions };
package/dist/index.d.ts CHANGED
@@ -410,6 +410,10 @@ declare class GoogleNamespace {
410
410
  trending(options: GoogleTrendingOptions): Promise<Record<string, unknown>>;
411
411
  }
412
412
 
413
+ /** Comment / feed sort orders. */
414
+ type RedditSort = "HOT" | "NEW" | "TOP" | "BEST" | "CONTROVERSIAL";
415
+ /** Subreddit feed sort orders. */
416
+ type RedditFeedSort = "BEST" | "HOT" | "NEW" | "TOP" | "CONTROVERSIAL" | "RISING";
413
417
  interface RedditSearchOptions {
414
418
  /** Search query (1-500 characters). */
415
419
  query: string;
@@ -421,16 +425,84 @@ interface RedditSearchOptions {
421
425
  cursor?: string;
422
426
  [key: string]: unknown;
423
427
  }
428
+ interface RedditSearchSuggestionsOptions {
429
+ /** Search query (1-500 characters). */
430
+ query: string;
431
+ [key: string]: unknown;
432
+ }
424
433
  interface RedditPostOptions {
434
+ /** Post fullname (t3_...) or bare id. */
435
+ post_id?: string;
425
436
  /** Full Reddit post URL. */
426
- url: string;
437
+ url?: string;
438
+ [key: string]: unknown;
439
+ }
440
+ interface RedditPostCommentsOptions {
441
+ /** Post fullname (t3_...). */
442
+ post_id: string;
443
+ /** Comment sort order (default 'TOP'). */
444
+ sort?: RedditSort;
445
+ /** Pagination cursor from a prior response. */
446
+ cursor?: string;
447
+ [key: string]: unknown;
448
+ }
449
+ interface RedditCommentRepliesOptions {
450
+ /** Post fullname (t3_...). */
451
+ post_id: string;
452
+ /** reply_cursor from a comment in the comments endpoint. */
453
+ cursor: string;
454
+ /** Comment sort order (default 'TOP'). */
455
+ sort?: RedditSort;
456
+ [key: string]: unknown;
457
+ }
458
+ interface RedditSubredditOptions {
459
+ /** Subreddit name (without r/). */
460
+ subreddit: string;
461
+ [key: string]: unknown;
462
+ }
463
+ interface RedditSubredditPostsOptions {
464
+ /** Subreddit name (without r/). */
465
+ subreddit: string;
466
+ /** Feed sort order (default 'HOT'). */
467
+ sort?: RedditFeedSort;
468
+ /** Pagination cursor from a prior response. */
469
+ cursor?: string;
470
+ [key: string]: unknown;
471
+ }
472
+ interface RedditUserOptions {
473
+ /** Redditor username (without u/). */
474
+ username: string;
475
+ [key: string]: unknown;
476
+ }
477
+ interface RedditUserFeedOptions {
478
+ /** Redditor username (without u/). */
479
+ username: string;
480
+ /** Sort order (default 'NEW'). */
481
+ sort?: RedditSort;
482
+ /** Pagination cursor from a prior response. */
483
+ cursor?: string;
484
+ [key: string]: unknown;
485
+ }
486
+ interface RedditPopularOptions {
487
+ /** Pagination cursor from a prior response. */
488
+ cursor?: string;
427
489
  [key: string]: unknown;
428
490
  }
429
491
  declare class RedditNamespace {
430
492
  private client;
431
493
  constructor(client: Scavio);
432
494
  search(options: RedditSearchOptions): Promise<Record<string, unknown>>;
495
+ searchSuggestions(options: RedditSearchSuggestionsOptions): Promise<Record<string, unknown>>;
433
496
  post(options: RedditPostOptions): Promise<Record<string, unknown>>;
497
+ postComments(options: RedditPostCommentsOptions): Promise<Record<string, unknown>>;
498
+ commentReplies(options: RedditCommentRepliesOptions): Promise<Record<string, unknown>>;
499
+ subreddit(options: RedditSubredditOptions): Promise<Record<string, unknown>>;
500
+ subredditPosts(options: RedditSubredditPostsOptions): Promise<Record<string, unknown>>;
501
+ user(options: RedditUserOptions): Promise<Record<string, unknown>>;
502
+ userPosts(options: RedditUserFeedOptions): Promise<Record<string, unknown>>;
503
+ userComments(options: RedditUserFeedOptions): Promise<Record<string, unknown>>;
504
+ popular(options?: RedditPopularOptions): Promise<Record<string, unknown>>;
505
+ trending(): Promise<Record<string, unknown>>;
434
506
  }
435
507
 
436
508
  interface TikTokProfileOptions {
@@ -852,6 +924,215 @@ declare class YouTubeNamespace {
852
924
  streams(options: YouTubeStreamsOptions): Promise<Record<string, unknown>>;
853
925
  }
854
926
 
927
+ interface TwitterSearchOptions {
928
+ /** Search query (1-500 characters). */
929
+ search: string;
930
+ /** Result category (default 'Top'). */
931
+ search_type?: "Top" | "Latest" | "People" | "Photos" | "Videos";
932
+ /** Pagination cursor from a prior response. */
933
+ cursor?: string;
934
+ [key: string]: unknown;
935
+ }
936
+ interface TwitterTweetOptions {
937
+ /** Tweet id. */
938
+ tweet_id: string;
939
+ [key: string]: unknown;
940
+ }
941
+ interface TwitterTweetCommentsOptions {
942
+ /** Tweet id. */
943
+ tweet_id: string;
944
+ /** 'top' (ranked) or 'latest' (chronological); default 'top'. */
945
+ rank?: "top" | "latest";
946
+ /** Pagination cursor from a prior response. */
947
+ cursor?: string;
948
+ [key: string]: unknown;
949
+ }
950
+ interface TwitterTweetRetweetersOptions {
951
+ /** Tweet id. */
952
+ tweet_id: string;
953
+ /** Pagination cursor from a prior response. */
954
+ cursor?: string;
955
+ [key: string]: unknown;
956
+ }
957
+ interface TwitterUserOptions {
958
+ /** A Twitter handle (without the @). */
959
+ screen_name: string;
960
+ [key: string]: unknown;
961
+ }
962
+ interface TwitterUserFeedOptions {
963
+ /** A Twitter handle (without the @). */
964
+ screen_name: string;
965
+ /** Pagination cursor from a prior response. */
966
+ cursor?: string;
967
+ [key: string]: unknown;
968
+ }
969
+ interface TwitterTrendingOptions {
970
+ /** Country name (default 'UnitedStates'). */
971
+ country?: string;
972
+ [key: string]: unknown;
973
+ }
974
+ declare class TwitterNamespace {
975
+ private client;
976
+ constructor(client: Scavio);
977
+ search(options: TwitterSearchOptions): Promise<Record<string, unknown>>;
978
+ tweet(options: TwitterTweetOptions): Promise<Record<string, unknown>>;
979
+ tweetComments(options: TwitterTweetCommentsOptions): Promise<Record<string, unknown>>;
980
+ tweetRetweeters(options: TwitterTweetRetweetersOptions): Promise<Record<string, unknown>>;
981
+ user(options: TwitterUserOptions): Promise<Record<string, unknown>>;
982
+ userTweets(options: TwitterUserFeedOptions): Promise<Record<string, unknown>>;
983
+ userReplies(options: TwitterUserFeedOptions): Promise<Record<string, unknown>>;
984
+ userMedia(options: TwitterUserFeedOptions): Promise<Record<string, unknown>>;
985
+ userFollowers(options: TwitterUserFeedOptions): Promise<Record<string, unknown>>;
986
+ userFollowings(options: TwitterUserFeedOptions): Promise<Record<string, unknown>>;
987
+ trending(options?: TwitterTrendingOptions): Promise<Record<string, unknown>>;
988
+ }
989
+
990
+ interface LinkedInPersonOptions {
991
+ /** Public identifier (vanity handle). */
992
+ username: string;
993
+ /** Include the experiences section (default true server-side). */
994
+ include_experiences?: boolean;
995
+ /** Include the educations section (default true server-side). */
996
+ include_educations?: boolean;
997
+ /** Include the skills section (default true server-side). */
998
+ include_skills?: boolean;
999
+ /** Include the certifications section (default true server-side). */
1000
+ include_certifications?: boolean;
1001
+ /** Include follower and connection counts (default true server-side). */
1002
+ include_follower_and_connection?: boolean;
1003
+ [key: string]: unknown;
1004
+ }
1005
+ interface LinkedInPersonRefOptions {
1006
+ /** Member urn. */
1007
+ urn?: string;
1008
+ /** Public identifier; resolved to a urn if urn is omitted. */
1009
+ username?: string;
1010
+ [key: string]: unknown;
1011
+ }
1012
+ interface LinkedInPersonPostsOptions {
1013
+ /** Member urn. */
1014
+ urn?: string;
1015
+ /** Public identifier; resolved to a urn if urn is omitted. */
1016
+ username?: string;
1017
+ /** Pagination cursor from a prior response. */
1018
+ cursor?: string;
1019
+ [key: string]: unknown;
1020
+ }
1021
+ interface LinkedInPersonContactOptions {
1022
+ /** Public identifier (vanity handle). */
1023
+ username: string;
1024
+ [key: string]: unknown;
1025
+ }
1026
+ interface LinkedInCompanyOptions {
1027
+ /** Company universal name (slug) or LinkedIn company URL. */
1028
+ company: string;
1029
+ [key: string]: unknown;
1030
+ }
1031
+ interface LinkedInCompanyPostsOptions {
1032
+ /** Company universal name (slug) or LinkedIn company URL. */
1033
+ company: string;
1034
+ /** Pagination cursor from a prior response. */
1035
+ cursor?: string;
1036
+ /** Results per page (1-100). */
1037
+ count?: number;
1038
+ [key: string]: unknown;
1039
+ }
1040
+ interface LinkedInCompanyRefOptions {
1041
+ /** Numeric company id. */
1042
+ company_id?: string;
1043
+ /** Company slug/url; resolved to a company_id if company_id is omitted. */
1044
+ company?: string;
1045
+ /** Pagination cursor from a prior response. */
1046
+ cursor?: string;
1047
+ [key: string]: unknown;
1048
+ }
1049
+ interface LinkedInSearchPeopleOptions {
1050
+ /** Name to search for. */
1051
+ search?: string;
1052
+ /** Job title filter. */
1053
+ title?: string;
1054
+ /** Company filter. */
1055
+ company?: string;
1056
+ /** School filter. */
1057
+ school?: string;
1058
+ /** A geo name or id to filter by. */
1059
+ location?: string;
1060
+ /** Page cursor (page number). */
1061
+ cursor?: string;
1062
+ [key: string]: unknown;
1063
+ }
1064
+ interface LinkedInSearchJobsOptions {
1065
+ /** Search query (1-500 characters). */
1066
+ search: string;
1067
+ /** Page cursor (page number). */
1068
+ cursor?: string;
1069
+ /** Date-posted filter. */
1070
+ date_posted?: string;
1071
+ /** Geo code to filter by. */
1072
+ geocode?: string;
1073
+ /** Experience level filter. */
1074
+ experience_level?: string;
1075
+ /** Remote filter. */
1076
+ remote?: string;
1077
+ /** Job type filter. */
1078
+ job_type?: string;
1079
+ [key: string]: unknown;
1080
+ }
1081
+ interface LinkedInSearchPostsOptions {
1082
+ /** Search query (1-500 characters). */
1083
+ search: string;
1084
+ /** Page cursor (page number). */
1085
+ cursor?: string;
1086
+ /** Date-posted filter. */
1087
+ date_posted?: string;
1088
+ /** Sort order. */
1089
+ sort_by?: string;
1090
+ /** Content type filter. */
1091
+ content_type?: string;
1092
+ [key: string]: unknown;
1093
+ }
1094
+ interface LinkedInJobOptions {
1095
+ /** Job listing id. */
1096
+ job_id: string;
1097
+ /** Include the required-skills section. */
1098
+ include_skills?: boolean;
1099
+ [key: string]: unknown;
1100
+ }
1101
+ interface LinkedInPostOptions {
1102
+ /** Post id or activity urn. */
1103
+ post_id: string;
1104
+ [key: string]: unknown;
1105
+ }
1106
+ interface LinkedInPostCommentsOptions {
1107
+ /** Post id or activity urn. */
1108
+ post_id: string;
1109
+ /** Pagination cursor from a prior response. */
1110
+ cursor?: string;
1111
+ /** Comment sort order. */
1112
+ sort_order?: "relevance" | "recent";
1113
+ /** Post type. */
1114
+ post_type?: "activity" | "ugc";
1115
+ [key: string]: unknown;
1116
+ }
1117
+ declare class LinkedInNamespace {
1118
+ private client;
1119
+ constructor(client: Scavio);
1120
+ person(options: LinkedInPersonOptions): Promise<Record<string, unknown>>;
1121
+ personAbout(options: LinkedInPersonRefOptions): Promise<Record<string, unknown>>;
1122
+ personPosts(options: LinkedInPersonPostsOptions): Promise<Record<string, unknown>>;
1123
+ personContact(options: LinkedInPersonContactOptions): Promise<Record<string, unknown>>;
1124
+ company(options: LinkedInCompanyOptions): Promise<Record<string, unknown>>;
1125
+ companyPosts(options: LinkedInCompanyPostsOptions): Promise<Record<string, unknown>>;
1126
+ companyPeople(options: LinkedInCompanyRefOptions): Promise<Record<string, unknown>>;
1127
+ companyJobs(options: LinkedInCompanyRefOptions): Promise<Record<string, unknown>>;
1128
+ searchPeople(options: LinkedInSearchPeopleOptions): Promise<Record<string, unknown>>;
1129
+ searchJobs(options: LinkedInSearchJobsOptions): Promise<Record<string, unknown>>;
1130
+ searchPosts(options: LinkedInSearchPostsOptions): Promise<Record<string, unknown>>;
1131
+ job(options: LinkedInJobOptions): Promise<Record<string, unknown>>;
1132
+ post(options: LinkedInPostOptions): Promise<Record<string, unknown>>;
1133
+ postComments(options: LinkedInPostCommentsOptions): Promise<Record<string, unknown>>;
1134
+ }
1135
+
855
1136
  interface ScavioConfig {
856
1137
  apiKey?: string;
857
1138
  baseUrl?: string;
@@ -872,6 +1153,8 @@ declare class Scavio {
872
1153
  readonly reddit: RedditNamespace;
873
1154
  readonly tiktok: TikTokNamespace;
874
1155
  readonly instagram: InstagramNamespace;
1156
+ readonly twitter: TwitterNamespace;
1157
+ readonly linkedin: LinkedInNamespace;
875
1158
  private readonly apiKey;
876
1159
  private readonly baseUrl;
877
1160
  private readonly timeout;
@@ -931,4 +1214,4 @@ declare class ScavioAPIError extends ScavioError {
931
1214
  constructor(statusCode: number, message: string, responseBody?: Record<string, unknown>);
932
1215
  }
933
1216
 
934
- export { type AmazonProductOptions, type AmazonSearchOptions, BadRequestError, type GoogleAiModeOptions, type GoogleFlightsOptions, type GoogleHotelsDetailOptions, type GoogleHotelsOptions, type GoogleMapsPlaceOptions, type GoogleMapsReviewsOptions, type GoogleMapsSearchOptions, type GoogleNewsOptions, type GoogleSearchOptions, type GoogleShoppingOptions, type GoogleShoppingProductOptions, type GoogleShoppingStoresOptions, type GoogleTrendingOptions, type GoogleTrendsOptions, type InstagramCommentRepliesOptions, type InstagramFollowOptions, type InstagramPostCommentsOptions, type InstagramPostOptions, type InstagramProfileOptions, type InstagramSearchOptions, type InstagramStoriesOptions, type InstagramUserFeedOptions, InsufficientCreditsError, InvalidAPIKeyError, MissingAPIKeyError, NotFoundError, RateLimitError, type RedditPostOptions, type RedditSearchOptions, Scavio, ScavioAPIError, type ScavioConfig, ScavioConnectionError, ScavioError, ScavioTimeoutError, type TikTokCommentRepliesOptions, type TikTokHashtagOptions, type TikTokHashtagVideosOptions, type TikTokProfileOptions, type TikTokSearchUsersOptions, type TikTokSearchVideosOptions, type TikTokUserFollowersOptions, type TikTokUserFollowingsOptions, type TikTokUserPostsOptions, type TikTokVideoCommentsOptions, type TikTokVideoOptions, type WalmartProductOptions, type WalmartSearchOptions, type YouTubeChannelCommunityOptions, type YouTubeChannelOptions, type YouTubeChannelResolveOptions, type YouTubeChannelSearchOptions, type YouTubeChannelShortsOptions, type YouTubeChannelVideosOptions, type YouTubeCommentRepliesOptions, type YouTubeCommentsOptions, type YouTubeMetadataOptions, type YouTubeRelatedOptions, type YouTubeSearchOptions, type YouTubeShortsOptions, type YouTubeStreamsOptions, type YouTubeSuggestionsOptions, type YouTubeTranscriptOptions, type YouTubeVideoOptions };
1217
+ export { type AmazonProductOptions, type AmazonSearchOptions, BadRequestError, type GoogleAiModeOptions, type GoogleFlightsOptions, type GoogleHotelsDetailOptions, type GoogleHotelsOptions, type GoogleMapsPlaceOptions, type GoogleMapsReviewsOptions, type GoogleMapsSearchOptions, type GoogleNewsOptions, type GoogleSearchOptions, type GoogleShoppingOptions, type GoogleShoppingProductOptions, type GoogleShoppingStoresOptions, type GoogleTrendingOptions, type GoogleTrendsOptions, type InstagramCommentRepliesOptions, type InstagramFollowOptions, type InstagramPostCommentsOptions, type InstagramPostOptions, type InstagramProfileOptions, type InstagramSearchOptions, type InstagramStoriesOptions, type InstagramUserFeedOptions, InsufficientCreditsError, InvalidAPIKeyError, type LinkedInCompanyOptions, type LinkedInCompanyPostsOptions, type LinkedInCompanyRefOptions, type LinkedInJobOptions, type LinkedInPersonContactOptions, type LinkedInPersonOptions, type LinkedInPersonPostsOptions, type LinkedInPersonRefOptions, type LinkedInPostCommentsOptions, type LinkedInPostOptions, type LinkedInSearchJobsOptions, type LinkedInSearchPeopleOptions, type LinkedInSearchPostsOptions, MissingAPIKeyError, NotFoundError, RateLimitError, type RedditCommentRepliesOptions, type RedditFeedSort, type RedditPopularOptions, type RedditPostCommentsOptions, type RedditPostOptions, type RedditSearchOptions, type RedditSearchSuggestionsOptions, type RedditSort, type RedditSubredditOptions, type RedditSubredditPostsOptions, type RedditUserFeedOptions, type RedditUserOptions, Scavio, ScavioAPIError, type ScavioConfig, ScavioConnectionError, ScavioError, ScavioTimeoutError, type TikTokCommentRepliesOptions, type TikTokHashtagOptions, type TikTokHashtagVideosOptions, type TikTokProfileOptions, type TikTokSearchUsersOptions, type TikTokSearchVideosOptions, type TikTokUserFollowersOptions, type TikTokUserFollowingsOptions, type TikTokUserPostsOptions, type TikTokVideoCommentsOptions, type TikTokVideoOptions, type TwitterSearchOptions, type TwitterTrendingOptions, type TwitterTweetCommentsOptions, type TwitterTweetOptions, type TwitterTweetRetweetersOptions, type TwitterUserFeedOptions, type TwitterUserOptions, type WalmartProductOptions, type WalmartSearchOptions, type YouTubeChannelCommunityOptions, type YouTubeChannelOptions, type YouTubeChannelResolveOptions, type YouTubeChannelSearchOptions, type YouTubeChannelShortsOptions, type YouTubeChannelVideosOptions, type YouTubeCommentRepliesOptions, type YouTubeCommentsOptions, type YouTubeMetadataOptions, type YouTubeRelatedOptions, type YouTubeSearchOptions, type YouTubeShortsOptions, type YouTubeStreamsOptions, type YouTubeSuggestionsOptions, type YouTubeTranscriptOptions, type YouTubeVideoOptions };