serpkite 0.4.0 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.cts CHANGED
@@ -156,7 +156,17 @@ interface paths {
156
156
  };
157
157
  get?: never;
158
158
  put?: never;
159
- /** Google Maps search (places with coordinates). Accepts `ll` ("@lat,lng,zoomz") to search around a point */
159
+ /**
160
+ * Google Maps search (places with coordinates). Accepts `ll` ("@lat,lng,zoomz") to search around a point
161
+ * @description Google Maps search results: name, full address, coordinates, categories, rating, website,
162
+ * phone, opening hours and the place's identifiers (`place_id`, `cid`, `fid`) for
163
+ * `/v1/place` and `/v1/reviews`. Categories, addresses and hours are in `language`.
164
+ *
165
+ * **Where:** `ll` ("@lat,lng,zoomz") searches the map at that point and zoom; `location`
166
+ * (or `uule`) searches the named place. Without either, Google picks the area from the
167
+ * query (an exact name or address) or from where the request comes from, so local queries
168
+ * such as "coffee" need `location` or `ll`.
169
+ */
160
170
  post: operations["maps"];
161
171
  delete?: never;
162
172
  options?: never;
@@ -173,7 +183,10 @@ interface paths {
173
183
  };
174
184
  get?: never;
175
185
  put?: never;
176
- /** Google local results (places) */
186
+ /**
187
+ * Google local results (places)
188
+ * @description Same results as `/v1/maps` (Google Maps search), with the same fields and location rules.
189
+ */
177
190
  post: operations["places"];
178
191
  delete?: never;
179
192
  options?: never;
@@ -181,6 +194,29 @@ interface paths {
181
194
  patch?: never;
182
195
  trace?: never;
183
196
  };
197
+ "/v1/place": {
198
+ parameters: {
199
+ query?: never;
200
+ header?: never;
201
+ path?: never;
202
+ cookie?: never;
203
+ };
204
+ get?: never;
205
+ put?: never;
206
+ /**
207
+ * Details of one place (by `place_id`, `cid` or `fid`); 1 credit
208
+ * @description The full Google Maps listing of one place: address, country, coordinates, time zone,
209
+ * categories, opening hours (as text and as structured `weekly_hours`), website, phone,
210
+ * rating, description and photos, in `language`. `results` holds the place, or is empty
211
+ * (not charged) when no place has that identifier.
212
+ */
213
+ post: operations["place"];
214
+ delete?: never;
215
+ options?: never;
216
+ head?: never;
217
+ patch?: never;
218
+ trace?: never;
219
+ };
184
220
  "/v1/reviews": {
185
221
  parameters: {
186
222
  query?: never;
@@ -639,7 +675,15 @@ interface paths {
639
675
  };
640
676
  get?: never;
641
677
  put?: never;
642
- /** Remote MCP server (streamable HTTP, JSON-RPC 2.0). Tools search, news, maps, scholar, webpage */
678
+ /**
679
+ * Remote MCP server (streamable HTTP, JSON-RPC 2.0). Tools search, news, maps, place, scholar, webpage
680
+ * @description Authenticates with an API key (`Authorization: Bearer skt_live_…`) or an
681
+ * OAuth 2.1 access token (`skt_oat_…`) issued by app-api.serpkite.com for
682
+ * this resource (MCP authorization spec). Without a valid credential the
683
+ * 401 carries `WWW-Authenticate: Bearer resource_metadata="…/.well-known/oauth-protected-resource/v1/mcp", scope="mcp"`
684
+ * (plus `error="invalid_token"` when a credential was rejected). OAuth
685
+ * access tokens are only accepted here, not on the REST endpoints.
686
+ */
643
687
  post: operations["mcp"];
644
688
  delete?: never;
645
689
  options?: never;
@@ -647,6 +691,40 @@ interface paths {
647
691
  patch?: never;
648
692
  trace?: never;
649
693
  };
694
+ "/.well-known/oauth-protected-resource/v1/mcp": {
695
+ parameters: {
696
+ query?: never;
697
+ header?: never;
698
+ path?: never;
699
+ cookie?: never;
700
+ };
701
+ /** OAuth protected resource metadata for the MCP server (RFC 9728) */
702
+ get: operations["mcpProtectedResourceMetadata"];
703
+ put?: never;
704
+ post?: never;
705
+ delete?: never;
706
+ options?: never;
707
+ head?: never;
708
+ patch?: never;
709
+ trace?: never;
710
+ };
711
+ "/.well-known/oauth-protected-resource": {
712
+ parameters: {
713
+ query?: never;
714
+ header?: never;
715
+ path?: never;
716
+ cookie?: never;
717
+ };
718
+ /** OAuth protected resource metadata (root form; same document) */
719
+ get: operations["protectedResourceMetadata"];
720
+ put?: never;
721
+ post?: never;
722
+ delete?: never;
723
+ options?: never;
724
+ head?: never;
725
+ patch?: never;
726
+ trace?: never;
727
+ };
650
728
  }
651
729
  interface components {
652
730
  schemas: {
@@ -675,6 +753,25 @@ interface components {
675
753
  request_id?: string;
676
754
  };
677
755
  };
756
+ /** @description RFC 9728 protected resource metadata */
757
+ ProtectedResourceMetadata: {
758
+ /**
759
+ * Format: uri
760
+ * @example https://api.serpkite.com/v1/mcp
761
+ */
762
+ resource: string;
763
+ /**
764
+ * @example [
765
+ * "https://app-api.serpkite.com"
766
+ * ]
767
+ */
768
+ authorization_servers: string[];
769
+ scopes_supported?: string[];
770
+ bearer_methods_supported?: string[];
771
+ resource_name?: string;
772
+ /** Format: uri */
773
+ resource_documentation?: string;
774
+ };
678
775
  SearchRequest: {
679
776
  q: string;
680
777
  /**
@@ -691,7 +788,7 @@ interface components {
691
788
  location?: string;
692
789
  /** @description Pre-encoded Google location (overrides ll and location; percent-encoded values are decoded) */
693
790
  uule?: string;
694
- /** @description Map point "@lat,lng,14z" (maps and places only; zoom optional): the search runs as a searcher at that point. Overrides location */
791
+ /** @description Map point "@lat,lng,14z" (maps and places only; zoom optional, default 14z): the map is searched around that point at that zoom, wherever the request comes from. Overrides location */
695
792
  ll?: string;
696
793
  /**
697
794
  * @description 10, or up to 100 for the depth bundle on search and news (7 credits for 100; values between round up to whole pages). Other verticals return one page of 10
@@ -779,14 +876,15 @@ interface components {
779
876
  country?: string;
780
877
  language?: string;
781
878
  /**
879
+ * @description Only `most_relevant` is served: Google Maps shows other review orders only to signed-in visitors, so `newest`, `highest_rating` and `lowest_rating` return 400 (not charged).
782
880
  * @default most_relevant
783
881
  * @enum {string}
784
882
  */
785
883
  sort?: "most_relevant" | "newest" | "highest_rating" | "lowest_rating";
786
- /** @description `next_page_token` from the previous page, unchanged. Opaque and bound to the place and `sort` it was issued for (anything else is a 400). Paging reaches the first 100 reviews of a place per sort order. */
884
+ /** @description `next_page_token` from the previous page, unchanged. Opaque and bound to the place and `sort` it was issued for (anything else is a 400). Paging reaches the first 10 reviews of a place, all Google Maps shows a logged-out visitor. */
787
885
  page_token?: string;
788
886
  /**
789
- * @description Reviews per page (a page can be shorter when Google stops loading early; `next_page_token` then resumes after it)
887
+ * @description Reviews per page; a page holds at most 10 (the first 10 reviews of a place). A page can be shorter when Google stops loading early; `next_page_token` then resumes after it
790
888
  * @default 10
791
889
  */
792
890
  num?: number;
@@ -795,6 +893,34 @@ interface components {
795
893
  fields?: string;
796
894
  max_age?: number;
797
895
  };
896
+ /** @description One of place_id, cid or fid is required (place_id wins, then fid, then cid) */
897
+ PlaceRequest: {
898
+ /** @description Google place id ("ChIJ…"), e.g. `place_id` of a /v1/maps result */
899
+ place_id?: string;
900
+ /** @description Decimal customer id (`cid` of a result) */
901
+ cid?: string;
902
+ /** @description Feature id "0x…:0x…" (`fid` of a result) */
903
+ fid?: string;
904
+ /**
905
+ * @description Country code (ISO 3166-1 alpha-2); Google's regional view of the listing
906
+ * @default us
907
+ */
908
+ country?: string;
909
+ /**
910
+ * @description Language of the address, categories, hours and description (e.g. en, ru, de)
911
+ * @default en
912
+ */
913
+ language?: string;
914
+ /**
915
+ * @default json
916
+ * @enum {string}
917
+ */
918
+ format?: "json" | "markdown" | "compact";
919
+ fields?: string;
920
+ /** @description Accept a cached result up to this many seconds old (50% of credits on a hit) */
921
+ max_age?: number;
922
+ engine?: components["schemas"]["EngineParam"];
923
+ };
798
924
  WebpageRequest: {
799
925
  /**
800
926
  * Format: uri
@@ -1351,14 +1477,63 @@ interface components {
1351
1477
  types?: string[];
1352
1478
  website?: string;
1353
1479
  phone_number?: string;
1480
+ /** @example +44 20 7232 3010 */
1481
+ international_phone_number?: string;
1482
+ /** @description Hours as Google displays them, keyed by English weekday (Monday … Sunday), in `language`, e.g. {"Monday": "7:30 am–6 pm", "Sunday": "Closed"} */
1354
1483
  opening_hours?: {
1355
1484
  [key: string]: string;
1356
1485
  };
1486
+ weekly_hours?: components["schemas"]["WeeklyHours"];
1487
+ /** @description ISO 3166-1 alpha-2 country code of the place, upper case (RU, GB) */
1488
+ country?: string;
1489
+ /** @description IANA time zone of the place (Europe/Moscow) */
1490
+ timezone?: string;
1491
+ /** @description Google's short description of the place, or the owner's, when Google shows one */
1492
+ description?: string;
1493
+ /** @description Photos of the place (/v1/place; up to 10). The URLs are public and can be fetched server-side without cookies */
1494
+ photos?: components["schemas"]["PlacePhoto"][];
1495
+ /** @description The place on Google Maps */
1496
+ google_maps_url?: string;
1357
1497
  thumbnail_url?: string;
1358
1498
  place_id?: string;
1359
1499
  cid?: string;
1360
1500
  fid?: string;
1361
1501
  };
1502
+ /**
1503
+ * @description Opening hours per weekday, from Google's listing, as local times (`timezone`) in 24-hour HH:MM.
1504
+ * A day that is closed is an empty list; a day open 24 hours is `[{"open": "00:00", "close": "24:00"}]`;
1505
+ * a day with a break has several intervals. `close` is "24:00" at midnight, and an interval that
1506
+ * ends after midnight has `next_day: true` (e.g. 17:30–03:00). Days Google doesn't list are absent.
1507
+ */
1508
+ WeeklyHours: {
1509
+ monday?: components["schemas"]["HoursIntervals"];
1510
+ tuesday?: components["schemas"]["HoursIntervals"];
1511
+ wednesday?: components["schemas"]["HoursIntervals"];
1512
+ thursday?: components["schemas"]["HoursIntervals"];
1513
+ friday?: components["schemas"]["HoursIntervals"];
1514
+ saturday?: components["schemas"]["HoursIntervals"];
1515
+ sunday?: components["schemas"]["HoursIntervals"];
1516
+ };
1517
+ HoursIntervals: components["schemas"]["HoursInterval"][];
1518
+ HoursInterval: {
1519
+ /** @example 08:00 */
1520
+ open: string;
1521
+ /** @example 22:00 */
1522
+ close: string;
1523
+ /** @description The interval closes after midnight, on the next day */
1524
+ next_day?: boolean;
1525
+ };
1526
+ PlacePhoto: {
1527
+ /** @description Image URL (at most 1600 px on the long side) */
1528
+ url: string;
1529
+ width?: number;
1530
+ height?: number;
1531
+ /**
1532
+ * @description Who uploaded it, when Google says (Google shows no contributor names to logged-out visitors)
1533
+ * @enum {string}
1534
+ */
1535
+ source?: "business" | "visitor";
1536
+ };
1362
1537
  PlacesResponse: {
1363
1538
  request: components["schemas"]["RequestEcho"];
1364
1539
  results: components["schemas"]["PlaceResult"][];
@@ -1567,13 +1742,15 @@ interface components {
1567
1742
  requests: number;
1568
1743
  /** @description Share of requests without a 5xx (0-1) */
1569
1744
  success_rate: number;
1745
+ /** @description Median latency of successful (non-error) responses; 0 when none succeeded */
1570
1746
  p50_ms: number;
1747
+ /** @description 95th-percentile latency of successful (non-error) responses; 0 when none succeeded */
1571
1748
  p95_ms: number;
1572
1749
  }[];
1573
1750
  };
1574
1751
  BatchCreateRequest: {
1575
1752
  /** @enum {string} */
1576
- endpoint: "search" | "images" | "videos" | "news" | "maps" | "places" | "reviews" | "shopping" | "scholar" | "patents" | "autocomplete" | "webpage";
1753
+ endpoint: "search" | "images" | "videos" | "news" | "maps" | "places" | "place" | "reviews" | "shopping" | "scholar" | "patents" | "autocomplete" | "webpage";
1577
1754
  /** @description Request bodies for `endpoint` (same fields as the realtime endpoint) */
1578
1755
  requests: {
1579
1756
  [key: string]: unknown;
@@ -2393,6 +2570,28 @@ interface operations {
2393
2570
  503: components["responses"]["Unavailable"];
2394
2571
  };
2395
2572
  };
2573
+ place: {
2574
+ parameters: {
2575
+ query?: never;
2576
+ header?: never;
2577
+ path?: never;
2578
+ cookie?: never;
2579
+ };
2580
+ requestBody: {
2581
+ content: {
2582
+ "application/json": components["schemas"]["PlaceRequest"];
2583
+ };
2584
+ };
2585
+ responses: {
2586
+ 200: components["responses"]["PlacesOK"];
2587
+ 400: components["responses"]["Error"];
2588
+ 401: components["responses"]["Error"];
2589
+ 402: components["responses"]["Error"];
2590
+ 403: components["responses"]["Error"];
2591
+ 429: components["responses"]["Error"];
2592
+ 503: components["responses"]["Unavailable"];
2593
+ };
2594
+ };
2396
2595
  reviews: {
2397
2596
  parameters: {
2398
2597
  query?: never;
@@ -3096,7 +3295,57 @@ interface operations {
3096
3295
  };
3097
3296
  content?: never;
3098
3297
  };
3099
- 401: components["responses"]["Error"];
3298
+ /** @description Missing, invalid, expired or revoked credential */
3299
+ 401: {
3300
+ headers: {
3301
+ /** @description RFC 9728 challenge pointing at the protected resource metadata */
3302
+ "WWW-Authenticate"?: string;
3303
+ [name: string]: unknown;
3304
+ };
3305
+ content: {
3306
+ "application/json": components["schemas"]["Error"];
3307
+ };
3308
+ };
3309
+ };
3310
+ };
3311
+ mcpProtectedResourceMetadata: {
3312
+ parameters: {
3313
+ query?: never;
3314
+ header?: never;
3315
+ path?: never;
3316
+ cookie?: never;
3317
+ };
3318
+ requestBody?: never;
3319
+ responses: {
3320
+ /** @description Metadata */
3321
+ 200: {
3322
+ headers: {
3323
+ [name: string]: unknown;
3324
+ };
3325
+ content: {
3326
+ "application/json": components["schemas"]["ProtectedResourceMetadata"];
3327
+ };
3328
+ };
3329
+ };
3330
+ };
3331
+ protectedResourceMetadata: {
3332
+ parameters: {
3333
+ query?: never;
3334
+ header?: never;
3335
+ path?: never;
3336
+ cookie?: never;
3337
+ };
3338
+ requestBody?: never;
3339
+ responses: {
3340
+ /** @description Metadata */
3341
+ 200: {
3342
+ headers: {
3343
+ [name: string]: unknown;
3344
+ };
3345
+ content: {
3346
+ "application/json": components["schemas"]["ProtectedResourceMetadata"];
3347
+ };
3348
+ };
3100
3349
  };
3101
3350
  };
3102
3351
  crawlCompletedWebhook: {
@@ -3171,6 +3420,11 @@ type SearchParams = Omit<Schemas["SearchRequest"], "engine"> & {
3171
3420
  engine?: Engine;
3172
3421
  };
3173
3422
  type ReviewsParams = Schemas["ReviewsRequest"];
3423
+ /** Parameters of `place`: one of `place_id`, `cid` or `fid` (place_id wins, then fid, then cid). */
3424
+ type PlaceParams = Omit<Schemas["PlaceRequest"], "engine"> & {
3425
+ /** Search providers allowed to answer. Default `"google"`. See {@link Engine}. */
3426
+ engine?: Engine;
3427
+ };
3174
3428
  type WebpageParams = Schemas["WebpageRequest"];
3175
3429
  type RankParams = Schemas["RankRequest"];
3176
3430
  type MapParams = Schemas["MapRequest"];
@@ -3190,6 +3444,16 @@ type ImageResult = Schemas["ImageResult"];
3190
3444
  type VideoResult = Schemas["VideoResult"];
3191
3445
  type NewsResult = Schemas["NewsResult"];
3192
3446
  type PlaceResult = Schemas["PlaceResult"];
3447
+ /**
3448
+ * Opening hours per weekday (`monday` … `sunday`) as local 24-hour `HH:MM` intervals: a closed
3449
+ * day is `[]`, a day open 24 hours `[{ open: "00:00", close: "24:00" }]`. Days Google doesn't
3450
+ * list are absent.
3451
+ */
3452
+ type WeeklyHours = Schemas["WeeklyHours"];
3453
+ /** One opening interval; `next_day` when it closes after midnight. */
3454
+ type HoursInterval = Schemas["HoursInterval"];
3455
+ /** A photo of a place (`place`; up to 10). */
3456
+ type PlacePhoto = Schemas["PlacePhoto"];
3193
3457
  type ReviewResult = Schemas["ReviewResult"];
3194
3458
  type ShoppingResult = Schemas["ShoppingResult"];
3195
3459
  type ScholarResult = Schemas["ScholarResult"];
@@ -3210,7 +3474,7 @@ type SearchResponse = Schemas["SearchResponse"];
3210
3474
  type ImagesResponse = Schemas["ImagesResponse"];
3211
3475
  type VideosResponse = Schemas["VideosResponse"];
3212
3476
  type NewsResponse = Schemas["NewsResponse"];
3213
- /** Returned by both `maps` and `places`. */
3477
+ /** Returned by `maps`, `places` and `place`. */
3214
3478
  type PlacesResponse = Schemas["PlacesResponse"];
3215
3479
  type MapsResponse = PlacesResponse;
3216
3480
  type ReviewsResponse = Schemas["ReviewsResponse"];
@@ -3253,6 +3517,7 @@ type BatchRequestMap = {
3253
3517
  news: SearchParams;
3254
3518
  maps: SearchParams;
3255
3519
  places: SearchParams;
3520
+ place: PlaceParams;
3256
3521
  reviews: ReviewsParams;
3257
3522
  shopping: SearchParams;
3258
3523
  scholar: SearchParams;
@@ -3365,7 +3630,7 @@ type WebhookEvent = {
3365
3630
  data: MonitorResultsEvent;
3366
3631
  };
3367
3632
 
3368
- declare const VERSION = "0.4.0";
3633
+ declare const VERSION = "0.5.0";
3369
3634
  declare const DEFAULT_BASE_URL = "https://api.serpkite.com";
3370
3635
  interface SerpKiteOptions {
3371
3636
  /** API key (`skt_live_…`). Defaults to the `SERPKITE_API_KEY` environment variable. */
@@ -3498,6 +3763,16 @@ declare class SerpKite {
3498
3763
  results: components["schemas"]["PlaceResult"][];
3499
3764
  meta: components["schemas"]["Meta"];
3500
3765
  }>;
3766
+ /**
3767
+ * Details of one place by `place_id`, `cid` or `fid`: address, country, time zone, hours
3768
+ * (`opening_hours` text and structured `weekly_hours`), phones, description and photos.
3769
+ * `results` holds the place, or is empty (not charged) when no place has that id. 1 credit.
3770
+ */
3771
+ readonly place: VerticalMethod<PlaceParams, {
3772
+ request: components["schemas"]["RequestEcho"];
3773
+ results: components["schemas"]["PlaceResult"][];
3774
+ meta: components["schemas"]["Meta"];
3775
+ }>;
3501
3776
  /** Reviews of a place by `place_id`, `cid` or `fid`. Page with `page_token` = `next_page_token`. */
3502
3777
  readonly reviews: VerticalMethod<{
3503
3778
  place_id?: string;
@@ -3744,4 +4019,4 @@ declare function verifyWebhook(secret: string, payload: string | Uint8Array, hea
3744
4019
  */
3745
4020
  declare function parseWebhook(secret: string, payload: string | Uint8Array, headers: HeaderSource, options?: VerifyWebhookOptions): Promise<WebhookEvent>;
3746
4021
 
3747
- export { type Account, type AnswerBox, type AutocompleteResponse, type Batch, type BatchCompletedEvent, type BatchCreateEntry, type BatchCreateError, type BatchCreateOptions, type BatchCreateParams, type BatchCreateResponse, type BatchEndpoint, type BatchStatus, type CompactResponse, type CrawlPage, type CrawlParams, type CrawlResult, type CrawlSitemapMode, type CrawlStats, type CrawlStopReason, type CrawlTask, DEFAULT_BASE_URL, type DomainList, type Engine, type ErrorBody, type ExtractFailure, type ExtractParams, type ExtractResponse, type ExtractResult, type Format, type Highlight, type ImageResult, type ImagesResponse, type KnowledgeGraph, type MapParams, type MapResponse, type MapURL, type MapsResponse, type Meta, type Monitor, type MonitorCreateParams, type MonitorEndpoint, type MonitorList, type MonitorMetadata, type MonitorPageChange, type MonitorResultsEvent, type MonitorRun, type MonitorRunList, type MonitorRunsParams, type MonitorSearch, type MonitorStatus, type MonitorUpdateParams, type NewsResponse, type NewsResult, type OrganicResult, type PageLink, type PageMetadata, type PatentResult, type PatentsResponse, type PeopleAlsoAsk, type PlaceResult, type PlacesResponse, type Provider, type RankMatch, type RankParams, type RankResponse, type RelatedSearch, type RequestEcho, type RequestOptions, type ResponseInfo, type ReviewResult, type ReviewsParams, type ReviewsResponse, type RouteOutcome, type RouteStep, type ScholarResponse, type ScholarResult, type SearchParams, type SearchResponse, SerpKite, SerpKiteError, type SerpKiteOptions, type ShoppingResponse, type ShoppingResult, type Sitelink, type Status, type Suggestion, type TaskCancelResponse, type TaskCompletedEvent, type TaskCreated, type TaskError, type TaskStatus, VERSION, type VerifyWebhookOptions, type VerticalMethod, type VideoResult, type VideosResponse, type WaitOptions, type WebhookEvent, type WebhookEventType, type WebpageParams, type WebpageResponse, type components, isBatchError, type operations, parseRetryAfter, parseWebhook, type paths, verifyWebhook };
4022
+ export { type Account, type AnswerBox, type AutocompleteResponse, type Batch, type BatchCompletedEvent, type BatchCreateEntry, type BatchCreateError, type BatchCreateOptions, type BatchCreateParams, type BatchCreateResponse, type BatchEndpoint, type BatchStatus, type CompactResponse, type CrawlPage, type CrawlParams, type CrawlResult, type CrawlSitemapMode, type CrawlStats, type CrawlStopReason, type CrawlTask, DEFAULT_BASE_URL, type DomainList, type Engine, type ErrorBody, type ExtractFailure, type ExtractParams, type ExtractResponse, type ExtractResult, type Format, type Highlight, type HoursInterval, type ImageResult, type ImagesResponse, type KnowledgeGraph, type MapParams, type MapResponse, type MapURL, type MapsResponse, type Meta, type Monitor, type MonitorCreateParams, type MonitorEndpoint, type MonitorList, type MonitorMetadata, type MonitorPageChange, type MonitorResultsEvent, type MonitorRun, type MonitorRunList, type MonitorRunsParams, type MonitorSearch, type MonitorStatus, type MonitorUpdateParams, type NewsResponse, type NewsResult, type OrganicResult, type PageLink, type PageMetadata, type PatentResult, type PatentsResponse, type PeopleAlsoAsk, type PlaceParams, type PlacePhoto, type PlaceResult, type PlacesResponse, type Provider, type RankMatch, type RankParams, type RankResponse, type RelatedSearch, type RequestEcho, type RequestOptions, type ResponseInfo, type ReviewResult, type ReviewsParams, type ReviewsResponse, type RouteOutcome, type RouteStep, type ScholarResponse, type ScholarResult, type SearchParams, type SearchResponse, SerpKite, SerpKiteError, type SerpKiteOptions, type ShoppingResponse, type ShoppingResult, type Sitelink, type Status, type Suggestion, type TaskCancelResponse, type TaskCompletedEvent, type TaskCreated, type TaskError, type TaskStatus, VERSION, type VerifyWebhookOptions, type VerticalMethod, type VideoResult, type VideosResponse, type WaitOptions, type WebhookEvent, type WebhookEventType, type WebpageParams, type WebpageResponse, type WeeklyHours, type components, isBatchError, type operations, parseRetryAfter, parseWebhook, type paths, verifyWebhook };