wsper-js 0.1.1 → 0.1.2-wc2

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.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  import { CanvasRenderingContext2D, Canvas } from 'canvas';
2
+ import EventEmitter from 'node:events';
2
3
 
3
4
  interface WsperCredentials {
4
5
  cookie?: string;
@@ -6,18 +7,23 @@ interface WsperCredentials {
6
7
  bearerToken?: string;
7
8
  apiKey?: string;
8
9
  userAgent?: string;
10
+ bxUa?: string;
11
+ bxUmidtoken?: string;
9
12
  }
10
- type WsperPlatform = "instagram" | "youtube" | "spotify" | "twitter" | "threads" | "pinterest";
13
+ type WsperCredentialsInput = WsperCredentials | string;
14
+ type WsperPlatform = "instagram" | "youtube" | "spotify" | "twitter" | "threads" | "pinterest" | "cai" | "xiaohongshu" | "terabox" | "gdrive" | "soundcloud" | "pixiv" | "pubgmobile" | "genshinimpact" | "foreign-news" | "tiktok";
11
15
  declare class CredentialsManager {
12
16
  #private;
13
17
  constructor(override?: WsperCredentials, defaults?: WsperCredentials);
14
- static forPlatform(platform: WsperPlatform, override?: WsperCredentials, defaults?: Record<string, unknown>): CredentialsManager;
18
+ static forPlatform(platform: WsperPlatform, override?: WsperCredentialsInput, defaults?: Record<string, unknown>): CredentialsManager;
15
19
  resolve(key: keyof WsperCredentials): string | undefined;
16
20
  get cookie(): string | undefined;
17
21
  get csrfToken(): string | undefined;
18
22
  get bearerToken(): string | undefined;
19
23
  get apiKey(): string | undefined;
20
24
  get userAgent(): string | undefined;
25
+ get bxUa(): string | undefined;
26
+ get bxUmidtoken(): string | undefined;
21
27
  hasCredential(key: keyof WsperCredentials): boolean;
22
28
  }
23
29
 
@@ -88,9 +94,11 @@ interface QueueOptions {
88
94
  intervalCap?: number;
89
95
  minDelayMs?: number;
90
96
  maxDelayMs?: number;
97
+ timeoutMs?: number;
98
+ retries?: number;
91
99
  }
92
100
  interface ScraperOptions {
93
- credentials?: WsperCredentials;
101
+ credentials?: WsperCredentialsInput;
94
102
  debug?: boolean;
95
103
  http?: HttpOptions;
96
104
  queue?: QueueOptions;
@@ -132,6 +140,8 @@ declare class RequestQueue {
132
140
  constructor(options?: QueueOptions);
133
141
  get size(): number;
134
142
  get active(): number;
143
+ get timeoutMs(): number | undefined;
144
+ get retries(): number | undefined;
135
145
  add<T>(task: () => Promise<T>): Promise<T>;
136
146
  onIdle(): Promise<void>;
137
147
  pause(): void;
@@ -139,6 +149,18 @@ declare class RequestQueue {
139
149
  clear(): void;
140
150
  }
141
151
 
152
+ declare class QueueRegistry {
153
+ #private;
154
+ static shared(): QueueRegistry;
155
+ get(key: string, options?: QueueOptions): RequestQueue;
156
+ has(key: string): boolean;
157
+ keys(): string[];
158
+ delete(key: string): boolean;
159
+ clear(): void;
160
+ }
161
+ declare function queueKey(platform: string, credential?: string): string;
162
+ declare function credentialFingerprint(credential: string): string;
163
+
142
164
  interface HttpRequestOptions extends HttpOptions {
143
165
  method?: "GET" | "POST" | "PUT" | "PATCH" | "DELETE" | "HEAD";
144
166
  body?: RequestBody;
@@ -1762,6 +1784,7 @@ interface SpotifyDownloadPostInput {
1762
1784
  outputDir: string;
1763
1785
  audioFormat?: SpotifyDownloadAudioFormat | undefined;
1764
1786
  ytdlpPath?: string | undefined;
1787
+ cookiesPath?: string | undefined;
1765
1788
  includeMetadata?: boolean;
1766
1789
  }
1767
1790
  interface SpotifyDownloadProfileInput {
@@ -1773,6 +1796,7 @@ interface SpotifyDownloadProfileInput {
1773
1796
  limit?: number;
1774
1797
  audioFormat?: SpotifyDownloadAudioFormat | undefined;
1775
1798
  ytdlpPath?: string | undefined;
1799
+ cookiesPath?: string | undefined;
1776
1800
  includeMetadata?: boolean;
1777
1801
  }
1778
1802
 
@@ -1850,6 +1874,7 @@ interface YtDlpOptions {
1850
1874
  outputDir?: string | undefined;
1851
1875
  audioFormat?: "mp3" | "m4a" | "opus" | "flac" | "wav" | undefined;
1852
1876
  ytdlpPath?: string | undefined;
1877
+ cookiesPath?: string | undefined;
1853
1878
  }
1854
1879
  declare function downloadWithYtDlp(params: YtDlpOptions): Promise<string>;
1855
1880
 
@@ -1923,6 +1948,7 @@ interface YouTubeScraperOptions {
1923
1948
  outputDir?: string;
1924
1949
  searchLimit?: number;
1925
1950
  pythonPath?: string;
1951
+ cookiesPath?: string;
1926
1952
  }
1927
1953
  interface YoutubeThumbnail {
1928
1954
  url: string;
@@ -2245,7 +2271,7 @@ interface ThreadsDownloadPostInput {
2245
2271
  includeMetadata?: boolean;
2246
2272
  }
2247
2273
  interface ThreadsScraperOptions {
2248
- credentials?: WsperCredentials;
2274
+ credentials?: WsperCredentialsInput;
2249
2275
  debug?: boolean;
2250
2276
  http?: HttpOptions;
2251
2277
  queue?: QueueOptions;
@@ -2358,7 +2384,7 @@ interface PinterestDownloadPinInput {
2358
2384
  includeStoryPages?: boolean;
2359
2385
  }
2360
2386
  interface PinterestScraperOptions {
2361
- credentials?: WsperCredentials;
2387
+ credentials?: WsperCredentialsInput;
2362
2388
  debug?: boolean;
2363
2389
  http?: HttpOptions;
2364
2390
  queue?: QueueOptions;
@@ -2549,7 +2575,7 @@ interface TwitterProfileDownloadResult {
2549
2575
  assets: TwitterProfileDownloadAsset[];
2550
2576
  }
2551
2577
  interface TwitterScraperOptions {
2552
- credentials?: WsperCredentials;
2578
+ credentials?: WsperCredentialsInput;
2553
2579
  debug?: boolean;
2554
2580
  http?: HttpOptions;
2555
2581
  queue?: QueueOptions;
@@ -2739,74 +2765,2520 @@ declare class WwCharScraper {
2739
2765
  declare function parseWwCharHtml(html: string, pageUrl: string, slug: string): WwCharResult;
2740
2766
  declare function toWwCharSlug(name: string): string;
2741
2767
 
2742
- interface WsperPlatformCredentialsConfig {
2743
- instagram?: WsperCredentials | undefined;
2744
- pinterest?: WsperCredentials | undefined;
2745
- threads?: WsperCredentials | undefined;
2746
- twitter?: WsperCredentials | undefined;
2768
+ interface DonghubSearchItem {
2769
+ title?: string | undefined;
2770
+ url?: string | undefined;
2771
+ image?: string | undefined;
2772
+ type?: string | undefined;
2773
+ status?: string | undefined;
2774
+ subtitle?: string | undefined;
2775
+ hot: boolean;
2747
2776
  }
2748
- interface WsperScraperConfig {
2749
- debug?: boolean | undefined;
2750
- spotifyCredentials?: SpotifyCredentialsConfig | undefined;
2751
- credentials?: WsperPlatformCredentialsConfig | undefined;
2752
- http?: HttpOptions | undefined;
2753
- queue?: QueueOptions | undefined;
2754
- youtube?: YouTubeScraperOptions | undefined;
2777
+ interface DonghubSearchResult {
2778
+ query: string;
2779
+ results: DonghubSearchItem[];
2755
2780
  }
2756
- declare class WsperScraper {
2757
- readonly spotify: SpotifyScraper;
2758
- readonly twitter: TwitterScraper;
2759
- readonly threads: ThreadsScraper;
2760
- readonly instagram: InstagramScraper;
2761
- readonly pinterest: PinterestScraper;
2762
- readonly youtube: YouTubeScraper;
2763
- constructor(config?: WsperScraperConfig);
2781
+ interface DonghubEpisode {
2782
+ episode?: string | undefined;
2783
+ title?: string | undefined;
2784
+ url?: string | undefined;
2785
+ releaseDate?: string | undefined;
2786
+ subtitle?: string | undefined;
2787
+ }
2788
+ interface DonghubDetail {
2789
+ title?: string | undefined;
2790
+ url: string;
2791
+ image?: string | undefined;
2792
+ alternative?: string | undefined;
2793
+ status?: string | undefined;
2794
+ network?: string | undefined;
2795
+ released?: string | undefined;
2796
+ duration?: string | undefined;
2797
+ country?: string | undefined;
2798
+ type?: string | undefined;
2799
+ episodes?: string | undefined;
2800
+ updated?: string | undefined;
2801
+ genres: string[];
2802
+ synopsis?: string | undefined;
2803
+ episodeList: DonghubEpisode[];
2804
+ }
2805
+ interface DonghubScraperOptions {
2806
+ baseUrl?: string;
2807
+ debug?: boolean;
2808
+ http?: HttpOptions;
2809
+ queue?: QueueOptions;
2764
2810
  }
2765
2811
 
2766
- declare function sleep(ms: number): Promise<void>;
2812
+ declare class DonghubScraper {
2813
+ #private;
2814
+ constructor(options?: DonghubScraperOptions);
2815
+ enableLogs(): this;
2816
+ disableLogs(): this;
2817
+ search(query: string): Promise<WsperResponse<DonghubSearchResult>>;
2818
+ getDetail(url: string): Promise<WsperResponse<DonghubDetail>>;
2819
+ }
2767
2820
 
2768
- declare function getDefaultUserAgent(): string;
2769
- declare function getRandomUserAgent(): string;
2821
+ interface LikeeVideoInfo {
2822
+ thumbnail?: string | undefined;
2823
+ title?: string | undefined;
2824
+ playUrl?: string | undefined;
2825
+ pageUrl: string;
2826
+ }
2827
+ interface LikeeScraperOptions {
2828
+ debug?: boolean;
2829
+ http?: HttpOptions;
2830
+ queue?: QueueOptions;
2831
+ }
2770
2832
 
2771
- interface BrowserHeaderProfile {
2772
- userAgent: string;
2773
- headers: Record<string, string>;
2833
+ declare class LikeeScraper {
2834
+ #private;
2835
+ constructor(options?: LikeeScraperOptions);
2836
+ enableLogs(): this;
2837
+ disableLogs(): this;
2838
+ getInfo(url: string): Promise<WsperResponse<LikeeVideoInfo>>;
2774
2839
  }
2775
- declare function getDefaultBrowserHeaderProfile(): BrowserHeaderProfile;
2776
- declare function getRandomBrowserHeaderProfile(): BrowserHeaderProfile;
2777
2840
 
2778
- declare function assertNonEmptyString(value: unknown, name: string): string;
2779
- declare function assertSafeHttpUrl(input: unknown, options?: {
2780
- allowPrivateNetwork?: boolean;
2781
- }): URL;
2782
- declare function clampInteger(value: number, min: number, max: number): number;
2783
- declare function isRetryableHttpError(error: unknown): boolean;
2841
+ declare function parseLikeeHtml(html: string, pageUrl: string): LikeeVideoInfo;
2784
2842
 
2785
- declare function normalizeUrl(input: string): string;
2786
- declare function resolveUrl(base: string | URL, path: string): URL;
2843
+ interface SfileMetadata {
2844
+ fileName?: string;
2845
+ fileSize?: string;
2846
+ authorName?: string;
2847
+ uploadDate?: string;
2848
+ downloadCount?: number;
2849
+ pageUrl: string;
2850
+ }
2851
+ interface SfileScraperOptions {
2852
+ debug?: boolean;
2853
+ http?: HttpOptions;
2854
+ queue?: QueueOptions;
2855
+ }
2787
2856
 
2788
- declare function zenFetchSource(url: string): Promise<string>;
2789
- declare function zenWafSession(url: string): Promise<{
2790
- cookie: string;
2791
- headers: Record<string, string>;
2792
- }>;
2857
+ declare class SfileScraper {
2858
+ #private;
2859
+ constructor(options?: SfileScraperOptions);
2860
+ enableLogs(): this;
2861
+ disableLogs(): this;
2862
+ getMetadata(url: string): Promise<WsperResponse<SfileMetadata>>;
2863
+ }
2793
2864
 
2794
- interface BinaryResolverOptions {
2795
- pythonPath?: string;
2865
+ declare function parseSfileHtml(html: string, pageUrl: string): SfileMetadata;
2866
+
2867
+ interface TiktokAuthor {
2868
+ id: string;
2869
+ uniqueId: string;
2870
+ nickname: string;
2871
+ avatar?: string | undefined;
2872
+ signature?: string | undefined;
2873
+ verified?: boolean | undefined;
2796
2874
  }
2797
- interface ParsedCommand {
2798
- command: string;
2799
- prefixArgs: string[];
2875
+ interface TiktokVideo {
2876
+ id: string;
2877
+ description: string;
2878
+ createdAt: string;
2879
+ height: number;
2880
+ width: number;
2881
+ duration: number;
2882
+ resolution: string;
2883
+ shareCount: number;
2884
+ likesCount: number;
2885
+ commentCount: number;
2886
+ playCount: number;
2887
+ downloadUrl: string;
2888
+ cover?: string | undefined;
2889
+ playUrl?: string | undefined;
2890
+ format?: string | undefined;
2891
+ author?: TiktokAuthor | undefined;
2892
+ videoUrl: string;
2800
2893
  }
2801
- declare function parseCommandString(cmd: string): ParsedCommand;
2802
- declare function resolveYtDlp(override?: string, options?: BinaryResolverOptions): Promise<string>;
2803
- declare function resolveFfmpeg(override?: string, options?: BinaryResolverOptions): Promise<string>;
2804
- declare function resolveFfprobe(override?: string, options?: BinaryResolverOptions): Promise<string>;
2805
- interface ResolvedBinaries {
2806
- ytdlpPath: string;
2807
- ffmpegPath: string;
2808
- ffprobePath: string;
2894
+ interface TiktokUser {
2895
+ id: string;
2896
+ uniqueId: string;
2897
+ nickname: string;
2898
+ avatar?: string | undefined;
2899
+ signature?: string | undefined;
2900
+ verified: boolean;
2901
+ secretUid?: string | undefined;
2902
+ bioLink?: string | undefined;
2903
+ privateAccount: boolean;
2904
+ followers: number;
2905
+ following: number;
2906
+ likes: number;
2907
+ videoCount: number;
2809
2908
  }
2810
- declare function resolveAllBinaries(overrides?: Partial<ResolvedBinaries>, options?: BinaryResolverOptions): Promise<ResolvedBinaries>;
2909
+ interface TiktokSearchResult {
2910
+ videos: TiktokVideo[];
2911
+ total: number;
2912
+ cursor: string;
2913
+ hasMore: boolean;
2914
+ }
2915
+ interface TiktokUserSearchResult {
2916
+ id: string;
2917
+ uniqueId: string;
2918
+ nickname: string;
2919
+ avatar?: string | undefined;
2920
+ signature?: string | undefined;
2921
+ verified: boolean;
2922
+ followers: number;
2923
+ following: number;
2924
+ videoCount: number;
2925
+ }
2926
+ interface TiktokScraperOptions {
2927
+ debug?: boolean;
2928
+ http?: HttpOptions;
2929
+ queue?: QueueOptions;
2930
+ credentials?: WsperCredentialsInput;
2931
+ }
2932
+
2933
+ declare class TiktokScraper {
2934
+ #private;
2935
+ constructor(options?: TiktokScraperOptions);
2936
+ enableLogs(): this;
2937
+ disableLogs(): this;
2938
+ getVideo(url: string): Promise<WsperResponse<TiktokVideo>>;
2939
+ getVideoDirect(url: string): Promise<WsperResponse<TiktokVideo>>;
2940
+ getUser(username: string): Promise<WsperResponse<TiktokUser>>;
2941
+ getUserPosts(username: string, count?: number): Promise<WsperResponse<TiktokVideo[]>>;
2942
+ searchVideos(query: string, count?: number): Promise<WsperResponse<TiktokSearchResult>>;
2943
+ searchUsers(query: string, count?: number): Promise<WsperResponse<TiktokUserSearchResult[]>>;
2944
+ }
2945
+
2946
+ declare function parseTikwmVideo(raw: unknown, resolveUrl?: (u: string) => string): TiktokVideo;
2947
+ declare function parseTikwmUser(raw: unknown): TiktokUser;
2948
+ declare function parseTikwmUserSearchResult(raw: unknown): TiktokUserSearchResult;
2949
+ declare function parseDirectTiktokVideo(rawHtml: string): TiktokVideo;
2950
+
2951
+ declare const TIKWM_VIDEO_API = "https://www.tikwm.com/api/";
2952
+ declare const TIKWM_USER_API = "https://www.tikwm.com/api/user/info";
2953
+ declare const TIKWM_USER_POSTS = "https://www.tikwm.com/api/user/posts";
2954
+ declare const TIKWM_FEED_SEARCH = "https://www.tikwm.com/api/feed/search";
2955
+ declare const TIKWM_USER_SEARCH = "https://www.tikwm.com/api/user/search";
2956
+ declare function resolveTikwmUrl(url: string): string;
2957
+ declare function buildVideoApiBody(tiktokUrl: string): URLSearchParams;
2958
+ declare function buildUserInfoBody(username: string): URLSearchParams;
2959
+ declare function buildUserPostsBody(username: string, count: number): URLSearchParams;
2960
+ declare function buildFeedSearchBody(keywords: string, count: number): URLSearchParams;
2961
+ declare function buildUserSearchBody(keyword: string, count: number): URLSearchParams;
2962
+
2963
+ interface AioScraperOptions extends ScraperOptions {
2964
+ baseUrl?: string | undefined;
2965
+ }
2966
+ interface AioMedia {
2967
+ url: string;
2968
+ quality: string;
2969
+ type: string;
2970
+ ext: string;
2971
+ size?: string | undefined;
2972
+ }
2973
+ interface AioResult {
2974
+ title?: string | undefined;
2975
+ thumbnail?: string | undefined;
2976
+ duration?: string | undefined;
2977
+ source?: string | undefined;
2978
+ medias: AioMedia[];
2979
+ }
2980
+
2981
+ declare class AioScraper {
2982
+ #private;
2983
+ constructor(options?: AioScraperOptions);
2984
+ enableLogs(): this;
2985
+ disableLogs(): this;
2986
+ download(url: string): Promise<WsperResponse<AioResult>>;
2987
+ }
2988
+
2989
+ declare function parseAioResponse(raw: unknown): AioResult;
2990
+
2991
+ interface DownrScraperOptions extends ScraperOptions {
2992
+ baseUrl?: string | undefined;
2993
+ }
2994
+ interface DownrMedia {
2995
+ url: string;
2996
+ quality: string;
2997
+ formattedSize?: string | undefined;
2998
+ extension: string;
2999
+ type: string;
3000
+ }
3001
+ interface DownrResult {
3002
+ url?: string | undefined;
3003
+ title?: string | undefined;
3004
+ author?: string | undefined;
3005
+ duration?: string | undefined;
3006
+ thumbnail?: string | undefined;
3007
+ medias: DownrMedia[];
3008
+ }
3009
+
3010
+ declare class DownrScraper {
3011
+ #private;
3012
+ constructor(options?: DownrScraperOptions);
3013
+ enableLogs(): this;
3014
+ disableLogs(): this;
3015
+ getVideo(url: string): Promise<WsperResponse<DownrResult>>;
3016
+ }
3017
+
3018
+ declare function parseDownrResponse(raw: unknown): DownrResult;
3019
+
3020
+ interface FacebookScraperOptions extends ScraperOptions {
3021
+ baseUrl?: string | undefined;
3022
+ mbasicUrl?: string | undefined;
3023
+ }
3024
+ interface FacebookUserProfile {
3025
+ id?: string | undefined;
3026
+ name: string;
3027
+ username?: string | undefined;
3028
+ profileUrl: string;
3029
+ profilePicUrl?: string | undefined;
3030
+ bio?: string | undefined;
3031
+ followersCount?: number | undefined;
3032
+ }
3033
+ interface FacebookPostDetail {
3034
+ id?: string | undefined;
3035
+ url: string;
3036
+ text: string;
3037
+ authorName?: string | undefined;
3038
+ authorUrl?: string | undefined;
3039
+ likesCount: number;
3040
+ commentsCount: number;
3041
+ sharesCount: number;
3042
+ hasImage: boolean;
3043
+ mediaUrls: string[];
3044
+ thumbnailUrl?: string | undefined;
3045
+ }
3046
+ interface FacebookDownloadResult {
3047
+ url: string;
3048
+ buffer?: Buffer | undefined;
3049
+ title?: string | undefined;
3050
+ }
3051
+
3052
+ declare class FacebookScraper {
3053
+ #private;
3054
+ constructor(options?: FacebookScraperOptions);
3055
+ enableLogs(): this;
3056
+ disableLogs(): this;
3057
+ getUserProfile(usernameOrId: string): Promise<WsperResponse<FacebookUserProfile>>;
3058
+ getPostDetail(url: string): Promise<WsperResponse<FacebookPostDetail>>;
3059
+ downloadImage(url: string): Promise<WsperResponse<FacebookDownloadResult>>;
3060
+ }
3061
+
3062
+ declare function parseFacebookUserProfile(html: string, pageUrl: string): FacebookUserProfile;
3063
+ declare function parseFacebookPostDetail(html: string, pageUrl: string): FacebookPostDetail;
3064
+
3065
+ interface FaceswapV2ScraperOptions extends ScraperOptions {
3066
+ baseUrl?: string | undefined;
3067
+ }
3068
+ interface FaceswapV2Result {
3069
+ url: string;
3070
+ requestId?: string | undefined;
3071
+ }
3072
+
3073
+ declare class FaceswapV2Scraper {
3074
+ #private;
3075
+ constructor(options?: FaceswapV2ScraperOptions & {
3076
+ maxPollAttempts?: number;
3077
+ pollIntervalMs?: number;
3078
+ });
3079
+ enableLogs(): this;
3080
+ disableLogs(): this;
3081
+ swap(targetImageUrl: string, targetFaceUrl: string): Promise<WsperResponse<FaceswapV2Result>>;
3082
+ }
3083
+
3084
+ declare function parseFaceswapV2CreateResponse(raw: unknown): string;
3085
+ declare function parseFaceswapV2PollResponse(raw: unknown, targetImageUrl: string, targetFaceUrl: string): string | null;
3086
+
3087
+ interface NanoBananaScraperOptions extends ScraperOptions {
3088
+ baseUrl?: string | undefined;
3089
+ appId?: string | undefined;
3090
+ uId?: string | undefined;
3091
+ }
3092
+ interface NanoBananaResult {
3093
+ resultUrl: string;
3094
+ }
3095
+
3096
+ declare class NanoBananaScraper {
3097
+ #private;
3098
+ constructor(options?: NanoBananaScraperOptions & {
3099
+ maxPollAttempts?: number;
3100
+ pollIntervalMs?: number;
3101
+ });
3102
+ enableLogs(): this;
3103
+ disableLogs(): this;
3104
+ edit(buffer: Buffer, prompt: string): Promise<WsperResponse<NanoBananaResult>>;
3105
+ }
3106
+
3107
+ declare function genCryptoHeaders(type: string, appId: string, uId: string, fp?: string): {
3108
+ fp: string;
3109
+ fp1: string;
3110
+ "x-guide": string;
3111
+ "x-sign": string;
3112
+ "x-code": string;
3113
+ };
3114
+ declare function parseNanoBananaUploadResponse(raw: unknown): {
3115
+ path: string;
3116
+ };
3117
+ declare function parseNanoBananaCreateResponse(raw: unknown): string;
3118
+ declare function parseNanoBananaPollResponse(raw: unknown): {
3119
+ status: number;
3120
+ resultImage?: string | undefined;
3121
+ };
3122
+
3123
+ interface RemovebgScraperOptions extends ScraperOptions {
3124
+ baseUrl?: string | undefined;
3125
+ }
3126
+ interface RemovebgResult {
3127
+ buffer: Buffer;
3128
+ }
3129
+
3130
+ declare class RemovebgScraper {
3131
+ #private;
3132
+ constructor(options?: RemovebgScraperOptions);
3133
+ enableLogs(): this;
3134
+ disableLogs(): this;
3135
+ remove(buffer: Buffer): Promise<WsperResponse<RemovebgResult>>;
3136
+ }
3137
+
3138
+ declare function parseRemovebgResponse(data: unknown): Buffer;
3139
+
3140
+ interface TextReplaceScraperOptions extends ScraperOptions {
3141
+ uploadBaseUrl?: string | undefined;
3142
+ eraserBaseUrl?: string | undefined;
3143
+ }
3144
+ interface TextReplaceResult {
3145
+ outputUrl: string;
3146
+ }
3147
+
3148
+ declare class TextReplaceScraper {
3149
+ #private;
3150
+ constructor(options?: TextReplaceScraperOptions & {
3151
+ maxPollAttempts?: number;
3152
+ pollIntervalMs?: number;
3153
+ });
3154
+ enableLogs(): this;
3155
+ disableLogs(): this;
3156
+ replace(buffer: Buffer, originalText: string, replaceText: string, fileName?: string): Promise<WsperResponse<TextReplaceResult>>;
3157
+ }
3158
+
3159
+ declare function parseTextReplaceUploadResponse(raw: unknown): {
3160
+ url: string;
3161
+ objectName: string;
3162
+ };
3163
+ declare function parseTextReplaceCreateResponse(raw: unknown): string;
3164
+ declare function parseTextReplacePollResponse(raw: unknown): string | null;
3165
+
3166
+ interface UnblurVideoScraperOptions extends ScraperOptions {
3167
+ baseUrl?: string | undefined;
3168
+ productSerial?: string | undefined;
3169
+ }
3170
+ interface UnblurVideoResult {
3171
+ jobId: string;
3172
+ inputUrl?: string | undefined;
3173
+ outputUrl?: string | undefined;
3174
+ }
3175
+
3176
+ declare class UnblurVideoScraper {
3177
+ #private;
3178
+ constructor(options?: UnblurVideoScraperOptions & {
3179
+ maxPollAttempts?: number;
3180
+ pollIntervalMs?: number;
3181
+ });
3182
+ enableLogs(): this;
3183
+ disableLogs(): this;
3184
+ enhance(buffer: Buffer, resolution?: string, fileName?: string): Promise<WsperResponse<UnblurVideoResult>>;
3185
+ }
3186
+
3187
+ declare function parseUnblurVideoUploadResponse(raw: unknown): {
3188
+ url: string;
3189
+ objectName: string;
3190
+ };
3191
+ declare function parseUnblurVideoCreateResponse(raw: unknown): string;
3192
+ declare function parseUnblurVideoPollResponse(raw: unknown): {
3193
+ isReady: boolean;
3194
+ inputUrl?: string | undefined;
3195
+ outputUrl?: string | undefined;
3196
+ };
3197
+
3198
+ interface UnwatermarkScraperOptions extends ScraperOptions {
3199
+ baseUrl?: string | undefined;
3200
+ }
3201
+ interface UnwatermarkResult {
3202
+ jobId: string;
3203
+ inputUrl?: string | undefined;
3204
+ outputUrl?: string | undefined;
3205
+ }
3206
+
3207
+ declare class UnwatermarkScraper {
3208
+ #private;
3209
+ constructor(options?: UnwatermarkScraperOptions & {
3210
+ maxPollAttempts?: number;
3211
+ pollIntervalMs?: number;
3212
+ });
3213
+ enableLogs(): this;
3214
+ disableLogs(): this;
3215
+ restore(buffer: Buffer): Promise<WsperResponse<UnwatermarkResult>>;
3216
+ }
3217
+
3218
+ declare function parseUnwatermarkCreateResponse(raw: unknown): string;
3219
+ declare function parseUnwatermarkPollResponse(raw: unknown): {
3220
+ isReady: boolean;
3221
+ inputUrl?: string | undefined;
3222
+ outputUrl?: string | undefined;
3223
+ };
3224
+
3225
+ type UpscalerV3FunctionType = "upscale" | "remove-bg" | "style" | "deblurring";
3226
+ interface UpscalerV3Params {
3227
+ functionType: UpscalerV3FunctionType;
3228
+ scale?: 2 | 4 | undefined;
3229
+ format?: "auto" | "jpeg" | "png" | "webp" | "heic" | "bmp" | "pdf" | undefined;
3230
+ fileName?: string | undefined;
3231
+ backgroundType?: "matting-green-screen" | "white" | "blur-background" | "black" | "transparent" | undefined;
3232
+ style?: "anime" | "cartoon" | "sketch" | "painting" | "artstyle" | "design" | "illustration" | "general" | undefined;
3233
+ nonce: string;
3234
+ pid: string;
3235
+ }
3236
+ interface UpscalerV3ScraperOptions extends ScraperOptions {
3237
+ baseUrl?: string | undefined;
3238
+ }
3239
+ interface UpscalerV3Result {
3240
+ output: string;
3241
+ }
3242
+
3243
+ declare class UpscalerV3Scraper {
3244
+ #private;
3245
+ constructor(options?: UpscalerV3ScraperOptions);
3246
+ enableLogs(): this;
3247
+ disableLogs(): this;
3248
+ process(buffer: Buffer, params: UpscalerV3Params): Promise<WsperResponse<UpscalerV3Result>>;
3249
+ }
3250
+
3251
+ declare function parseUpscalerV3Response(raw: unknown): string;
3252
+
3253
+ declare class User_Class {
3254
+ #private;
3255
+ constructor(prop: any);
3256
+ get info(): any;
3257
+ get settings(): any;
3258
+ public_info(username: any): Promise<any>;
3259
+ public_info_array(usernames: any): Promise<any>;
3260
+ change_info(username?: string, name?: string, avatar_rel_path?: string, bio?: string): Promise<any>;
3261
+ refresh_settings(): Promise<any>;
3262
+ update_settings(settings_object: any): Promise<any>;
3263
+ public_following_list(username: any, page_param?: number): Promise<any>;
3264
+ following_check(username: any): Promise<any>;
3265
+ public_followers_list(username: any, page_param?: number): Promise<any>;
3266
+ following_list_name(): Promise<any>;
3267
+ followers_list_name(): Promise<any>;
3268
+ follow(username: any): Promise<any>;
3269
+ unfollow(username: any): Promise<any>;
3270
+ liked_character_list(): Promise<any>;
3271
+ add_muted_words(words: any): Promise<any>;
3272
+ remove_muted_words(words: any): Promise<any>;
3273
+ clear_muted_words(): Promise<any>;
3274
+ birthday_status(): Promise<any>;
3275
+ get_characters_created(): Promise<any>;
3276
+ }
3277
+ declare class Image_Class {
3278
+ #private;
3279
+ constructor(prop: any);
3280
+ generate_avatar(prompt_name: any): Promise<any>;
3281
+ generate_image(prompt_name: any): Promise<any>;
3282
+ }
3283
+ declare class Persona_Class {
3284
+ #private;
3285
+ constructor(prop: any);
3286
+ create(name: any, description: any): Promise<any>;
3287
+ info(external_persona_id: any): Promise<any>;
3288
+ set_default(external_persona_id?: string): Promise<boolean>;
3289
+ list(): Promise<any>;
3290
+ update(external_persona_id: any, name: any, description: any): Promise<any>;
3291
+ delete(external_persona_id: any): Promise<any>;
3292
+ set_character(character_id: any, external_persona_id?: string): Promise<boolean>;
3293
+ }
3294
+ declare class Explore_Class {
3295
+ #private;
3296
+ constructor(prop: any);
3297
+ featured(): Promise<any>;
3298
+ simillar_char(char_id: any): Promise<any>;
3299
+ for_you(): Promise<any>;
3300
+ discovery_tags(): Promise<any>;
3301
+ characters_with_tag(tag: any): Promise<any>;
3302
+ character_categories(): Promise<any>;
3303
+ featured_voices(): Promise<any>;
3304
+ }
3305
+ declare class Character_Class {
3306
+ #private;
3307
+ constructor(prop: any);
3308
+ votes(character_id: any): Promise<any>;
3309
+ votes_array(character_id: any): Promise<any>;
3310
+ vote(character_id: any, vote?: null): Promise<void>;
3311
+ info(char_id: any): Promise<any>;
3312
+ tags_info(char_ids: any): Promise<any>;
3313
+ recent_list(): Promise<any>;
3314
+ connect(char_id: any, is_greeting?: boolean): Promise<any>;
3315
+ disconnect(): Promise<boolean>;
3316
+ send_message(message?: string, manual_turn?: boolean, image_url_path?: string, manual_opt?: {
3317
+ char_id: any;
3318
+ chat_id: any;
3319
+ timeout_ms: number;
3320
+ }): Promise<unknown>;
3321
+ generate_turn(manual_opt?: {
3322
+ char_id: any;
3323
+ chat_id: any;
3324
+ timeout_ms: number;
3325
+ }): Promise<unknown>;
3326
+ generate_turn_candidate(turn_id: any, manual_opt?: {
3327
+ char_id: any;
3328
+ chat_id: any;
3329
+ timeout_ms: number;
3330
+ }): Promise<unknown>;
3331
+ create_new_conversation(with_greeting?: boolean, manual_opt?: {
3332
+ char_id: any;
3333
+ }): Promise<unknown>;
3334
+ delete_message(turn_id: any, manual_opt?: {
3335
+ chat_id: any;
3336
+ char_id: any;
3337
+ }): Promise<boolean>;
3338
+ edit_message(candidate_id: any, turn_id: any, new_message: any, manual_opt?: {
3339
+ chat_id: any;
3340
+ char_id: any;
3341
+ }): Promise<unknown>;
3342
+ replay_tts(turn_id: any, candidate_id: any, voice_id_or_query?: string, using_voice_query?: boolean, manual_opt?: {
3343
+ chat_id: any;
3344
+ }): Promise<any>;
3345
+ current_voice(character_id?: string): Promise<any>;
3346
+ set_voice_override(character_id: any, voice_id: any): Promise<any>;
3347
+ get_category(character_id: any): Promise<any>;
3348
+ about(short_hash: any): Promise<any>;
3349
+ info_detailed(char_id: any): Promise<any>;
3350
+ }
3351
+ declare class Search_Class {
3352
+ #private;
3353
+ constructor(prop: any);
3354
+ list_tags(): Promise<any>;
3355
+ users(name: any, sorted_by: any): Promise<any>;
3356
+ scenes(query: any): Promise<any>;
3357
+ characters(name: any, sorted_by?: string): Promise<any>;
3358
+ voices(name: any): Promise<any>;
3359
+ popular(): Promise<any>;
3360
+ trending(): Promise<any>;
3361
+ autocomplete(query: any): Promise<any>;
3362
+ languages(): Promise<any>;
3363
+ }
3364
+ declare class GroupChat_Class {
3365
+ #private;
3366
+ constructor(prop: any);
3367
+ list(): Promise<any>;
3368
+ connect(room_id: any): Promise<unknown>;
3369
+ disconnect(): Promise<unknown>;
3370
+ create(title_room: any, char_id: any): Promise<any>;
3371
+ delete(room_id: any): Promise<any>;
3372
+ rename(new_name: any, group_id?: any): Promise<any>;
3373
+ join_group_invite(invite_code: any): Promise<any>;
3374
+ char_add(char_id: any, manual_opt?: {
3375
+ groupchat_id: any;
3376
+ timeout_ms: number;
3377
+ }): Promise<any>;
3378
+ char_remove(char_id: any, manual_opt?: {
3379
+ groupchat_id: any;
3380
+ timeout_ms: number;
3381
+ }): Promise<any>;
3382
+ send_message(message: any, image_url_path?: string, manual_opt?: {
3383
+ groupchat_id: any;
3384
+ timeout_ms: number;
3385
+ }): Promise<unknown>;
3386
+ generate_turn(manual_opt?: {
3387
+ groupchat_id: any;
3388
+ timeout_ms: number;
3389
+ }): Promise<unknown>;
3390
+ generate_turn_candidate(turn_id: any, char_id: any, manual_opt?: {
3391
+ groupchat_id: any;
3392
+ timeout_ms: number;
3393
+ }): Promise<unknown>;
3394
+ reset_conversation(manual_opt?: {
3395
+ groupchat_id: any;
3396
+ timeout_ms: number;
3397
+ }): Promise<unknown>;
3398
+ delete_message(turn_id: any, manual_opt?: {
3399
+ groupchat_id: any;
3400
+ timeout_ms: number;
3401
+ }): Promise<boolean>;
3402
+ edit_message(candidate_id: any, turn_id: any, new_message: any, manual_opt?: {
3403
+ groupchat_id: any;
3404
+ timeout_ms: number;
3405
+ }): Promise<unknown>;
3406
+ select_turn(char_id: any, manual_opt?: {
3407
+ groupchat_id: any;
3408
+ timeout_ms: number;
3409
+ }): Promise<unknown>;
3410
+ }
3411
+ declare class Chat_Class {
3412
+ #private;
3413
+ constructor(prop: any);
3414
+ history_chat_turns(chat_id?: string, next_token?: string): Promise<any>;
3415
+ conversation_info(chat_id: any): Promise<any>;
3416
+ history_conversation_list(character_id?: string): Promise<any>;
3417
+ set_conversation_chat(chat_id: any): Promise<void>;
3418
+ pin_message(turn_id: any, pinned?: boolean, chat_id?: any): Promise<unknown>;
3419
+ list_pinned_message(chat_id: any): Promise<any>;
3420
+ archive_conversation(chat_id: any, set_archive?: boolean): Promise<any>;
3421
+ duplicate_conversation(chat_id: any, turn_id: any): Promise<any>;
3422
+ rename_conversation(chat_id: any, name: any): Promise<any>;
3423
+ conversation_facts(chat_id: any): Promise<any>;
3424
+ }
3425
+ declare class Notification_Class {
3426
+ #private;
3427
+ constructor(prop: any);
3428
+ history(): Promise<any>;
3429
+ history_v2(): Promise<any>;
3430
+ }
3431
+ declare class Voice_Class {
3432
+ #private;
3433
+ constructor(prop: any);
3434
+ user_created_list(username?: string): Promise<any>;
3435
+ info(voice_id: any): Promise<any>;
3436
+ update(voice_id: any, voice_data: any): Promise<any>;
3437
+ connect(voice_query_or_id: any, using_voice_query?: boolean, using_mic?: boolean, mic_opt?: {
3438
+ sample_rate: number;
3439
+ channel: number;
3440
+ }, manual_opt?: {
3441
+ char_id: any;
3442
+ chat_id: any;
3443
+ return_livekit_information_only: boolean;
3444
+ }): Promise<unknown>;
3445
+ }
3446
+ declare class CAINode extends EventEmitter {
3447
+ #private;
3448
+ search: Search_Class;
3449
+ user: User_Class;
3450
+ image: Image_Class;
3451
+ persona: Persona_Class;
3452
+ explore: Explore_Class;
3453
+ character: Character_Class;
3454
+ group_chat: GroupChat_Class;
3455
+ chat: Chat_Class;
3456
+ notification: Notification_Class;
3457
+ voice: Voice_Class;
3458
+ on(event_name: any, listener: any): this;
3459
+ login(token: any): Promise<boolean>;
3460
+ send_code(email: any): Promise<void>;
3461
+ generate_token_auto(email: any, timeout_per_2s?: number, mail_sent_cb?: null, timeout_cb?: null): Promise<unknown>;
3462
+ generate_token_manual(verify_link: any): Promise<any>;
3463
+ ping(): Promise<any>;
3464
+ logout(): Promise<boolean>;
3465
+ }
3466
+
3467
+ interface CaiScraperOptions extends ScraperOptions {
3468
+ timeoutMs?: number;
3469
+ maxResponseTimeMs?: number;
3470
+ maxMessageLength?: number;
3471
+ autoChunk?: boolean;
3472
+ }
3473
+ interface CaiChatParams {
3474
+ characterId: string;
3475
+ message: string;
3476
+ isGreeting?: boolean;
3477
+ voiceId?: string | null;
3478
+ autoChunk?: boolean;
3479
+ }
3480
+ interface CaiChatResult {
3481
+ text: string;
3482
+ audioUrl?: string | null;
3483
+ raw: any;
3484
+ chunkCount?: number;
3485
+ }
3486
+ interface CaiSearchResult {
3487
+ externalId: string;
3488
+ name: string;
3489
+ title: string;
3490
+ description: string;
3491
+ avatar: string;
3492
+ interactions: number;
3493
+ }
3494
+ interface CaiVoiceResult {
3495
+ id: string;
3496
+ name: string;
3497
+ description: string;
3498
+ gender: string;
3499
+ visibility: string;
3500
+ creatorInfo: {
3501
+ id: string;
3502
+ source: string;
3503
+ username: string;
3504
+ };
3505
+ audioSourceType: string;
3506
+ previewText: string;
3507
+ previewAudioURI: string;
3508
+ backendProvider: string;
3509
+ backendId: string;
3510
+ internalStatus: string;
3511
+ lastUpdateTime: string;
3512
+ }
3513
+
3514
+ declare class CaiScraper {
3515
+ #private;
3516
+ constructor(options?: CaiScraperOptions);
3517
+ getClient(): CAINode;
3518
+ searchCharacters(query: string): Promise<WsperResponse<CaiSearchResult[]>>;
3519
+ chat(params: CaiChatParams): Promise<WsperResponse<CaiChatResult>>;
3520
+ disconnectCharacterSession(characterId: string): Promise<boolean>;
3521
+ disconnectAllCharacterSessions(): Promise<number>;
3522
+ getVoice(voiceId: string, customPreviewText?: string): Promise<WsperResponse<CaiVoiceResult>>;
3523
+ }
3524
+
3525
+ interface XiaohongshuUser {
3526
+ userId: string;
3527
+ nickname: string;
3528
+ avatar: string;
3529
+ }
3530
+ interface XiaohongshuImage {
3531
+ url: string;
3532
+ width: number;
3533
+ height: number;
3534
+ }
3535
+ interface XiaohongshuStats {
3536
+ likes: number;
3537
+ collects: number;
3538
+ comments: number;
3539
+ shares: number;
3540
+ }
3541
+ interface XiaohongshuNote {
3542
+ title: string;
3543
+ desc: string;
3544
+ type: string;
3545
+ time: number;
3546
+ user: XiaohongshuUser;
3547
+ images: XiaohongshuImage[];
3548
+ stats: XiaohongshuStats;
3549
+ }
3550
+ interface XiaohongshuScraperOptions {
3551
+ debug?: boolean;
3552
+ http?: HttpOptions;
3553
+ queue?: QueueOptions;
3554
+ credentials?: WsperCredentialsInput;
3555
+ }
3556
+
3557
+ declare class XiaohongshuScraper {
3558
+ #private;
3559
+ constructor(options?: XiaohongshuScraperOptions);
3560
+ getNote(url: string): Promise<WsperResponse<XiaohongshuNote>>;
3561
+ }
3562
+
3563
+ interface TeraboxFile {
3564
+ fsId: string;
3565
+ filename: string;
3566
+ size: number;
3567
+ isdir: boolean;
3568
+ category: number;
3569
+ path: string;
3570
+ downloadUrl?: string;
3571
+ }
3572
+ interface TeraboxShareInfo {
3573
+ shareid: number;
3574
+ uk: number;
3575
+ list: TeraboxFile[];
3576
+ }
3577
+ interface TeraboxScraperOptions {
3578
+ debug?: boolean;
3579
+ http?: HttpOptions;
3580
+ queue?: QueueOptions;
3581
+ baseUrl?: string;
3582
+ credentials?: WsperCredentialsInput;
3583
+ }
3584
+
3585
+ declare class TeraboxScraper {
3586
+ #private;
3587
+ constructor(options?: TeraboxScraperOptions);
3588
+ getShareList(url: string): Promise<WsperResponse<TeraboxShareInfo>>;
3589
+ }
3590
+
3591
+ interface GDriveFileInfo {
3592
+ filename: string;
3593
+ size: number;
3594
+ mimeType: string;
3595
+ directDownloadUrl: string;
3596
+ requiresConfirm: boolean;
3597
+ confirmToken: string | null;
3598
+ }
3599
+ interface GDriveScraperOptions {
3600
+ debug?: boolean;
3601
+ http?: HttpOptions;
3602
+ queue?: QueueOptions;
3603
+ baseUrl?: string;
3604
+ }
3605
+
3606
+ declare class GDriveScraper {
3607
+ #private;
3608
+ constructor(options?: GDriveScraperOptions);
3609
+ getFileInfo(fileIdOrUrl: string): Promise<WsperResponse<GDriveFileInfo>>;
3610
+ }
3611
+
3612
+ interface SoundcloudUser {
3613
+ id: number;
3614
+ username: string;
3615
+ avatarUrl: string;
3616
+ }
3617
+ interface SoundcloudStats {
3618
+ playbackCount: number;
3619
+ likesCount: number;
3620
+ repostsCount: number;
3621
+ commentCount: number;
3622
+ }
3623
+ interface SoundcloudTrack {
3624
+ id: number;
3625
+ title: string;
3626
+ permalinkUrl: string;
3627
+ artworkUrl: string;
3628
+ duration: number;
3629
+ genre: string;
3630
+ user: SoundcloudUser;
3631
+ stats: SoundcloudStats;
3632
+ streamUrl?: string;
3633
+ }
3634
+ interface SoundcloudScraperOptions {
3635
+ debug?: boolean;
3636
+ http?: HttpOptions;
3637
+ queue?: QueueOptions;
3638
+ baseUrl?: string;
3639
+ apiBaseUrl?: string;
3640
+ }
3641
+
3642
+ declare class SoundcloudScraper {
3643
+ #private;
3644
+ constructor(options?: SoundcloudScraperOptions);
3645
+ getTrack(url: string): Promise<WsperResponse<SoundcloudTrack>>;
3646
+ }
3647
+
3648
+ interface PixivUrls {
3649
+ mini: string;
3650
+ thumb: string;
3651
+ small: string;
3652
+ regular: string;
3653
+ original: string;
3654
+ }
3655
+ interface PixivTag {
3656
+ tag: string;
3657
+ locked: boolean;
3658
+ }
3659
+ interface PixivArtwork {
3660
+ illustId: string;
3661
+ title: string;
3662
+ description: string;
3663
+ illustType: number;
3664
+ createDate: string;
3665
+ urls: PixivUrls;
3666
+ tags: PixivTag[];
3667
+ userId: string;
3668
+ userName: string;
3669
+ }
3670
+ interface PixivScraperOptions {
3671
+ debug?: boolean;
3672
+ http?: HttpOptions;
3673
+ queue?: QueueOptions;
3674
+ credentials?: WsperCredentialsInput;
3675
+ baseUrl?: string;
3676
+ }
3677
+
3678
+ declare class PixivScraper {
3679
+ #private;
3680
+ constructor(options?: PixivScraperOptions);
3681
+ getIllust(illustId: string): Promise<WsperResponse<PixivArtwork>>;
3682
+ }
3683
+
3684
+ interface PubgMobileNewsItem {
3685
+ title: string;
3686
+ date: string;
3687
+ url: string;
3688
+ summary: string;
3689
+ }
3690
+ interface PubgMobileScraperOptions {
3691
+ debug?: boolean;
3692
+ http?: HttpOptions;
3693
+ queue?: QueueOptions;
3694
+ baseUrl?: string;
3695
+ newsPath?: string;
3696
+ }
3697
+
3698
+ declare class PubgMobileScraper {
3699
+ #private;
3700
+ constructor(options?: PubgMobileScraperOptions);
3701
+ getNews(): Promise<WsperResponse<PubgMobileNewsItem[]>>;
3702
+ }
3703
+
3704
+ interface GenshinMangaChapter {
3705
+ chapterId: string;
3706
+ title: string;
3707
+ cover: string;
3708
+ pages: string[];
3709
+ }
3710
+ interface GenshinWikiCategory {
3711
+ menuId: string;
3712
+ name: string;
3713
+ }
3714
+ interface GenshinWikiEntry {
3715
+ entryId: string;
3716
+ name: string;
3717
+ icon: string;
3718
+ rarity: number;
3719
+ weaponType?: string;
3720
+ element?: string;
3721
+ }
3722
+ interface GenshinImpactScraperOptions {
3723
+ debug?: boolean;
3724
+ http?: HttpOptions;
3725
+ queue?: QueueOptions;
3726
+ baseUrl?: string;
3727
+ apiBaseUrl?: string;
3728
+ }
3729
+
3730
+ declare class GenshinImpactScraper {
3731
+ #private;
3732
+ constructor(options?: GenshinImpactScraperOptions);
3733
+ getMangaChapters(lang?: string): Promise<WsperResponse<GenshinMangaChapter[]>>;
3734
+ getWikiCategories(): Promise<WsperResponse<GenshinWikiCategory[]>>;
3735
+ getWikiEntries(menuId: string, pageNum?: number, pageSize?: number): Promise<WsperResponse<GenshinWikiEntry[]>>;
3736
+ }
3737
+
3738
+ type BbcNewsRegion = "world" | "africa" | "asia" | "australia" | "europe" | "latin_america" | "middle_east" | "us_and_canada" | "england" | "scotland" | "wales" | "northern_ireland";
3739
+ interface ForeignNewsItem {
3740
+ title: string;
3741
+ description: string;
3742
+ link: string;
3743
+ pubDate: string;
3744
+ guid: string;
3745
+ }
3746
+ interface ForeignNewsScraperOptions {
3747
+ debug?: boolean;
3748
+ http?: HttpOptions;
3749
+ queue?: QueueOptions;
3750
+ baseUrl?: string;
3751
+ }
3752
+
3753
+ declare class ForeignNewsScraper {
3754
+ #private;
3755
+ constructor(options?: ForeignNewsScraperOptions);
3756
+ getBbcNews(region?: BbcNewsRegion): Promise<WsperResponse<ForeignNewsItem[]>>;
3757
+ getCnbcNews(): Promise<WsperResponse<ForeignNewsItem[]>>;
3758
+ getCnnNews(): Promise<WsperResponse<ForeignNewsItem[]>>;
3759
+ getAntaraNews(): Promise<WsperResponse<ForeignNewsItem[]>>;
3760
+ getRepublikaNews(): Promise<WsperResponse<ForeignNewsItem[]>>;
3761
+ }
3762
+
3763
+ interface DetikNewsScraperOptions extends ScraperOptions {
3764
+ baseUrl?: string;
3765
+ }
3766
+ interface DetikNewsItem {
3767
+ title: string;
3768
+ url: string;
3769
+ imageUrl: string;
3770
+ category: string;
3771
+ description: string;
3772
+ date: string;
3773
+ }
3774
+
3775
+ declare class DetikNewsScraper {
3776
+ #private;
3777
+ constructor(options?: DetikNewsScraperOptions);
3778
+ search(query: string, resultType?: "latest" | "relevansi"): Promise<WsperResponse<DetikNewsItem[]>>;
3779
+ }
3780
+
3781
+ interface KompasNewsScraperOptions extends ScraperOptions {
3782
+ baseUrl?: string;
3783
+ }
3784
+ interface KompasNewsItem {
3785
+ title: string;
3786
+ url: string;
3787
+ imageUrl: string;
3788
+ category: string;
3789
+ date: string;
3790
+ description: string;
3791
+ }
3792
+
3793
+ declare class KompasNewsScraper {
3794
+ #private;
3795
+ constructor(options?: KompasNewsScraperOptions);
3796
+ search(query: string): Promise<WsperResponse<KompasNewsItem[]>>;
3797
+ }
3798
+
3799
+ interface ArenaAiScraperOptions extends ScraperOptions {
3800
+ baseUrl?: string;
3801
+ }
3802
+ interface ArenaLeaderboardMeta {
3803
+ leaderboard: string;
3804
+ sourceUrl: string;
3805
+ fetchedAt: string;
3806
+ lastUpdated: string;
3807
+ modelCount: number;
3808
+ }
3809
+ interface ArenaModelItem {
3810
+ rank: number;
3811
+ model: string;
3812
+ vendor: string;
3813
+ license: string;
3814
+ score: number;
3815
+ ci: number;
3816
+ votes: number;
3817
+ }
3818
+ interface ArenaLeaderboardResponse {
3819
+ meta: ArenaLeaderboardMeta;
3820
+ models: ArenaModelItem[];
3821
+ }
3822
+ interface ArenaCategoryInfo {
3823
+ model_count: number;
3824
+ }
3825
+ interface ArenaCategoriesResponse {
3826
+ date: string;
3827
+ fetched_at: string;
3828
+ leaderboards: Record<string, ArenaCategoryInfo>;
3829
+ errors: string[];
3830
+ }
3831
+
3832
+ declare class ArenaAiScraper {
3833
+ #private;
3834
+ constructor(options?: ArenaAiScraperOptions);
3835
+ getCategories(): Promise<WsperResponse<ArenaCategoriesResponse>>;
3836
+ getLeaderboard(category?: string): Promise<WsperResponse<ArenaLeaderboardResponse>>;
3837
+ }
3838
+
3839
+ interface WikipediaScraperOptions extends ScraperOptions {
3840
+ baseUrl?: string;
3841
+ }
3842
+ interface WikipediaSearchResult {
3843
+ title: string;
3844
+ pageid: number;
3845
+ snippet: string;
3846
+ timestamp: string;
3847
+ }
3848
+ interface WikipediaSummary {
3849
+ title: string;
3850
+ extract: string;
3851
+ extractHtml: string;
3852
+ description: string;
3853
+ thumbnailUrl?: string;
3854
+ pageUrl: string;
3855
+ }
3856
+
3857
+ declare class WikipediaScraper {
3858
+ #private;
3859
+ constructor(options?: WikipediaScraperOptions);
3860
+ search(query: string, lang?: string): Promise<WsperResponse<WikipediaSearchResult[]>>;
3861
+ getSummary(title: string, lang?: string): Promise<WsperResponse<WikipediaSummary>>;
3862
+ }
3863
+
3864
+ interface CodashopScraperOptions extends ScraperOptions {
3865
+ baseUrl?: string;
3866
+ }
3867
+ interface CodashopCheckResult {
3868
+ success: boolean;
3869
+ game: string;
3870
+ name: string;
3871
+ userId: string;
3872
+ zoneId?: string;
3873
+ }
3874
+
3875
+ declare class CodashopScraper {
3876
+ #private;
3877
+ constructor(options?: CodashopScraperOptions);
3878
+ checkNickname(game: string, id: string, zone?: string): Promise<WsperResponse<CodashopCheckResult>>;
3879
+ }
3880
+
3881
+ interface MyAnimeListScraperOptions extends ScraperOptions {
3882
+ baseUrl?: string;
3883
+ }
3884
+ interface MalAnimeItem {
3885
+ malId: number;
3886
+ title: string;
3887
+ titleEnglish?: string;
3888
+ type: string;
3889
+ episodes?: number;
3890
+ status: string;
3891
+ score?: number;
3892
+ rating?: string;
3893
+ synopsis?: string;
3894
+ imageUrl: string;
3895
+ genres: string[];
3896
+ }
3897
+
3898
+ declare class MyAnimeListScraper {
3899
+ #private;
3900
+ constructor(options?: MyAnimeListScraperOptions);
3901
+ search(query: string, limit?: number): Promise<WsperResponse<MalAnimeItem[]>>;
3902
+ getTopAnime(): Promise<WsperResponse<MalAnimeItem[]>>;
3903
+ }
3904
+
3905
+ interface KemendagScraperOptions extends ScraperOptions {
3906
+ baseUrl?: string;
3907
+ }
3908
+ interface KemendagBapokItem {
3909
+ title: string;
3910
+ resourceId: string;
3911
+ format: string;
3912
+ downloadUrl: string;
3913
+ lastModified: string;
3914
+ }
3915
+
3916
+ declare class KemendagScraper {
3917
+ #private;
3918
+ constructor(options?: KemendagScraperOptions);
3919
+ getBapokDatasets(): Promise<WsperResponse<KemendagBapokItem[]>>;
3920
+ }
3921
+
3922
+ interface BimasIslamScraperOptions extends ScraperOptions {
3923
+ baseUrl?: string;
3924
+ }
3925
+ interface KemenagRegionItem {
3926
+ id: string;
3927
+ name: string;
3928
+ }
3929
+ interface KemenagPrayerTimes {
3930
+ tanggal: string;
3931
+ imsak: string;
3932
+ subuh: string;
3933
+ terbit: string;
3934
+ dhuha: string;
3935
+ dzuhur: string;
3936
+ ashar: string;
3937
+ maghrib: string;
3938
+ isya: string;
3939
+ }
3940
+
3941
+ declare class BimasIslamScraper {
3942
+ #private;
3943
+ constructor(options?: BimasIslamScraperOptions);
3944
+ getProvinces(): Promise<WsperResponse<KemenagRegionItem[]>>;
3945
+ getCities(provinceId: string): Promise<WsperResponse<KemenagRegionItem[]>>;
3946
+ getPrayerTimes(provinceId: string, cityId: string, month: number, year: number): Promise<WsperResponse<KemenagPrayerTimes[]>>;
3947
+ }
3948
+
3949
+ interface UnsplashScraperOptions extends ScraperOptions {
3950
+ baseUrl?: string;
3951
+ }
3952
+ interface UnsplashPhotoItem {
3953
+ id: string;
3954
+ slug: string;
3955
+ description: string | null;
3956
+ altDescription: string | null;
3957
+ width: number;
3958
+ height: number;
3959
+ likes: number;
3960
+ urls: {
3961
+ raw: string;
3962
+ full: string;
3963
+ regular: string;
3964
+ small: string;
3965
+ thumb: string;
3966
+ };
3967
+ photographer: {
3968
+ name: string;
3969
+ username: string;
3970
+ profileUrl: string;
3971
+ };
3972
+ }
3973
+
3974
+ declare class UnsplashScraper {
3975
+ #private;
3976
+ constructor(options?: UnsplashScraperOptions);
3977
+ searchPhotos(query: string, page?: number, perPage?: number): Promise<WsperResponse<UnsplashPhotoItem[]>>;
3978
+ }
3979
+
3980
+ interface ImgflipScraperOptions extends ScraperOptions {
3981
+ baseUrl?: string;
3982
+ username?: string;
3983
+ password?: string;
3984
+ }
3985
+ interface ImgflipMemeTemplate {
3986
+ id: string;
3987
+ name: string;
3988
+ url: string;
3989
+ width: number;
3990
+ height: number;
3991
+ boxCount: number;
3992
+ }
3993
+ interface ImgflipCaptionOptions {
3994
+ templateId: string;
3995
+ text0: string;
3996
+ text1: string;
3997
+ username?: string;
3998
+ password?: string;
3999
+ }
4000
+
4001
+ declare class ImgflipScraper {
4002
+ #private;
4003
+ constructor(options?: ImgflipScraperOptions);
4004
+ getMemes(): Promise<WsperResponse<ImgflipMemeTemplate[]>>;
4005
+ captionMeme(options: ImgflipCaptionOptions): Promise<WsperResponse<{
4006
+ url: string;
4007
+ page_url: string;
4008
+ }>>;
4009
+ }
4010
+
4011
+ interface GoqrScraperOptions extends ScraperOptions {
4012
+ baseUrl?: string;
4013
+ }
4014
+
4015
+ declare class GoqrScraper {
4016
+ #private;
4017
+ constructor(options?: GoqrScraperOptions);
4018
+ generateQrCode(data: string, size?: string): Promise<WsperResponse<Buffer>>;
4019
+ }
4020
+
4021
+ type UsgsEarthquakeFeed = "all_hour" | "all_day" | "all_week" | "all_month" | "significant_hour" | "significant_day" | "significant_week" | "significant_month" | "4.5_hour" | "4.5_day" | "4.5_week" | "4.5_month" | "2.5_hour" | "2.5_day" | "2.5_week" | "2.5_month" | "1.0_hour" | "1.0_day" | "1.0_week" | "1.0_month";
4022
+ type UsgsEarthquakeOrderBy = "time" | "time-asc" | "magnitude" | "magnitude-asc";
4023
+ interface UsgsEarthquakeScraperOptions extends ScraperOptions {
4024
+ baseUrl?: string;
4025
+ }
4026
+ interface UsgsEarthquakeQueryOptions {
4027
+ startTime?: string;
4028
+ endTime?: string;
4029
+ minMagnitude?: number;
4030
+ maxMagnitude?: number;
4031
+ latitude?: number;
4032
+ longitude?: number;
4033
+ maxRadiusKm?: number;
4034
+ limit?: number;
4035
+ offset?: number;
4036
+ orderBy?: UsgsEarthquakeOrderBy;
4037
+ }
4038
+ interface UsgsEarthquakeEvent {
4039
+ id: string;
4040
+ magnitude: number | null;
4041
+ place: string;
4042
+ time: string | null;
4043
+ updated: string | null;
4044
+ url: string;
4045
+ detailUrl?: string;
4046
+ felt?: number | null;
4047
+ cdi?: number | null;
4048
+ mmi?: number | null;
4049
+ alert?: string | null;
4050
+ status?: string;
4051
+ tsunami: boolean;
4052
+ significance: number;
4053
+ type: string;
4054
+ title: string;
4055
+ longitude: number | null;
4056
+ latitude: number | null;
4057
+ depthKm: number | null;
4058
+ }
4059
+ interface UsgsEarthquakeSummary {
4060
+ type: string;
4061
+ title?: string;
4062
+ generatedAt: string | null;
4063
+ count: number;
4064
+ events: UsgsEarthquakeEvent[];
4065
+ }
4066
+
4067
+ declare class UsgsEarthquakeScraper {
4068
+ #private;
4069
+ constructor(options?: UsgsEarthquakeScraperOptions);
4070
+ getSummary(feed?: UsgsEarthquakeFeed): Promise<WsperResponse<UsgsEarthquakeSummary>>;
4071
+ queryEvents(options?: UsgsEarthquakeQueryOptions): Promise<WsperResponse<UsgsEarthquakeSummary>>;
4072
+ }
4073
+
4074
+ interface OpenMeteoScraperOptions extends ScraperOptions {
4075
+ baseUrl?: string;
4076
+ }
4077
+ interface OpenMeteoForecastOptions {
4078
+ timezone?: string;
4079
+ hourly?: string[];
4080
+ daily?: string[];
4081
+ forecastDays?: number;
4082
+ pastDays?: number;
4083
+ }
4084
+ interface OpenMeteoCurrentWeather {
4085
+ temperature: number;
4086
+ windspeed: number;
4087
+ winddirection: number;
4088
+ weathercode: number;
4089
+ time: string;
4090
+ isDay?: number;
4091
+ interval?: number;
4092
+ }
4093
+ interface OpenMeteoForecast {
4094
+ latitude: number;
4095
+ longitude: number;
4096
+ generationtimeMs: number | null;
4097
+ utcOffsetSeconds: number | null;
4098
+ timezone: string;
4099
+ timezoneAbbreviation: string;
4100
+ elevation: number | null;
4101
+ currentWeather: OpenMeteoCurrentWeather | null;
4102
+ hourly?: Record<string, unknown[]>;
4103
+ daily?: Record<string, unknown[]>;
4104
+ }
4105
+
4106
+ declare class OpenMeteoScraper {
4107
+ #private;
4108
+ constructor(options?: OpenMeteoScraperOptions);
4109
+ getForecast(latitude: number, longitude: number, options?: OpenMeteoForecastOptions): Promise<WsperResponse<OpenMeteoForecast>>;
4110
+ getCurrentWeather(latitude: number, longitude: number): Promise<WsperResponse<OpenMeteoForecast>>;
4111
+ }
4112
+
4113
+ interface RestCountriesScraperOptions extends ScraperOptions {
4114
+ baseUrl?: string;
4115
+ }
4116
+ interface RestCountriesLookupOptions {
4117
+ fields?: string[];
4118
+ }
4119
+ interface RestCountriesNameLookupOptions extends RestCountriesLookupOptions {
4120
+ fullText?: boolean;
4121
+ }
4122
+ interface RestCountryName {
4123
+ common: string;
4124
+ official: string;
4125
+ nativeName?: Record<string, RestCountryNativeName>;
4126
+ }
4127
+ interface RestCountryNativeName {
4128
+ official: string;
4129
+ common: string;
4130
+ }
4131
+ interface RestCountryCurrency {
4132
+ name: string;
4133
+ symbol?: string;
4134
+ }
4135
+ interface RestCountryFlags {
4136
+ png?: string;
4137
+ svg?: string;
4138
+ alt?: string;
4139
+ }
4140
+ interface RestCountryMaps {
4141
+ googleMaps?: string;
4142
+ openStreetMaps?: string;
4143
+ }
4144
+ interface RestCountry {
4145
+ name: RestCountryName;
4146
+ cca2: string;
4147
+ ccn3?: string;
4148
+ cca3: string;
4149
+ cioc?: string;
4150
+ independent?: boolean;
4151
+ unMember?: boolean;
4152
+ status?: string;
4153
+ capital: string[];
4154
+ region: string;
4155
+ subregion?: string;
4156
+ population: number;
4157
+ flags: RestCountryFlags;
4158
+ currencies?: Record<string, RestCountryCurrency>;
4159
+ languages?: Record<string, string>;
4160
+ timezones: string[];
4161
+ latlng: number[];
4162
+ maps?: RestCountryMaps;
4163
+ }
4164
+
4165
+ declare class RestCountriesScraper {
4166
+ #private;
4167
+ constructor(options?: RestCountriesScraperOptions);
4168
+ getByName(name: string, options?: RestCountriesNameLookupOptions): Promise<WsperResponse<RestCountry[]>>;
4169
+ getByCode(code: string, options?: RestCountriesLookupOptions): Promise<WsperResponse<RestCountry | null>>;
4170
+ getAll(fields: string[]): Promise<WsperResponse<RestCountry[]>>;
4171
+ }
4172
+
4173
+ interface HackerNewsScraperOptions extends ScraperOptions {
4174
+ baseUrl?: string;
4175
+ }
4176
+ type HackerNewsItemType = "job" | "story" | "comment" | "poll" | "pollopt";
4177
+ type HackerNewsStoryList = "top" | "new" | "best";
4178
+ interface HackerNewsItem {
4179
+ id: number;
4180
+ deleted: boolean;
4181
+ type?: HackerNewsItemType;
4182
+ by?: string;
4183
+ time: string | null;
4184
+ text?: string;
4185
+ dead: boolean;
4186
+ parent?: number;
4187
+ poll?: number;
4188
+ kids: number[];
4189
+ url?: string;
4190
+ score?: number;
4191
+ title?: string;
4192
+ parts: number[];
4193
+ descendants?: number;
4194
+ }
4195
+ interface HackerNewsUser {
4196
+ id: string;
4197
+ created: string | null;
4198
+ karma: number;
4199
+ about?: string;
4200
+ submitted: number[];
4201
+ }
4202
+
4203
+ declare class HackerNewsScraper {
4204
+ #private;
4205
+ constructor(options?: HackerNewsScraperOptions);
4206
+ getTopStories(limit?: number): Promise<WsperResponse<HackerNewsItem[]>>;
4207
+ getNewStories(limit?: number): Promise<WsperResponse<HackerNewsItem[]>>;
4208
+ getBestStories(limit?: number): Promise<WsperResponse<HackerNewsItem[]>>;
4209
+ getItem(id: number): Promise<WsperResponse<HackerNewsItem | null>>;
4210
+ getUser(username: string): Promise<WsperResponse<HackerNewsUser | null>>;
4211
+ }
4212
+
4213
+ interface OpenLibraryScraperOptions extends ScraperOptions {
4214
+ baseUrl?: string;
4215
+ }
4216
+ interface OpenLibrarySearchOptions {
4217
+ page?: number;
4218
+ limit?: number;
4219
+ }
4220
+ interface OpenLibraryBookSearchResult {
4221
+ key: string;
4222
+ title: string;
4223
+ authorNames: string[];
4224
+ firstPublishYear: number | null;
4225
+ editionCount: number;
4226
+ isbn: string[];
4227
+ coverId: number | null;
4228
+ languages: string[];
4229
+ subjects: string[];
4230
+ }
4231
+ interface OpenLibraryBookSearchResponse {
4232
+ numFound: number;
4233
+ start: number;
4234
+ docs: OpenLibraryBookSearchResult[];
4235
+ }
4236
+ interface OpenLibraryWork {
4237
+ key: string;
4238
+ title: string;
4239
+ description: string | null;
4240
+ subjects: string[];
4241
+ covers: number[];
4242
+ created: string | null;
4243
+ lastModified: string | null;
4244
+ }
4245
+ interface OpenLibraryAuthor {
4246
+ key: string;
4247
+ name: string;
4248
+ alternateNames: string[];
4249
+ birthDate: string | null;
4250
+ deathDate: string | null;
4251
+ bio: string | null;
4252
+ photos: number[];
4253
+ }
4254
+ interface OpenLibraryIsbnBook {
4255
+ key: string;
4256
+ title: string;
4257
+ publishDate: string | null;
4258
+ publishers: string[];
4259
+ numberOfPages: number | null;
4260
+ isbn10: string[];
4261
+ isbn13: string[];
4262
+ works: string[];
4263
+ authors: string[];
4264
+ }
4265
+
4266
+ declare class OpenLibraryScraper {
4267
+ #private;
4268
+ constructor(options?: OpenLibraryScraperOptions);
4269
+ searchBooks(query: string, options?: OpenLibrarySearchOptions): Promise<WsperResponse<OpenLibraryBookSearchResponse>>;
4270
+ getWork(workKey: string): Promise<WsperResponse<OpenLibraryWork>>;
4271
+ getAuthor(authorKey: string): Promise<WsperResponse<OpenLibraryAuthor>>;
4272
+ getByIsbn(isbn: string): Promise<WsperResponse<OpenLibraryIsbnBook>>;
4273
+ }
4274
+
4275
+ interface GutendexScraperOptions extends ScraperOptions {
4276
+ baseUrl?: string;
4277
+ }
4278
+ interface GutendexSearchOptions {
4279
+ page?: number;
4280
+ languages?: string[];
4281
+ topic?: string;
4282
+ mimeType?: string;
4283
+ }
4284
+ interface GutendexPerson {
4285
+ name: string;
4286
+ birthYear: number | null;
4287
+ deathYear: number | null;
4288
+ }
4289
+ interface GutendexBook {
4290
+ id: number;
4291
+ title: string;
4292
+ authors: GutendexPerson[];
4293
+ translators: GutendexPerson[];
4294
+ subjects: string[];
4295
+ bookshelves: string[];
4296
+ languages: string[];
4297
+ copyright: boolean | null;
4298
+ mediaType: string;
4299
+ formats: Record<string, string>;
4300
+ downloadCount: number;
4301
+ }
4302
+ interface GutendexSearchResponse {
4303
+ count: number;
4304
+ next: string | null;
4305
+ previous: string | null;
4306
+ results: GutendexBook[];
4307
+ }
4308
+
4309
+ declare class GutendexScraper {
4310
+ #private;
4311
+ constructor(options?: GutendexScraperOptions);
4312
+ searchBooks(query: string, options?: GutendexSearchOptions): Promise<WsperResponse<GutendexSearchResponse>>;
4313
+ getBook(id: number): Promise<WsperResponse<GutendexBook>>;
4314
+ }
4315
+
4316
+ interface WorldBankScraperOptions extends ScraperOptions {
4317
+ baseUrl?: string;
4318
+ }
4319
+ interface WorldBankListOptions {
4320
+ page?: number;
4321
+ perPage?: number;
4322
+ }
4323
+ interface WorldBankIndicatorListOptions extends WorldBankListOptions {
4324
+ source?: string;
4325
+ }
4326
+ interface WorldBankIndicatorDataOptions extends WorldBankListOptions {
4327
+ date?: string;
4328
+ }
4329
+ interface WorldBankPagination {
4330
+ page: number;
4331
+ pages: number;
4332
+ perPage: number;
4333
+ total: number;
4334
+ }
4335
+ interface WorldBankPagedResponse<TItem> {
4336
+ pagination: WorldBankPagination;
4337
+ items: TItem[];
4338
+ }
4339
+ interface WorldBankLabeledValue {
4340
+ id: string;
4341
+ value: string;
4342
+ }
4343
+ interface WorldBankCountry {
4344
+ id: string;
4345
+ iso2Code: string;
4346
+ name: string;
4347
+ region: WorldBankLabeledValue;
4348
+ adminRegion: WorldBankLabeledValue;
4349
+ incomeLevel: WorldBankLabeledValue;
4350
+ lendingType: WorldBankLabeledValue;
4351
+ capitalCity: string;
4352
+ longitude: number | null;
4353
+ latitude: number | null;
4354
+ }
4355
+ interface WorldBankIndicator {
4356
+ id: string;
4357
+ name: string;
4358
+ unit: string;
4359
+ source: WorldBankLabeledValue;
4360
+ sourceNote: string | null;
4361
+ sourceOrganization: string | null;
4362
+ topics: WorldBankLabeledValue[];
4363
+ }
4364
+ interface WorldBankIndicatorValue {
4365
+ indicator: WorldBankLabeledValue;
4366
+ country: WorldBankLabeledValue;
4367
+ countryIso3Code: string;
4368
+ date: string;
4369
+ value: number | null;
4370
+ unit: string;
4371
+ obsStatus: string;
4372
+ decimal: number | null;
4373
+ }
4374
+ interface WorldBankIndicatorSeries {
4375
+ pagination: WorldBankPagination;
4376
+ values: WorldBankIndicatorValue[];
4377
+ }
4378
+
4379
+ declare class WorldBankScraper {
4380
+ #private;
4381
+ constructor(options?: WorldBankScraperOptions);
4382
+ searchCountries(query: string, options?: WorldBankListOptions): Promise<WsperResponse<WorldBankPagedResponse<WorldBankCountry>>>;
4383
+ getCountry(code: string): Promise<WsperResponse<WorldBankCountry | null>>;
4384
+ searchIndicators(query: string, options?: WorldBankIndicatorListOptions): Promise<WsperResponse<WorldBankPagedResponse<WorldBankIndicator>>>;
4385
+ getIndicator(country: string, indicator: string, options?: WorldBankIndicatorDataOptions): Promise<WsperResponse<WorldBankIndicatorSeries>>;
4386
+ }
4387
+
4388
+ interface EcbScraperOptions extends ScraperOptions {
4389
+ baseUrl?: string;
4390
+ }
4391
+ interface EcbReferenceRate {
4392
+ currency: string;
4393
+ rate: number;
4394
+ }
4395
+ interface EcbDailyReferenceRates {
4396
+ date: string;
4397
+ base: "EUR";
4398
+ rates: EcbReferenceRate[];
4399
+ }
4400
+ interface EcbConversionResult {
4401
+ amount: number;
4402
+ base: "EUR";
4403
+ currency: string;
4404
+ rate: number;
4405
+ convertedAmount: number;
4406
+ rateDate: string;
4407
+ }
4408
+
4409
+ declare class EcbScraper {
4410
+ #private;
4411
+ constructor(options?: EcbScraperOptions);
4412
+ getDailyReferenceRates(): Promise<WsperResponse<EcbDailyReferenceRates>>;
4413
+ convertFromEuro(amount: number, currency: string): Promise<WsperResponse<EcbConversionResult>>;
4414
+ }
4415
+
4416
+ interface CrossrefScraperOptions extends ScraperOptions {
4417
+ baseUrl?: string;
4418
+ mailto?: string;
4419
+ }
4420
+ interface CrossrefSearchOptions {
4421
+ rows?: number;
4422
+ offset?: number;
4423
+ filter?: string;
4424
+ }
4425
+ interface CrossrefAuthor {
4426
+ given: string | null;
4427
+ family: string | null;
4428
+ name: string | null;
4429
+ orcid: string | null;
4430
+ }
4431
+ interface CrossrefWork {
4432
+ doi: string;
4433
+ title: string[];
4434
+ subtitle: string[];
4435
+ publisher: string;
4436
+ type: string;
4437
+ url: string;
4438
+ issuedDate: string | null;
4439
+ subjects: string[];
4440
+ authors: CrossrefAuthor[];
4441
+ isReferencedByCount: number;
4442
+ score: number | null;
4443
+ }
4444
+ interface CrossrefWorksResponse {
4445
+ totalResults: number;
4446
+ itemsPerPage: number;
4447
+ queryStartIndex: number;
4448
+ items: CrossrefWork[];
4449
+ }
4450
+ interface CrossrefJournal {
4451
+ title: string;
4452
+ publisher: string;
4453
+ issn: string[];
4454
+ countsTotalDoi: number;
4455
+ subjects: string[];
4456
+ }
4457
+ interface CrossrefJournalsResponse {
4458
+ totalResults: number;
4459
+ itemsPerPage: number;
4460
+ queryStartIndex: number;
4461
+ items: CrossrefJournal[];
4462
+ }
4463
+
4464
+ declare class CrossrefScraper {
4465
+ #private;
4466
+ constructor(options?: CrossrefScraperOptions);
4467
+ searchWorks(query: string, options?: CrossrefSearchOptions): Promise<WsperResponse<CrossrefWorksResponse>>;
4468
+ getWorkByDoi(doi: string): Promise<WsperResponse<CrossrefWork>>;
4469
+ searchJournals(query: string, options?: CrossrefSearchOptions): Promise<WsperResponse<CrossrefJournalsResponse>>;
4470
+ }
4471
+
4472
+ interface OpenAlexScraperOptions extends ScraperOptions {
4473
+ baseUrl?: string;
4474
+ mailto?: string;
4475
+ }
4476
+ interface OpenAlexSearchOptions {
4477
+ page?: number;
4478
+ perPage?: number;
4479
+ }
4480
+ interface OpenAlexMeta {
4481
+ count: number;
4482
+ page: number;
4483
+ perPage: number;
4484
+ dbResponseTimeMs: number | null;
4485
+ }
4486
+ interface OpenAlexSearchResponse<TItem> {
4487
+ meta: OpenAlexMeta;
4488
+ results: TItem[];
4489
+ }
4490
+ interface OpenAlexOpenAccess {
4491
+ isOa: boolean;
4492
+ oaUrl: string | null;
4493
+ }
4494
+ interface OpenAlexWork {
4495
+ id: string;
4496
+ doi: string | null;
4497
+ title: string;
4498
+ displayName: string;
4499
+ publicationYear: number | null;
4500
+ type: string;
4501
+ citedByCount: number;
4502
+ openAccess: OpenAlexOpenAccess;
4503
+ }
4504
+ interface OpenAlexInstitutionSummary {
4505
+ id: string;
4506
+ displayName: string;
4507
+ countryCode: string | null;
4508
+ }
4509
+ interface OpenAlexAuthor {
4510
+ id: string;
4511
+ displayName: string;
4512
+ orcid: string | null;
4513
+ worksCount: number;
4514
+ citedByCount: number;
4515
+ lastKnownInstitution: OpenAlexInstitutionSummary | null;
4516
+ }
4517
+ interface OpenAlexInstitution {
4518
+ id: string;
4519
+ displayName: string;
4520
+ countryCode: string | null;
4521
+ type: string;
4522
+ worksCount: number;
4523
+ citedByCount: number;
4524
+ homepageUrl: string | null;
4525
+ }
4526
+
4527
+ declare class OpenAlexScraper {
4528
+ #private;
4529
+ constructor(options?: OpenAlexScraperOptions);
4530
+ searchWorks(query: string, options?: OpenAlexSearchOptions): Promise<WsperResponse<OpenAlexSearchResponse<OpenAlexWork>>>;
4531
+ searchAuthors(query: string, options?: OpenAlexSearchOptions): Promise<WsperResponse<OpenAlexSearchResponse<OpenAlexAuthor>>>;
4532
+ searchInstitutions(query: string, options?: OpenAlexSearchOptions): Promise<WsperResponse<OpenAlexSearchResponse<OpenAlexInstitution>>>;
4533
+ getWork(idOrDoi: string): Promise<WsperResponse<OpenAlexWork>>;
4534
+ }
4535
+
4536
+ interface RorScraperOptions extends ScraperOptions {
4537
+ baseUrl?: string;
4538
+ }
4539
+ interface RorSearchOptions {
4540
+ page?: number;
4541
+ }
4542
+ interface RorCountry {
4543
+ code: string | null;
4544
+ name: string | null;
4545
+ }
4546
+ interface RorOrganization {
4547
+ id: string;
4548
+ name: string;
4549
+ status: string;
4550
+ types: string[];
4551
+ country: RorCountry;
4552
+ links: string[];
4553
+ aliases: string[];
4554
+ acronyms: string[];
4555
+ }
4556
+ interface RorSearchResponse {
4557
+ numberOfResults: number;
4558
+ items: RorOrganization[];
4559
+ }
4560
+
4561
+ declare class RorScraper {
4562
+ #private;
4563
+ constructor(options?: RorScraperOptions);
4564
+ searchOrganizations(query: string, options?: RorSearchOptions): Promise<WsperResponse<RorSearchResponse>>;
4565
+ getOrganization(id: string): Promise<WsperResponse<RorOrganization>>;
4566
+ }
4567
+
4568
+ interface ClinicalTrialsScraperOptions extends ScraperOptions {
4569
+ baseUrl?: string;
4570
+ }
4571
+ interface ClinicalTrialsSearchOptions {
4572
+ pageSize?: number;
4573
+ pageToken?: string;
4574
+ }
4575
+ interface ClinicalTrialsSponsor {
4576
+ name: string;
4577
+ class: string;
4578
+ }
4579
+ interface ClinicalTrialsStudy {
4580
+ nctId: string;
4581
+ briefTitle: string;
4582
+ officialTitle: string | null;
4583
+ overallStatus: string;
4584
+ startDate: string | null;
4585
+ completionDate: string | null;
4586
+ conditions: string[];
4587
+ interventions: string[];
4588
+ phases: string[];
4589
+ studyType: string;
4590
+ leadSponsor: ClinicalTrialsSponsor | null;
4591
+ }
4592
+ interface ClinicalTrialsSearchResponse {
4593
+ totalCount: number | null;
4594
+ nextPageToken: string | null;
4595
+ studies: ClinicalTrialsStudy[];
4596
+ }
4597
+
4598
+ declare class ClinicalTrialsScraper {
4599
+ #private;
4600
+ constructor(options?: ClinicalTrialsScraperOptions);
4601
+ searchStudies(query: string, options?: ClinicalTrialsSearchOptions): Promise<WsperResponse<ClinicalTrialsSearchResponse>>;
4602
+ getStudy(nctId: string): Promise<WsperResponse<ClinicalTrialsStudy>>;
4603
+ }
4604
+
4605
+ interface PypiScraperOptions extends ScraperOptions {
4606
+ baseUrl?: string;
4607
+ }
4608
+ interface PypiProjectUrlMap {
4609
+ [key: string]: string;
4610
+ }
4611
+ interface PypiPackageInfo {
4612
+ name: string;
4613
+ version: string;
4614
+ summary: string;
4615
+ author: string;
4616
+ authorEmail: string;
4617
+ license: string;
4618
+ homePage: string;
4619
+ projectUrls: PypiProjectUrlMap;
4620
+ requiresPython: string | null;
4621
+ }
4622
+ interface PypiDistributionFile {
4623
+ filename: string;
4624
+ packagetype: string;
4625
+ pythonVersion: string;
4626
+ url: string;
4627
+ size: number;
4628
+ uploadTime: string | null;
4629
+ digests: Record<string, string>;
4630
+ }
4631
+ interface PypiPackage {
4632
+ info: PypiPackageInfo;
4633
+ releases: Record<string, PypiDistributionFile[]>;
4634
+ urls: PypiDistributionFile[];
4635
+ }
4636
+
4637
+ declare class PypiScraper {
4638
+ #private;
4639
+ constructor(options?: PypiScraperOptions);
4640
+ getPackage(name: string): Promise<WsperResponse<PypiPackage>>;
4641
+ getRelease(name: string, version: string): Promise<WsperResponse<PypiPackage>>;
4642
+ }
4643
+
4644
+ interface PackagistScraperOptions extends ScraperOptions {
4645
+ baseUrl?: string;
4646
+ searchBaseUrl?: string;
4647
+ }
4648
+ interface PackagistSearchOptions {
4649
+ page?: number;
4650
+ perPage?: number;
4651
+ }
4652
+ interface PackagistSearchResult {
4653
+ name: string;
4654
+ description: string;
4655
+ url: string;
4656
+ repository: string;
4657
+ downloads: number;
4658
+ favers: number;
4659
+ }
4660
+ interface PackagistSearchResponse {
4661
+ total: number;
4662
+ results: PackagistSearchResult[];
4663
+ }
4664
+ interface PackagistPackageVersion {
4665
+ name: string;
4666
+ version: string;
4667
+ versionNormalized: string;
4668
+ description: string;
4669
+ type: string;
4670
+ time: string | null;
4671
+ license: string[];
4672
+ authors: string[];
4673
+ require: Record<string, string>;
4674
+ distUrl: string | null;
4675
+ sourceUrl: string | null;
4676
+ }
4677
+ interface PackagistPackage {
4678
+ name: string;
4679
+ versions: PackagistPackageVersion[];
4680
+ }
4681
+
4682
+ declare class PackagistScraper {
4683
+ #private;
4684
+ constructor(options?: PackagistScraperOptions);
4685
+ searchPackages(query: string, options?: PackagistSearchOptions): Promise<WsperResponse<PackagistSearchResponse>>;
4686
+ getPackage(name: string): Promise<WsperResponse<PackagistPackage>>;
4687
+ }
4688
+
4689
+ interface OsvScraperOptions extends ScraperOptions {
4690
+ baseUrl?: string;
4691
+ }
4692
+ interface OsvPackageQuery {
4693
+ ecosystem: string;
4694
+ name: string;
4695
+ version?: string;
4696
+ }
4697
+ interface OsvAffectedPackage {
4698
+ ecosystem: string;
4699
+ name: string;
4700
+ purl: string | null;
4701
+ }
4702
+ interface OsvAffected {
4703
+ package: OsvAffectedPackage;
4704
+ ranges: string[];
4705
+ versions: string[];
4706
+ }
4707
+ interface OsvVulnerability {
4708
+ id: string;
4709
+ summary: string;
4710
+ details: string;
4711
+ aliases: string[];
4712
+ modified: string | null;
4713
+ published: string | null;
4714
+ databaseSpecific: Record<string, unknown>;
4715
+ affected: OsvAffected[];
4716
+ }
4717
+ interface OsvQueryResponse {
4718
+ vulns: OsvVulnerability[];
4719
+ }
4720
+
4721
+ declare class OsvScraper {
4722
+ #private;
4723
+ constructor(options?: OsvScraperOptions);
4724
+ queryPackage(input: OsvPackageQuery): Promise<WsperResponse<OsvQueryResponse>>;
4725
+ getVulnerability(id: string): Promise<WsperResponse<OsvVulnerability>>;
4726
+ }
4727
+
4728
+ interface BinanceScraperOptions extends ScraperOptions {
4729
+ baseUrl?: string;
4730
+ }
4731
+ type BinanceInterval = "1s" | "1m" | "3m" | "5m" | "15m" | "30m" | "1h" | "2h" | "4h" | "6h" | "8h" | "12h" | "1d" | "3d" | "1w" | "1M";
4732
+ interface BinanceKlineOptions {
4733
+ limit?: number;
4734
+ startTime?: number;
4735
+ endTime?: number;
4736
+ }
4737
+ interface BinanceTicker24hr {
4738
+ symbol: string;
4739
+ priceChange: string;
4740
+ priceChangePercent: string;
4741
+ weightedAvgPrice: string;
4742
+ lastPrice: string;
4743
+ lastQty: string;
4744
+ openPrice: string;
4745
+ highPrice: string;
4746
+ lowPrice: string;
4747
+ volume: string;
4748
+ quoteVolume: string;
4749
+ openTime: number | null;
4750
+ closeTime: number | null;
4751
+ firstId: number | null;
4752
+ lastId: number | null;
4753
+ count: number | null;
4754
+ }
4755
+ interface BinanceAveragePrice {
4756
+ mins: number;
4757
+ price: string;
4758
+ closeTime: number | null;
4759
+ }
4760
+ interface BinanceOrderBookLevel {
4761
+ price: string;
4762
+ quantity: string;
4763
+ }
4764
+ interface BinanceOrderBook {
4765
+ lastUpdateId: number | null;
4766
+ bids: BinanceOrderBookLevel[];
4767
+ asks: BinanceOrderBookLevel[];
4768
+ }
4769
+ interface BinanceKline {
4770
+ openTime: number;
4771
+ open: string;
4772
+ high: string;
4773
+ low: string;
4774
+ close: string;
4775
+ volume: string;
4776
+ closeTime: number;
4777
+ quoteAssetVolume: string;
4778
+ numberOfTrades: number;
4779
+ takerBuyBaseAssetVolume: string;
4780
+ takerBuyQuoteAssetVolume: string;
4781
+ }
4782
+
4783
+ declare class BinanceScraper {
4784
+ #private;
4785
+ constructor(options?: BinanceScraperOptions);
4786
+ getTicker24hr(symbol: string): Promise<WsperResponse<BinanceTicker24hr>>;
4787
+ getAveragePrice(symbol: string): Promise<WsperResponse<BinanceAveragePrice>>;
4788
+ getOrderBook(symbol: string, limit?: number): Promise<WsperResponse<BinanceOrderBook>>;
4789
+ getKlines(symbol: string, interval: BinanceInterval, options?: BinanceKlineOptions): Promise<WsperResponse<BinanceKline[]>>;
4790
+ }
4791
+
4792
+ interface CkanScraperOptions extends ScraperOptions {
4793
+ baseUrl?: string;
4794
+ }
4795
+ interface CkanSearchOptions {
4796
+ rows?: number;
4797
+ start?: number;
4798
+ }
4799
+ interface CkanResource {
4800
+ id: string;
4801
+ name: string;
4802
+ description: string;
4803
+ format: string;
4804
+ url: string;
4805
+ created: string;
4806
+ lastModified: string;
4807
+ }
4808
+ interface CkanDataset {
4809
+ id: string;
4810
+ name: string;
4811
+ title: string;
4812
+ notes: string;
4813
+ organization: string | null;
4814
+ license: string | null;
4815
+ numResources: number;
4816
+ tags: string[];
4817
+ resources: CkanResource[];
4818
+ metadataModified: string;
4819
+ }
4820
+ interface CkanSearchResult {
4821
+ count: number;
4822
+ datasets: CkanDataset[];
4823
+ }
4824
+
4825
+ interface CkanClientConfig {
4826
+ baseUrl: string;
4827
+ name: string;
4828
+ codePrefix: string;
4829
+ http?: HttpOptions | undefined;
4830
+ queue?: QueueOptions | undefined;
4831
+ debug?: boolean | undefined;
4832
+ }
4833
+ declare class CkanClient {
4834
+ #private;
4835
+ constructor(config: CkanClientConfig);
4836
+ search(query: string, options?: CkanSearchOptions): Promise<WsperResponse<CkanSearchResult>>;
4837
+ getDataset(id: string): Promise<WsperResponse<CkanDataset>>;
4838
+ }
4839
+
4840
+ interface MediaWikiScraperOptions extends ScraperOptions {
4841
+ baseUrl?: string;
4842
+ }
4843
+ interface MediaWikiSearchOptions {
4844
+ limit?: number;
4845
+ namespace?: number;
4846
+ }
4847
+ interface MediaWikiSearchItem {
4848
+ pageId: number;
4849
+ title: string;
4850
+ snippet: string;
4851
+ size: number;
4852
+ wordCount: number;
4853
+ timestamp: string;
4854
+ }
4855
+ interface MediaWikiSearchResult {
4856
+ totalHits: number;
4857
+ items: MediaWikiSearchItem[];
4858
+ }
4859
+ interface MediaWikiPage {
4860
+ pageId: number;
4861
+ title: string;
4862
+ extract: string;
4863
+ url: string;
4864
+ }
4865
+ interface MediaWikiImageInfo {
4866
+ title: string;
4867
+ url: string;
4868
+ descriptionUrl: string;
4869
+ mime: string;
4870
+ width: number;
4871
+ height: number;
4872
+ }
4873
+
4874
+ interface MediaWikiClientConfig {
4875
+ baseUrl: string;
4876
+ name: string;
4877
+ codePrefix: string;
4878
+ http?: HttpOptions | undefined;
4879
+ queue?: QueueOptions | undefined;
4880
+ debug?: boolean | undefined;
4881
+ }
4882
+ declare class MediaWikiClient {
4883
+ #private;
4884
+ constructor(config: MediaWikiClientConfig);
4885
+ search(query: string, options?: MediaWikiSearchOptions): Promise<WsperResponse<MediaWikiSearchResult>>;
4886
+ getPage(title: string): Promise<WsperResponse<MediaWikiPage>>;
4887
+ getImageInfo(title: string): Promise<WsperResponse<MediaWikiImageInfo>>;
4888
+ }
4889
+
4890
+ interface SparqlCell {
4891
+ type: string;
4892
+ value: string;
4893
+ datatype?: string;
4894
+ lang?: string;
4895
+ }
4896
+ type SparqlBinding = Record<string, SparqlCell>;
4897
+ interface SparqlResult {
4898
+ vars: string[];
4899
+ bindings: SparqlBinding[];
4900
+ }
4901
+
4902
+ interface SparqlClientConfig {
4903
+ endpoint: string;
4904
+ name: string;
4905
+ codePrefix: string;
4906
+ http?: HttpOptions | undefined;
4907
+ queue?: QueueOptions | undefined;
4908
+ debug?: boolean | undefined;
4909
+ }
4910
+ declare class SparqlClient {
4911
+ #private;
4912
+ constructor(config: SparqlClientConfig);
4913
+ query(sparql: string): Promise<WsperResponse<SparqlResult>>;
4914
+ }
4915
+ declare function parseSparqlResult(input: unknown, codePrefix: string): SparqlResult;
4916
+
4917
+ type DataGovScraperOptions = CkanScraperOptions;
4918
+ declare class DataGovScraper {
4919
+ #private;
4920
+ constructor(options?: DataGovScraperOptions);
4921
+ searchDatasets(query: string, options?: CkanSearchOptions): Promise<WsperResponse<CkanSearchResult>>;
4922
+ getDataset(id: string): Promise<WsperResponse<CkanDataset>>;
4923
+ }
4924
+
4925
+ type DataGovUkScraperOptions = CkanScraperOptions;
4926
+ declare class DataGovUkScraper {
4927
+ #private;
4928
+ constructor(options?: DataGovUkScraperOptions);
4929
+ searchDatasets(query: string, options?: CkanSearchOptions): Promise<WsperResponse<CkanSearchResult>>;
4930
+ getDataset(id: string): Promise<WsperResponse<CkanDataset>>;
4931
+ }
4932
+
4933
+ type OpenCanadaScraperOptions = CkanScraperOptions;
4934
+ declare class OpenCanadaScraper {
4935
+ #private;
4936
+ constructor(options?: OpenCanadaScraperOptions);
4937
+ searchDatasets(query: string, options?: CkanSearchOptions): Promise<WsperResponse<CkanSearchResult>>;
4938
+ getDataset(id: string): Promise<WsperResponse<CkanDataset>>;
4939
+ }
4940
+
4941
+ type DataGovAuScraperOptions = CkanScraperOptions;
4942
+ declare class DataGovAuScraper {
4943
+ #private;
4944
+ constructor(options?: DataGovAuScraperOptions);
4945
+ searchDatasets(query: string, options?: CkanSearchOptions): Promise<WsperResponse<CkanSearchResult>>;
4946
+ getDataset(id: string): Promise<WsperResponse<CkanDataset>>;
4947
+ }
4948
+
4949
+ interface DataEuropaScraperOptions extends ScraperOptions {
4950
+ baseUrl?: string;
4951
+ }
4952
+ interface DataEuropaSearchOptions {
4953
+ limit?: number;
4954
+ page?: number;
4955
+ }
4956
+ interface DataEuropaDataset {
4957
+ id: string;
4958
+ title: string;
4959
+ description: string;
4960
+ country: string | null;
4961
+ catalog: string | null;
4962
+ publisher: string | null;
4963
+ keywords: string[];
4964
+ issued: string;
4965
+ modified: string;
4966
+ }
4967
+ interface DataEuropaSearchResult {
4968
+ count: number;
4969
+ datasets: DataEuropaDataset[];
4970
+ }
4971
+
4972
+ declare class DataEuropaScraper {
4973
+ #private;
4974
+ constructor(options?: DataEuropaScraperOptions);
4975
+ searchDatasets(query: string, options?: DataEuropaSearchOptions): Promise<WsperResponse<DataEuropaSearchResult>>;
4976
+ }
4977
+
4978
+ declare class MediaWikiScraper {
4979
+ #private;
4980
+ constructor(options?: MediaWikiScraperOptions);
4981
+ search(query: string, options?: MediaWikiSearchOptions): Promise<WsperResponse<MediaWikiSearchResult>>;
4982
+ getPage(title: string): Promise<WsperResponse<MediaWikiPage>>;
4983
+ }
4984
+
4985
+ type WikimediaCommonsScraperOptions = MediaWikiScraperOptions;
4986
+ declare class WikimediaCommonsScraper {
4987
+ #private;
4988
+ constructor(options?: WikimediaCommonsScraperOptions);
4989
+ searchFiles(query: string, options?: MediaWikiSearchOptions): Promise<WsperResponse<MediaWikiSearchResult>>;
4990
+ getImageInfo(title: string): Promise<WsperResponse<MediaWikiImageInfo>>;
4991
+ }
4992
+
4993
+ interface WikidataScraperOptions extends ScraperOptions {
4994
+ baseUrl?: string;
4995
+ sparqlEndpoint?: string;
4996
+ }
4997
+ interface WikidataSearchOptions {
4998
+ limit?: number;
4999
+ language?: string;
5000
+ }
5001
+ interface WikidataEntity {
5002
+ id: string;
5003
+ label: string;
5004
+ description: string;
5005
+ conceptUri: string;
5006
+ url: string;
5007
+ }
5008
+
5009
+ declare class WikidataScraper {
5010
+ #private;
5011
+ constructor(options?: WikidataScraperOptions);
5012
+ searchEntities(query: string, options?: WikidataSearchOptions): Promise<WsperResponse<WikidataEntity[]>>;
5013
+ sparqlQuery(query: string): Promise<WsperResponse<SparqlResult>>;
5014
+ }
5015
+
5016
+ interface DbpediaScraperOptions extends ScraperOptions {
5017
+ sparqlEndpoint?: string;
5018
+ lookupUrl?: string;
5019
+ }
5020
+ interface DbpediaLookupOptions {
5021
+ limit?: number;
5022
+ }
5023
+ interface DbpediaResource {
5024
+ resource: string;
5025
+ label: string;
5026
+ comment: string;
5027
+ categories: string[];
5028
+ types: string[];
5029
+ refCount: number;
5030
+ }
5031
+ interface DbpediaLookupResult {
5032
+ results: DbpediaResource[];
5033
+ }
5034
+
5035
+ declare class DbpediaScraper {
5036
+ #private;
5037
+ constructor(options?: DbpediaScraperOptions);
5038
+ lookup(query: string, options?: DbpediaLookupOptions): Promise<WsperResponse<DbpediaLookupResult>>;
5039
+ sparqlQuery(query: string): Promise<WsperResponse<SparqlResult>>;
5040
+ }
5041
+
5042
+ interface BankIndonesiaScraperOptions {
5043
+ baseUrl?: string;
5044
+ http?: HttpOptions;
5045
+ queue?: QueueOptions;
5046
+ debug?: boolean;
5047
+ }
5048
+ interface BankIndonesiaRates {
5049
+ rates: Record<string, number>;
5050
+ pubDate: string;
5051
+ }
5052
+
5053
+ declare class BankIndonesiaScraper {
5054
+ #private;
5055
+ constructor(options?: BankIndonesiaScraperOptions);
5056
+ getExchangeRates(): Promise<WsperResponse<BankIndonesiaRates>>;
5057
+ }
5058
+
5059
+ interface BpsScraperOptions {
5060
+ baseUrl?: string;
5061
+ apiKey?: string;
5062
+ http?: HttpOptions;
5063
+ queue?: QueueOptions;
5064
+ debug?: boolean;
5065
+ }
5066
+ interface BpsTableItem {
5067
+ title: string;
5068
+ url: string;
5069
+ }
5070
+
5071
+ declare class BpsScraper {
5072
+ #private;
5073
+ constructor(options?: BpsScraperOptions);
5074
+ getLatestTables(): Promise<WsperResponse<BpsTableItem[]>>;
5075
+ }
5076
+
5077
+ interface JabarProvScraperOptions {
5078
+ baseUrl?: string;
5079
+ http?: HttpOptions;
5080
+ queue?: QueueOptions;
5081
+ debug?: boolean;
5082
+ }
5083
+ interface JabarProvResource {
5084
+ name: string;
5085
+ url: string;
5086
+ format?: string;
5087
+ }
5088
+ interface JabarProvDataset {
5089
+ id: string;
5090
+ title: string;
5091
+ description: string;
5092
+ resources: JabarProvResource[];
5093
+ }
5094
+
5095
+ declare class JabarProvScraper {
5096
+ #private;
5097
+ constructor(options?: JabarProvScraperOptions);
5098
+ searchDatasets(query: string, limit?: number): Promise<WsperResponse<JabarProvDataset[]>>;
5099
+ }
5100
+
5101
+ interface NasaApodScraperOptions {
5102
+ baseUrl?: string;
5103
+ apiKey?: string;
5104
+ http?: HttpOptions;
5105
+ queue?: QueueOptions;
5106
+ debug?: boolean;
5107
+ }
5108
+ interface NasaApodData {
5109
+ date: string;
5110
+ explanation: string;
5111
+ hdurl?: string;
5112
+ title: string;
5113
+ url: string;
5114
+ media_type: string;
5115
+ }
5116
+
5117
+ declare class NasaApodScraper {
5118
+ #private;
5119
+ constructor(options?: NasaApodScraperOptions);
5120
+ getApod(date?: string): Promise<WsperResponse<NasaApodData>>;
5121
+ }
5122
+
5123
+ interface CoinGeckoScraperOptions {
5124
+ baseUrl?: string;
5125
+ http?: HttpOptions;
5126
+ queue?: QueueOptions;
5127
+ debug?: boolean;
5128
+ }
5129
+ interface CoinGeckoPriceData {
5130
+ idr?: number;
5131
+ usd?: number;
5132
+ usd_24h_change?: number;
5133
+ }
5134
+ interface CoinGeckoSearchCoin {
5135
+ id: string;
5136
+ name: string;
5137
+ api_symbol: string;
5138
+ symbol: string;
5139
+ market_cap_rank?: number;
5140
+ thumb?: string;
5141
+ large?: string;
5142
+ }
5143
+
5144
+ declare class CoinGeckoScraper {
5145
+ #private;
5146
+ constructor(options?: CoinGeckoScraperOptions);
5147
+ getPrice(ids: string[], vsCurrencies?: string[]): Promise<WsperResponse<Record<string, Record<string, number>>>>;
5148
+ searchCoins(query: string): Promise<WsperResponse<CoinGeckoSearchCoin[]>>;
5149
+ }
5150
+
5151
+ interface StackExchangeScraperOptions {
5152
+ baseUrl?: string;
5153
+ http?: HttpOptions;
5154
+ queue?: QueueOptions;
5155
+ debug?: boolean;
5156
+ }
5157
+ interface StackExchangeQuestion {
5158
+ title: string;
5159
+ link: string;
5160
+ score: number;
5161
+ is_answered: boolean;
5162
+ view_count: number;
5163
+ answer_count: number;
5164
+ creation_date: number;
5165
+ tags: string[];
5166
+ }
5167
+
5168
+ declare class StackExchangeScraper {
5169
+ #private;
5170
+ constructor(options?: StackExchangeScraperOptions);
5171
+ search(query: string, site?: string): Promise<WsperResponse<StackExchangeQuestion[]>>;
5172
+ }
5173
+
5174
+ interface NominatimScraperOptions {
5175
+ baseUrl?: string;
5176
+ http?: HttpOptions;
5177
+ queue?: QueueOptions;
5178
+ debug?: boolean;
5179
+ }
5180
+ interface NominatimSearchResult {
5181
+ place_id: number;
5182
+ licence: string;
5183
+ osm_type: string;
5184
+ osm_id: number;
5185
+ lat: string;
5186
+ lon: string;
5187
+ display_name: string;
5188
+ class: string;
5189
+ type: string;
5190
+ importance: number;
5191
+ }
5192
+ interface NominatimReverseResult {
5193
+ place_id: number;
5194
+ licence: string;
5195
+ osm_type: string;
5196
+ osm_id: number;
5197
+ lat: string;
5198
+ lon: string;
5199
+ display_name: string;
5200
+ address: Record<string, string>;
5201
+ }
5202
+
5203
+ declare class NominatimScraper {
5204
+ #private;
5205
+ constructor(options?: NominatimScraperOptions);
5206
+ search(address: string, limit?: number): Promise<WsperResponse<NominatimSearchResult[]>>;
5207
+ reverse(lat: number, lon: number): Promise<WsperResponse<NominatimReverseResult>>;
5208
+ }
5209
+
5210
+ interface WsperPlatformCredentialsConfig {
5211
+ instagram?: WsperCredentialsInput | undefined;
5212
+ pinterest?: WsperCredentialsInput | undefined;
5213
+ threads?: WsperCredentialsInput | undefined;
5214
+ twitter?: WsperCredentialsInput | undefined;
5215
+ cai?: WsperCredentialsInput | undefined;
5216
+ }
5217
+ interface WsperScraperConfig {
5218
+ debug?: boolean | undefined;
5219
+ spotifyCredentials?: SpotifyCredentialsConfig | undefined;
5220
+ credentials?: WsperPlatformCredentialsConfig | undefined;
5221
+ http?: HttpOptions | undefined;
5222
+ queue?: QueueOptions | undefined;
5223
+ youtube?: YouTubeScraperOptions | undefined;
5224
+ }
5225
+ declare class WsperScraper {
5226
+ readonly spotify: SpotifyScraper;
5227
+ readonly twitter: TwitterScraper;
5228
+ readonly threads: ThreadsScraper;
5229
+ readonly instagram: InstagramScraper;
5230
+ readonly pinterest: PinterestScraper;
5231
+ readonly youtube: YouTubeScraper;
5232
+ readonly cai: CaiScraper;
5233
+ constructor(config?: WsperScraperConfig);
5234
+ }
5235
+
5236
+ declare function sleep(ms: number): Promise<void>;
5237
+
5238
+ declare function getDefaultUserAgent(): string;
5239
+ declare function getRandomUserAgent(): string;
5240
+
5241
+ interface BrowserHeaderProfile {
5242
+ userAgent: string;
5243
+ headers: Record<string, string>;
5244
+ }
5245
+ declare function getDefaultBrowserHeaderProfile(): BrowserHeaderProfile;
5246
+ declare function getRandomBrowserHeaderProfile(): BrowserHeaderProfile;
5247
+
5248
+ declare function assertNonEmptyString(value: unknown, name: string): string;
5249
+ declare function assertSafeHttpUrl(input: unknown, options?: {
5250
+ allowPrivateNetwork?: boolean;
5251
+ }): URL;
5252
+ declare function clampInteger(value: number, min: number, max: number): number;
5253
+ declare function isRetryableHttpError(error: unknown): boolean;
5254
+
5255
+ declare function normalizeUrl(input: string): string;
5256
+ declare function resolveUrl(base: string | URL, path: string): URL;
5257
+
5258
+ declare function zenFetchSource(url: string): Promise<string>;
5259
+ declare function zenWafSession(url: string): Promise<{
5260
+ cookie: string;
5261
+ headers: Record<string, string>;
5262
+ }>;
5263
+
5264
+ interface BinaryResolverOptions {
5265
+ pythonPath?: string;
5266
+ }
5267
+ interface ParsedCommand {
5268
+ command: string;
5269
+ prefixArgs: string[];
5270
+ }
5271
+ declare function parseCommandString(cmd: string): ParsedCommand;
5272
+ declare function resolveYtDlp(override?: string, options?: BinaryResolverOptions): Promise<string>;
5273
+ declare function resolveFfmpeg(override?: string, options?: BinaryResolverOptions): Promise<string>;
5274
+ declare function resolveFfprobe(override?: string, options?: BinaryResolverOptions): Promise<string>;
5275
+ interface ResolvedBinaries {
5276
+ ytdlpPath: string;
5277
+ ffmpegPath: string;
5278
+ ffprobePath: string;
5279
+ }
5280
+ declare function resolveAllBinaries(overrides?: Partial<ResolvedBinaries>, options?: BinaryResolverOptions): Promise<ResolvedBinaries>;
5281
+
5282
+ declare function splitTextIntoChunks(text: string, maxLength: number): string[];
2811
5283
 
2812
- export { ANALYTICS_CHART_MODELS, ANALYTICS_CHART_MODEL_NAMES, ANIME_CHARACTERS, AlkitabScraper, type AlkitabScraperOptions, type AlkitabVerse, type AnalyticsChartModel, type AnalyticsChartModelName, type AnalyticsChartVariant, type AnalyticsImageOptions, type AnalyticsTheme, type Android1Item, type Android1Result, type AnimationConfig, type AnimationDirection, type AnimationMode, type AnimationStep, type AnimeCharacter, type AnimeQuoteItem, AnimeQuoteScraper, type AnimeQuoteScraperOptions, type AnimeRandomResult, AnimeRandomScraper, type AnimeRandomScraperOptions, type AptoideItem, type AptoideResult, type BMKGBaseUrls, type BMKGEarthquake, type BMKGEarthquakeFeed, type BMKGForecast, type BMKGNowcasting, BMKGScraper, type BMKGScraperOptions, type BMKGShakemapDownload, BMKG_DEFAULT_BASE_URLS, BMKG_PROVINCE_CODES, BMKG_QUEUE_DEFAULTS, type BackgroundConfig, type BackgroundLinearConfig, type BackgroundRadialConfig, type BackgroundSolidConfig, BiliBiliScraper, type BiliBiliScraperOptions, type BiliBiliSearchItem, type BiliBiliSearchResult, type BiliBiliVideoInfo, type BiliBiliVideoStream, type BinaryResolverOptions, type BratConfig, BratGenerator, type BratResult, type BrowserHeaderProfile, CANVAS_PRESETS, CUACA_CITY_COORDS, CUACA_DEFAULT_BASE_URLS, CUACA_QUEUE_DEFAULTS, CUACA_WIND_DIRECTIONS, type CanvasConfig, type CanvasPreset, type CapCutDownloadResult, CapCutScraper, type CapCutScraperOptions, ChartGenerator, type ConvertOptions, CredentialsManager, type CuacaBaseUrls, type CuacaResult, CuacaScraper, type CuacaScraperOptions, type CuacaSearchResult, type CuacaWarningInfo, DEFAULT_ANIMATION, DEFAULT_CANVAS, DEFAULT_PADDING, DEFAULT_TEXT, type DownloadAudioFormat, DownloadError, type DownloadMetadata, type DownloadOptions, type DownloadResult, Downloader, type DrakorArtist, type DrakorDetail, type DrakorEpisode, type DrakorGenre, type DrakorItem, type DrakorList, type DrakorPagination, DrakorScraper, type DrakorScraperOptions, type DramaboxListItem, type DramaboxResult, DramaboxScraper, type DramaboxScraperOptions, type ExternalSource, FFMPEG_PATH, type FaceswapResult, FaceswapScraper, type FaceswapScraperOptions, type GifOutputConfig, type HokInfoResult, HokInfoScraper, type HokInfoScraperOptions, HtmlMetadataParser, type HtmlToJpgPageOrientation, type HtmlToJpgPageSize, type HtmlToJpgResult, HtmlToJpgScraper, type HtmlToJpgScraperOptions, type HtmlToJpgTask, type HtmlToJpgUploadForm, HttpClient, HttpError, type HttpErrorOptions, type HttpOptions, type HttpRequestOptions, type HttpResponse, type IkiruMangaItem, type IkiruMangaResult, IkiruMangaScraper, type IkiruMangaScraperOptions, type ImageOutputConfig, type ImagePost, ImageScraper, type ImageScraperOptions, type ImageSearchOptions, type ImageSearchResult, type ImageSiteName, type ImgUpscalerResult, type ImgUpscalerScale, ImgUpscalerScraper, type ImgUpscalerScraperOptions, type InstagramCarouselItem, type InstagramDownloadAsset, type InstagramDownloadPostInput, type InstagramDownloadProfileInput, type InstagramDownloadResult, type InstagramFeed, type InstagramFeedOptions, type InstagramMediaItem, type InstagramProfile, type InstagramProfileWithFeed, InstagramScraper, type InstagramScraperOptions, JsonParser, type KomikindoDetail, KomikindoScraper, type KomikindoScraperOptions, type KomikindoSearchItem, type LineLayout, type LinearGradientDirection, type LogLevel, type LyricsResult, LyricsScraper, type LyricsScraperOptions, type MConverterConvertResult, MConverterScraper, type MConverterScraperOptions, type MConverterTarget, type MConverterTargetsResult, type MaybePromise, type McAddonDetail, type McAddonResult, McAddonScraper, type McAddonScraperOptions, type McAddonSearchItem, type MediafireResult, MediafireScraper, type MediafireScraperOptions, ModAndroidScraper, type ModAndroidScraperOptions, type ModAndroidSearchResult, type ModyoloItem, type ModyoloResult, type MonthlyChartStyle, type MonthlyPoint, type NormalizedAnimation, type NormalizedBratConfig, type NormalizedPadding, type NormalizedSpotifyAlbum, type NormalizedSpotifyAlbumTrack, type NormalizedSpotifyArtist, type NormalizedSpotifyPlaylist, type NormalizedSpotifyPlaylistTrackItem, type NormalizedSpotifyTrack, type NpmCollaborator, type NpmInfoItem, type NpmPackage, type Nullable, type OcrScanResult, OcrScraper, type OcrScraperOptions, type Optional, type OutputConfig, PLATFORM_DEFAULT_HEADERS, type PaddingConfig, ParseError, type ParsedCommand, type ParsedHtmlMetadata, type PhotoAiCheckResult, PhotoAiScraper, type PhotoAiScraperOptions, type PhotoAiUploadResult, type PinterestBoard, type PinterestDownloadAsset, type PinterestDownloadPinInput, type PinterestDownloadResult, type PinterestImageVariant, type PinterestMedia, type PinterestPageInfo, type PinterestPin, PinterestScraper, type PinterestScraperOptions, type PinterestSearchOptions, type PinterestSearchResult, type PinterestStats, type PinterestStoryBlock, type PinterestStoryPage, type PinterestUser, type PinterestVideoVariant, type PlayStoreApp, PlayStoreScraper, type PlayStoreScraperOptions, type QueueOptions, type RadialGradientPosition, type RenderFrame, RequestQueue, type ResepItem, ResepScraper, type ResepScraperOptions, type ResolvedBinaries, type ResolvedSpotifyCredentials, type SakuraNovelChapterContent, type SakuraNovelChapterItem, type SakuraNovelDetail, SakuraNovelScraper, type SakuraNovelScraperOptions, type SakuraNovelSearchItem, ScraperError, type ScraperOptions, type SelectedDownload, type SpotifyCredentialSource, type SpotifyCredentialsConfig, type SpotifyDownloadAsset, type SpotifyDownloadAudioFormat, type SpotifyDownloadPostInput, type SpotifyDownloadProfileInput, type SpotifyDownloadResult, type SpotifyEntityType, type SpotifyExtracted, type SpotifyImage, type SpotifyOAuthToken, SpotifyScraper, type SpotifyScraperOptions, type SpotifySearchResult, type SpotifyTrackMeta, StalkScraper, type StalkScraperOptions, type StickerConfig, type StickerTextOptions, type StylePreset, type TextAlign, type TextConfig, type ThreadsBioLink, type ThreadsCaption, type ThreadsDownloadAsset, type ThreadsDownloadPostInput, type ThreadsDownloadProfileInput, type ThreadsDownloadResult, type ThreadsMedia, type ThreadsMediaCandidate, type ThreadsMediaItem, type ThreadsPageInfo, type ThreadsPost, type ThreadsPostInput, type ThreadsProfile, ThreadsScraper, type ThreadsScraperOptions, type ThreadsSearchOptions, type ThreadsSearchResult, type ThreadsStats, type ThreadsTopic, type ThreadsUser, type ThreadsVideoVersion, type Timestamped, type TopAnimeItem, TopAnimeScraper, type TopAnimeScraperOptions, type TwitterCursor, type TwitterDownloadAsset, type TwitterDownloadProfileInput, type TwitterDownloadResult, type TwitterDownloadTweetInput, type TwitterEntities, type TwitterEntityUrl, type TwitterHashtag, type TwitterMedia, type TwitterMention, type TwitterPageInfo, type TwitterProfileDownloadAsset, type TwitterProfileDownloadResult, TwitterScraper, type TwitterScraperOptions, type TwitterSearchOptions, type TwitterSearchResult, type TwitterTweet, type TwitterTweetDetail, type TwitterTweetInput, type TwitterTweetStats, type TwitterUser, type TwitterUserSearchResult, type TwitterUserTimeline, type TwitterUserTimelineInput, type TwitterVideoInfo, type TwitterVideoVariant, UguuScraper, type UguuScraperOptions, type UguuUploadResult, type UpscalerResult, UpscalerScraper, type UpscalerScraperOptions, type UptodownItem, type UptodownResult, ValidationError, type VideoOutputConfig, VideyScraper, type VideyScraperOptions, type VideyUploadResult, type WallpaperItem, type WallpaperResult, WallpaperScraper, type WallpaperScraperOptions, type Webp2Mp4Result, Webp2Mp4Scraper, type Webp2Mp4ScraperOptions, type Webp2Mp4Source, type WeeklyChartStyle, type WeeklyPoint, type WordPos, type WsperCredentials, WsperError, type WsperErrorOptions, type WsperErrorPayload, WsperLogger, type WsperPlatform, type WsperPlatformCredentialsConfig, type WsperResponse, type WsperResponseMeta, WsperScraper, type WsperScraperConfig, type WwCharResult, WwCharScraper, type WwCharScraperOptions, YouTubeScraper, type YouTubeScraperOptions, type YoutubeAudioExtractResult, type YoutubeAudioFormat, type YoutubeAudioFormatId, type YoutubeBasicInfo, type YoutubeChannel, type YoutubeChannelData, type YoutubeDownloadInfo, type YoutubeDownloadResult, type YoutubePlaylistData, type YoutubeSearchResult, type YoutubeStats, type YoutubeThumbnail, type YoutubeUploader, type YoutubeVideoFormat, type YoutubeVideoMetadata, type YtDlpChannel, type YtDlpOptions, type YtDlpStats, type YtDlpUploader, applyBlur, assertNonEmptyString, assertSafeHttpUrl, bratGenerator, buildLayout, buildPlatformHeaders, buildSteps, buildYtDlpSearchQuery, calcAutoFontSize, chartGenerator, clampInteger, convertImage, createErrorResponse, createSpotifyAuthUrl, createSuccessResponse, defaultWarning, demoAnalyticsData, downloadWithYtDlp, drawLayout, enrichTrackWithYtDlp, exchangeSpotifyCodeForToken, exportGif, exportImage, exportJson, exportVideo, extractSpotifyId, extractStatusCode, generateAnalyticsStatsImage, generateBrat, generateChartImage, getAnalyticsChartModels, getDefaultBrowserHeaderProfile, getDefaultUserAgent, getHtmlToJpgDownloadUrl, getRandomBrowserHeaderProfile, getRandomUserAgent, gifToMp4, gifToWebm, imageToSticker, imagesToSticker, isRetryableHttpError, makeCanvas, measureText, mp4ToGif, normalizeConfig, normalizePathfinderTrack, normalizeUrl, normalizeYtDlpDownload, normalizeYtDlpExternalSource, parseAlkitabSearchHtml, parseAndroid1Results, parseAnimeQuoteDetailHtml, parseAnimeQuoteFeedHtml, parseAptoideResults, parseBMKGEarthquakeFeed, parseBMKGForecastXml, parseBMKGNowcasting, parseBiliBiliPlayUrlResponse, parseBiliBiliSearchResponse, parseBiliBiliViewResponse, parseCapCutResolverResponse, parseCommandString, parseCuacaSearchLocations, parseCuacaWarning, parseCuacaWeather, parseDrakorDetailHtml, parseDrakorListHtml, parseDramaboxSearchHtml, parseEzgifOutputUrl, parseEzgifUploadForm, parseFaceswapCreateResponse, parseFaceswapPollResponse, parseHokInfoHtml, parseHtmlToJpgCreateJobResponse, parseHtmlToJpgTasks, parseIkiruMangaSearchHtml, parseImgUpscalerStatusResponse, parseImgUpscalerUploadResponse, parseKomikindoDetailHtml, parseKomikindoSearchHtml, parseLyricsResponse, parseMConverterPollResponse, parseMConverterTargets, parseMConverterUploadResponse, parseMcAddonDetailHtml, parseMcAddonSearchHtml, parseMediafireHtml, parseModyoloResults, parseNpmPackage, parseOcrResultHtml, parseOcrUploadHtml, parsePhotoAiCheckResponse, parsePhotoAiUploadResponse, parsePlayStoreSearchHtml, parseResepSearchHtml, parseSafebooruSearchResponse, parseSakuraNovelChapterHtml, parseSakuraNovelDetailHtml, parseSakuraNovelSearchHtml, parseTopAnimeHtml, parseUguuUploadResponse, parseUpscalerCreateResponse, parseUpscalerResultResponse, parseUptodownResults, parseVideyUploadResponse, parseWallpaperSearchJson, parseWwCharHtml, refreshSpotifyAccessToken, renderAnimationFrame, renderBackground, renderFrame, resolveAllBinaries, resolveFfmpeg, resolveFfprobe, resolveUrl, resolveYtDlp, safeFileName, searchYtDlpByTrack, sleep, toWwCharSlug, totalCharCount, totalLineCount, totalWordCount, wrapText, zenFetchSource, zenWafSession };
5284
+ export { ANALYTICS_CHART_MODELS, ANALYTICS_CHART_MODEL_NAMES, ANIME_CHARACTERS, type AioMedia, type AioResult, AioScraper, type AioScraperOptions, AlkitabScraper, type AlkitabScraperOptions, type AlkitabVerse, type AnalyticsChartModel, type AnalyticsChartModelName, type AnalyticsChartVariant, type AnalyticsImageOptions, type AnalyticsTheme, type Android1Item, type Android1Result, type AnimationConfig, type AnimationDirection, type AnimationMode, type AnimationStep, type AnimeCharacter, type AnimeQuoteItem, AnimeQuoteScraper, type AnimeQuoteScraperOptions, type AnimeRandomResult, AnimeRandomScraper, type AnimeRandomScraperOptions, type AptoideItem, type AptoideResult, ArenaAiScraper, type ArenaAiScraperOptions, type ArenaCategoriesResponse, type ArenaCategoryInfo, type ArenaLeaderboardMeta, type ArenaLeaderboardResponse, type ArenaModelItem, type BMKGBaseUrls, type BMKGEarthquake, type BMKGEarthquakeFeed, type BMKGForecast, type BMKGNowcasting, BMKGScraper, type BMKGScraperOptions, type BMKGShakemapDownload, BMKG_DEFAULT_BASE_URLS, BMKG_PROVINCE_CODES, BMKG_QUEUE_DEFAULTS, type BackgroundConfig, type BackgroundLinearConfig, type BackgroundRadialConfig, type BackgroundSolidConfig, type BankIndonesiaRates, BankIndonesiaScraper, type BankIndonesiaScraperOptions, type BbcNewsRegion, BiliBiliScraper, type BiliBiliScraperOptions, type BiliBiliSearchItem, type BiliBiliSearchResult, type BiliBiliVideoInfo, type BiliBiliVideoStream, BimasIslamScraper, type BimasIslamScraperOptions, type BinanceAveragePrice, type BinanceInterval, type BinanceKline, type BinanceKlineOptions, type BinanceOrderBook, type BinanceOrderBookLevel, BinanceScraper, type BinanceScraperOptions, type BinanceTicker24hr, type BinaryResolverOptions, BpsScraper, type BpsScraperOptions, type BpsTableItem, type BratConfig, BratGenerator, type BratResult, type BrowserHeaderProfile, CAINode, CANVAS_PRESETS, CUACA_CITY_COORDS, CUACA_DEFAULT_BASE_URLS, CUACA_QUEUE_DEFAULTS, CUACA_WIND_DIRECTIONS, type CaiChatParams, type CaiChatResult, CaiScraper, type CaiScraperOptions, type CaiSearchResult, type CaiVoiceResult, type CanvasConfig, type CanvasPreset, type CapCutDownloadResult, CapCutScraper, type CapCutScraperOptions, ChartGenerator, CkanClient, type CkanClientConfig, type CkanDataset, type CkanResource, type CkanScraperOptions, type CkanSearchOptions, type CkanSearchResult, ClinicalTrialsScraper, type ClinicalTrialsScraperOptions, type ClinicalTrialsSearchOptions, type ClinicalTrialsSearchResponse, type ClinicalTrialsSponsor, type ClinicalTrialsStudy, type CodashopCheckResult, CodashopScraper, type CodashopScraperOptions, type CoinGeckoPriceData, CoinGeckoScraper, type CoinGeckoScraperOptions, type CoinGeckoSearchCoin, type ConvertOptions, CredentialsManager, type CrossrefAuthor, type CrossrefJournal, type CrossrefJournalsResponse, CrossrefScraper, type CrossrefScraperOptions, type CrossrefSearchOptions, type CrossrefWork, type CrossrefWorksResponse, type CuacaBaseUrls, type CuacaResult, CuacaScraper, type CuacaScraperOptions, type CuacaSearchResult, type CuacaWarningInfo, DEFAULT_ANIMATION, DEFAULT_CANVAS, DEFAULT_PADDING, DEFAULT_TEXT, type DataEuropaDataset, DataEuropaScraper, type DataEuropaScraperOptions, type DataEuropaSearchOptions, type DataEuropaSearchResult, DataGovAuScraper, type DataGovAuScraperOptions, DataGovScraper, type DataGovScraperOptions, DataGovUkScraper, type DataGovUkScraperOptions, type DbpediaLookupOptions, type DbpediaLookupResult, type DbpediaResource, DbpediaScraper, type DbpediaScraperOptions, type DetikNewsItem, DetikNewsScraper, type DetikNewsScraperOptions, type DonghubDetail, type DonghubEpisode, DonghubScraper, type DonghubScraperOptions, type DonghubSearchItem, type DonghubSearchResult, type DownloadAudioFormat, DownloadError, type DownloadMetadata, type DownloadOptions, type DownloadResult, Downloader, type DownrMedia, type DownrResult, DownrScraper, type DownrScraperOptions, type DrakorArtist, type DrakorDetail, type DrakorEpisode, type DrakorGenre, type DrakorItem, type DrakorList, type DrakorPagination, DrakorScraper, type DrakorScraperOptions, type DramaboxListItem, type DramaboxResult, DramaboxScraper, type DramaboxScraperOptions, type EcbConversionResult, type EcbDailyReferenceRates, type EcbReferenceRate, EcbScraper, type EcbScraperOptions, type ExternalSource, FFMPEG_PATH, type FacebookDownloadResult, type FacebookPostDetail, FacebookScraper, type FacebookScraperOptions, type FacebookUserProfile, type FaceswapResult, FaceswapScraper, type FaceswapScraperOptions, type FaceswapV2Result, FaceswapV2Scraper, type FaceswapV2ScraperOptions, type ForeignNewsItem, ForeignNewsScraper, type ForeignNewsScraperOptions, type GDriveFileInfo, GDriveScraper, type GDriveScraperOptions, GenshinImpactScraper, type GenshinImpactScraperOptions, type GenshinMangaChapter, type GenshinWikiCategory, type GenshinWikiEntry, type GifOutputConfig, GoqrScraper, type GoqrScraperOptions, type GutendexBook, type GutendexPerson, GutendexScraper, type GutendexScraperOptions, type GutendexSearchOptions, type GutendexSearchResponse, type HackerNewsItem, type HackerNewsItemType, HackerNewsScraper, type HackerNewsScraperOptions, type HackerNewsStoryList, type HackerNewsUser, type HokInfoResult, HokInfoScraper, type HokInfoScraperOptions, HtmlMetadataParser, type HtmlToJpgPageOrientation, type HtmlToJpgPageSize, type HtmlToJpgResult, HtmlToJpgScraper, type HtmlToJpgScraperOptions, type HtmlToJpgTask, type HtmlToJpgUploadForm, HttpClient, HttpError, type HttpErrorOptions, type HttpOptions, type HttpRequestOptions, type HttpResponse, type IkiruMangaItem, type IkiruMangaResult, IkiruMangaScraper, type IkiruMangaScraperOptions, type ImageOutputConfig, type ImagePost, ImageScraper, type ImageScraperOptions, type ImageSearchOptions, type ImageSearchResult, type ImageSiteName, type ImgUpscalerResult, type ImgUpscalerScale, ImgUpscalerScraper, type ImgUpscalerScraperOptions, type ImgflipCaptionOptions, type ImgflipMemeTemplate, ImgflipScraper, type ImgflipScraperOptions, type InstagramCarouselItem, type InstagramDownloadAsset, type InstagramDownloadPostInput, type InstagramDownloadProfileInput, type InstagramDownloadResult, type InstagramFeed, type InstagramFeedOptions, type InstagramMediaItem, type InstagramProfile, type InstagramProfileWithFeed, InstagramScraper, type InstagramScraperOptions, type JabarProvDataset, type JabarProvResource, JabarProvScraper, type JabarProvScraperOptions, JsonParser, type KemenagPrayerTimes, type KemenagRegionItem, type KemendagBapokItem, KemendagScraper, type KemendagScraperOptions, type KomikindoDetail, KomikindoScraper, type KomikindoScraperOptions, type KomikindoSearchItem, type KompasNewsItem, KompasNewsScraper, type KompasNewsScraperOptions, LikeeScraper, type LikeeScraperOptions, type LikeeVideoInfo, type LineLayout, type LinearGradientDirection, type LogLevel, type LyricsResult, LyricsScraper, type LyricsScraperOptions, type MConverterConvertResult, MConverterScraper, type MConverterScraperOptions, type MConverterTarget, type MConverterTargetsResult, type MalAnimeItem, type MaybePromise, type McAddonDetail, type McAddonResult, McAddonScraper, type McAddonScraperOptions, type McAddonSearchItem, MediaWikiClient, type MediaWikiClientConfig, type MediaWikiImageInfo, type MediaWikiPage, MediaWikiScraper, type MediaWikiScraperOptions, type MediaWikiSearchItem, type MediaWikiSearchOptions, type MediaWikiSearchResult, type MediafireResult, MediafireScraper, type MediafireScraperOptions, ModAndroidScraper, type ModAndroidScraperOptions, type ModAndroidSearchResult, type ModyoloItem, type ModyoloResult, type MonthlyChartStyle, type MonthlyPoint, MyAnimeListScraper, type MyAnimeListScraperOptions, type NanoBananaResult, NanoBananaScraper, type NanoBananaScraperOptions, type NasaApodData, NasaApodScraper, type NasaApodScraperOptions, type NominatimReverseResult, NominatimScraper, type NominatimScraperOptions, type NominatimSearchResult, type NormalizedAnimation, type NormalizedBratConfig, type NormalizedPadding, type NormalizedSpotifyAlbum, type NormalizedSpotifyAlbumTrack, type NormalizedSpotifyArtist, type NormalizedSpotifyPlaylist, type NormalizedSpotifyPlaylistTrackItem, type NormalizedSpotifyTrack, type NpmCollaborator, type NpmInfoItem, type NpmPackage, type Nullable, type OcrScanResult, OcrScraper, type OcrScraperOptions, type OpenAlexAuthor, type OpenAlexInstitution, type OpenAlexInstitutionSummary, type OpenAlexMeta, type OpenAlexOpenAccess, OpenAlexScraper, type OpenAlexScraperOptions, type OpenAlexSearchOptions, type OpenAlexSearchResponse, type OpenAlexWork, OpenCanadaScraper, type OpenCanadaScraperOptions, type OpenLibraryAuthor, type OpenLibraryBookSearchResponse, type OpenLibraryBookSearchResult, type OpenLibraryIsbnBook, OpenLibraryScraper, type OpenLibraryScraperOptions, type OpenLibrarySearchOptions, type OpenLibraryWork, type OpenMeteoCurrentWeather, type OpenMeteoForecast, type OpenMeteoForecastOptions, OpenMeteoScraper, type OpenMeteoScraperOptions, type Optional, type OsvAffected, type OsvAffectedPackage, type OsvPackageQuery, type OsvQueryResponse, OsvScraper, type OsvScraperOptions, type OsvVulnerability, type OutputConfig, PLATFORM_DEFAULT_HEADERS, type PackagistPackage, type PackagistPackageVersion, PackagistScraper, type PackagistScraperOptions, type PackagistSearchOptions, type PackagistSearchResponse, type PackagistSearchResult, type PaddingConfig, ParseError, type ParsedCommand, type ParsedHtmlMetadata, type PhotoAiCheckResult, PhotoAiScraper, type PhotoAiScraperOptions, type PhotoAiUploadResult, type PinterestBoard, type PinterestDownloadAsset, type PinterestDownloadPinInput, type PinterestDownloadResult, type PinterestImageVariant, type PinterestMedia, type PinterestPageInfo, type PinterestPin, PinterestScraper, type PinterestScraperOptions, type PinterestSearchOptions, type PinterestSearchResult, type PinterestStats, type PinterestStoryBlock, type PinterestStoryPage, type PinterestUser, type PinterestVideoVariant, type PixivArtwork, PixivScraper, type PixivScraperOptions, type PixivTag, type PixivUrls, type PlayStoreApp, PlayStoreScraper, type PlayStoreScraperOptions, type PubgMobileNewsItem, PubgMobileScraper, type PubgMobileScraperOptions, type PypiDistributionFile, type PypiPackage, type PypiPackageInfo, type PypiProjectUrlMap, PypiScraper, type PypiScraperOptions, type QueueOptions, QueueRegistry, type RadialGradientPosition, type RemovebgResult, RemovebgScraper, type RemovebgScraperOptions, type RenderFrame, RequestQueue, type ResepItem, ResepScraper, type ResepScraperOptions, type ResolvedBinaries, type ResolvedSpotifyCredentials, type RestCountriesLookupOptions, type RestCountriesNameLookupOptions, RestCountriesScraper, type RestCountriesScraperOptions, type RestCountry, type RestCountryCurrency, type RestCountryFlags, type RestCountryMaps, type RestCountryName, type RestCountryNativeName, type RorCountry, type RorOrganization, RorScraper, type RorScraperOptions, type RorSearchOptions, type RorSearchResponse, type SakuraNovelChapterContent, type SakuraNovelChapterItem, type SakuraNovelDetail, SakuraNovelScraper, type SakuraNovelScraperOptions, type SakuraNovelSearchItem, ScraperError, type ScraperOptions, type SelectedDownload, type SfileMetadata, SfileScraper, type SfileScraperOptions, SoundcloudScraper, type SoundcloudScraperOptions, type SoundcloudStats, type SoundcloudTrack, type SoundcloudUser, type SparqlBinding, type SparqlCell, SparqlClient, type SparqlClientConfig, type SparqlResult, type SpotifyCredentialSource, type SpotifyCredentialsConfig, type SpotifyDownloadAsset, type SpotifyDownloadAudioFormat, type SpotifyDownloadPostInput, type SpotifyDownloadProfileInput, type SpotifyDownloadResult, type SpotifyEntityType, type SpotifyExtracted, type SpotifyImage, type SpotifyOAuthToken, SpotifyScraper, type SpotifyScraperOptions, type SpotifySearchResult, type SpotifyTrackMeta, type StackExchangeQuestion, StackExchangeScraper, type StackExchangeScraperOptions, StalkScraper, type StalkScraperOptions, type StickerConfig, type StickerTextOptions, type StylePreset, TIKWM_FEED_SEARCH, TIKWM_USER_API, TIKWM_USER_POSTS, TIKWM_USER_SEARCH, TIKWM_VIDEO_API, type TeraboxFile, TeraboxScraper, type TeraboxScraperOptions, type TeraboxShareInfo, type TextAlign, type TextConfig, type TextReplaceResult, TextReplaceScraper, type TextReplaceScraperOptions, type ThreadsBioLink, type ThreadsCaption, type ThreadsDownloadAsset, type ThreadsDownloadPostInput, type ThreadsDownloadProfileInput, type ThreadsDownloadResult, type ThreadsMedia, type ThreadsMediaCandidate, type ThreadsMediaItem, type ThreadsPageInfo, type ThreadsPost, type ThreadsPostInput, type ThreadsProfile, ThreadsScraper, type ThreadsScraperOptions, type ThreadsSearchOptions, type ThreadsSearchResult, type ThreadsStats, type ThreadsTopic, type ThreadsUser, type ThreadsVideoVersion, type TiktokAuthor, TiktokScraper, type TiktokScraperOptions, type TiktokSearchResult, type TiktokUser, type TiktokUserSearchResult, type TiktokVideo, type Timestamped, type TopAnimeItem, TopAnimeScraper, type TopAnimeScraperOptions, type TwitterCursor, type TwitterDownloadAsset, type TwitterDownloadProfileInput, type TwitterDownloadResult, type TwitterDownloadTweetInput, type TwitterEntities, type TwitterEntityUrl, type TwitterHashtag, type TwitterMedia, type TwitterMention, type TwitterPageInfo, type TwitterProfileDownloadAsset, type TwitterProfileDownloadResult, TwitterScraper, type TwitterScraperOptions, type TwitterSearchOptions, type TwitterSearchResult, type TwitterTweet, type TwitterTweetDetail, type TwitterTweetInput, type TwitterTweetStats, type TwitterUser, type TwitterUserSearchResult, type TwitterUserTimeline, type TwitterUserTimelineInput, type TwitterVideoInfo, type TwitterVideoVariant, UguuScraper, type UguuScraperOptions, type UguuUploadResult, type UnblurVideoResult, UnblurVideoScraper, type UnblurVideoScraperOptions, type UnsplashPhotoItem, UnsplashScraper, type UnsplashScraperOptions, type UnwatermarkResult, UnwatermarkScraper, type UnwatermarkScraperOptions, type UpscalerResult, UpscalerScraper, type UpscalerScraperOptions, type UpscalerV3FunctionType, type UpscalerV3Params, type UpscalerV3Result, UpscalerV3Scraper, type UpscalerV3ScraperOptions, type UptodownItem, type UptodownResult, type UsgsEarthquakeEvent, type UsgsEarthquakeFeed, type UsgsEarthquakeOrderBy, type UsgsEarthquakeQueryOptions, UsgsEarthquakeScraper, type UsgsEarthquakeScraperOptions, type UsgsEarthquakeSummary, ValidationError, type VideoOutputConfig, VideyScraper, type VideyScraperOptions, type VideyUploadResult, type WallpaperItem, type WallpaperResult, WallpaperScraper, type WallpaperScraperOptions, type Webp2Mp4Result, Webp2Mp4Scraper, type Webp2Mp4ScraperOptions, type Webp2Mp4Source, type WeeklyChartStyle, type WeeklyPoint, type WikidataEntity, WikidataScraper, type WikidataScraperOptions, type WikidataSearchOptions, WikimediaCommonsScraper, type WikimediaCommonsScraperOptions, WikipediaScraper, type WikipediaScraperOptions, type WikipediaSearchResult, type WikipediaSummary, type WordPos, type WorldBankCountry, type WorldBankIndicator, type WorldBankIndicatorDataOptions, type WorldBankIndicatorListOptions, type WorldBankIndicatorSeries, type WorldBankIndicatorValue, type WorldBankLabeledValue, type WorldBankListOptions, type WorldBankPagedResponse, type WorldBankPagination, WorldBankScraper, type WorldBankScraperOptions, type WsperCredentials, type WsperCredentialsInput, WsperError, type WsperErrorOptions, type WsperErrorPayload, WsperLogger, type WsperPlatform, type WsperPlatformCredentialsConfig, type WsperResponse, type WsperResponseMeta, WsperScraper, type WsperScraperConfig, type WwCharResult, WwCharScraper, type WwCharScraperOptions, type XiaohongshuImage, type XiaohongshuNote, XiaohongshuScraper, type XiaohongshuScraperOptions, type XiaohongshuStats, type XiaohongshuUser, YouTubeScraper, type YouTubeScraperOptions, type YoutubeAudioExtractResult, type YoutubeAudioFormat, type YoutubeAudioFormatId, type YoutubeBasicInfo, type YoutubeChannel, type YoutubeChannelData, type YoutubeDownloadInfo, type YoutubeDownloadResult, type YoutubePlaylistData, type YoutubeSearchResult, type YoutubeStats, type YoutubeThumbnail, type YoutubeUploader, type YoutubeVideoFormat, type YoutubeVideoMetadata, type YtDlpChannel, type YtDlpOptions, type YtDlpStats, type YtDlpUploader, applyBlur, assertNonEmptyString, assertSafeHttpUrl, bratGenerator, buildFeedSearchBody, buildLayout, buildPlatformHeaders, buildSteps, buildUserInfoBody, buildUserPostsBody, buildUserSearchBody, buildVideoApiBody, buildYtDlpSearchQuery, calcAutoFontSize, chartGenerator, clampInteger, convertImage, createErrorResponse, createSpotifyAuthUrl, createSuccessResponse, credentialFingerprint, defaultWarning, demoAnalyticsData, downloadWithYtDlp, drawLayout, enrichTrackWithYtDlp, exchangeSpotifyCodeForToken, exportGif, exportImage, exportJson, exportVideo, extractSpotifyId, extractStatusCode, genCryptoHeaders, generateAnalyticsStatsImage, generateBrat, generateChartImage, getAnalyticsChartModels, getDefaultBrowserHeaderProfile, getDefaultUserAgent, getHtmlToJpgDownloadUrl, getRandomBrowserHeaderProfile, getRandomUserAgent, gifToMp4, gifToWebm, imageToSticker, imagesToSticker, isRetryableHttpError, makeCanvas, measureText, mp4ToGif, normalizeConfig, normalizePathfinderTrack, normalizeUrl, normalizeYtDlpDownload, normalizeYtDlpExternalSource, parseAioResponse, parseAlkitabSearchHtml, parseAndroid1Results, parseAnimeQuoteDetailHtml, parseAnimeQuoteFeedHtml, parseAptoideResults, parseBMKGEarthquakeFeed, parseBMKGForecastXml, parseBMKGNowcasting, parseBiliBiliPlayUrlResponse, parseBiliBiliSearchResponse, parseBiliBiliViewResponse, parseCapCutResolverResponse, parseCommandString, parseCuacaSearchLocations, parseCuacaWarning, parseCuacaWeather, parseDirectTiktokVideo, parseDownrResponse, parseDrakorDetailHtml, parseDrakorListHtml, parseDramaboxSearchHtml, parseEzgifOutputUrl, parseEzgifUploadForm, parseFacebookPostDetail, parseFacebookUserProfile, parseFaceswapCreateResponse, parseFaceswapPollResponse, parseFaceswapV2CreateResponse, parseFaceswapV2PollResponse, parseHokInfoHtml, parseHtmlToJpgCreateJobResponse, parseHtmlToJpgTasks, parseIkiruMangaSearchHtml, parseImgUpscalerStatusResponse, parseImgUpscalerUploadResponse, parseKomikindoDetailHtml, parseKomikindoSearchHtml, parseLikeeHtml, parseLyricsResponse, parseMConverterPollResponse, parseMConverterTargets, parseMConverterUploadResponse, parseMcAddonDetailHtml, parseMcAddonSearchHtml, parseMediafireHtml, parseModyoloResults, parseNanoBananaCreateResponse, parseNanoBananaPollResponse, parseNanoBananaUploadResponse, parseNpmPackage, parseOcrResultHtml, parseOcrUploadHtml, parsePhotoAiCheckResponse, parsePhotoAiUploadResponse, parsePlayStoreSearchHtml, parseRemovebgResponse, parseResepSearchHtml, parseSafebooruSearchResponse, parseSakuraNovelChapterHtml, parseSakuraNovelDetailHtml, parseSakuraNovelSearchHtml, parseSfileHtml, parseSparqlResult, parseTextReplaceCreateResponse, parseTextReplacePollResponse, parseTextReplaceUploadResponse, parseTikwmUser, parseTikwmUserSearchResult, parseTikwmVideo, parseTopAnimeHtml, parseUguuUploadResponse, parseUnblurVideoCreateResponse, parseUnblurVideoPollResponse, parseUnblurVideoUploadResponse, parseUnwatermarkCreateResponse, parseUnwatermarkPollResponse, parseUpscalerCreateResponse, parseUpscalerResultResponse, parseUpscalerV3Response, parseUptodownResults, parseVideyUploadResponse, parseWallpaperSearchJson, parseWwCharHtml, queueKey, refreshSpotifyAccessToken, renderAnimationFrame, renderBackground, renderFrame, resolveAllBinaries, resolveFfmpeg, resolveFfprobe, resolveTikwmUrl, resolveUrl, resolveYtDlp, safeFileName, searchYtDlpByTrack, sleep, splitTextIntoChunks, toWwCharSlug, totalCharCount, totalLineCount, totalWordCount, wrapText, zenFetchSource, zenWafSession };