@microsoft/webiq 0.1.6 → 0.1.8

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.mts CHANGED
@@ -89,21 +89,38 @@ declare enum SafeSearch {
89
89
  STRICT = "strict"
90
90
  }
91
91
 
92
+ type WebQuerySignals = {
93
+ /**
94
+ * Indicates whether fresh documents should be prioritized over other documents for this query.
95
+ */
96
+ freshness?: boolean | null;
97
+ };
98
+
92
99
  declare enum ContentTier {
93
100
  STANDARD = "standard",
94
101
  ENTITLED = "entitled",
95
102
  PREMIUM = "premium"
96
103
  }
97
104
 
105
+ declare enum SourceQuality {
106
+ INSUFFICIENT = "insufficient",
107
+ ADEQUATE = "adequate",
108
+ PREFERRED = "preferred"
109
+ }
110
+
98
111
  type WebResult = {
99
112
  /**
100
113
  * The title of the webpage.
101
114
  */
102
115
  title?: string | null;
103
116
  /**
104
- * The source URL of the webpage.
117
+ * The source URL of the webpage. For China users with URL redirection enabled, this field instead contains the same redirect URL as clickUrl.
105
118
  */
106
119
  url?: string | null;
120
+ /**
121
+ * The destination host for the result. Returned only for China users with URL redirection enabled.
122
+ */
123
+ domain?: string | null;
107
124
  /**
108
125
  * The detailed content of the webpage.
109
126
  */
@@ -125,6 +142,7 @@ type WebResult = {
125
142
  */
126
143
  isAdult?: boolean;
127
144
  contentTier?: ContentTier;
145
+ sourceQuality?: SourceQuality;
128
146
  /**
129
147
  * Redirect URL that proxies through Bing. Only present when redirect is enabled.
130
148
  */
@@ -140,6 +158,7 @@ type WebResponse = {
140
158
  * List of web page results.
141
159
  */
142
160
  webResults?: Array<WebResult> | null;
161
+ querySignals?: WebQuerySignals;
143
162
  /**
144
163
  * Base URL for click ping requests. Append an instrumentationSuffix value from a result item to form the full ping URL.
145
164
  */
@@ -228,9 +247,13 @@ type NewsItem = {
228
247
  */
229
248
  title?: string | null;
230
249
  /**
231
- * The source URL of the news.
250
+ * The source URL of the news article. For China users with URL redirection enabled, this field instead contains the same redirect URL as clickUrl.
232
251
  */
233
252
  url?: string | null;
253
+ /**
254
+ * The destination host for the result. Returned only for China users with URL redirection enabled.
255
+ */
256
+ domain?: string | null;
234
257
  /**
235
258
  * The detailed content of the news.
236
259
  */
@@ -244,6 +267,10 @@ type NewsItem = {
244
267
  * The last crawled date of the news, follows ISO8601 format.
245
268
  */
246
269
  crawledAt?: string | null;
270
+ /**
271
+ * The language of the news article, uses ISO 639-1 language code.
272
+ */
273
+ language?: string | null;
247
274
  /**
248
275
  * Publisher name, such as 'USA TODAY | MSN', 'CNN', etc.
249
276
  */
@@ -398,9 +425,13 @@ type VideoItem = {
398
425
  */
399
426
  title?: string | null;
400
427
  /**
401
- * The video source URL.
428
+ * The source URL of the video. For China users with URL redirection enabled, this field instead contains the same redirect URL as clickUrl.
402
429
  */
403
430
  url?: string | null;
431
+ /**
432
+ * The destination host for the result. Returned only for China users with URL redirection enabled.
433
+ */
434
+ domain?: string | null;
404
435
  /**
405
436
  * Description of the video content. This is either given by video uploader or generated by LLM
406
437
  */
@@ -569,9 +600,13 @@ type ImageItem = {
569
600
  */
570
601
  title?: string | null;
571
602
  /**
572
- * The source URL of the image.
603
+ * The source URL of the image. For China users with URL redirection enabled, this field instead contains the same redirect URL as clickUrl.
573
604
  */
574
605
  url?: string | null;
606
+ /**
607
+ * The destination host for the result. Returned only for China users with URL redirection enabled.
608
+ */
609
+ domain?: string | null;
575
610
  /**
576
611
  * The host page URL of the image.
577
612
  */
@@ -782,2939 +817,190 @@ declare class BrowseResource {
782
817
  fetch(url: string, options?: BrowseFetchOptions): Promise<BrowseResponse>;
783
818
  }
784
819
 
785
- type AppResultThumbnail = {
820
+ /**
821
+ * Configuration for request retry behavior.
822
+ */
823
+ interface RetryPolicyOptions {
824
+ /** Maximum number of retry attempts (default: 2) */
825
+ maxRetries?: number;
826
+ /** Base delay in seconds for exponential backoff (default: 0.25) */
827
+ baseDelaySeconds?: number;
828
+ /** Maximum delay in seconds (default: 4.0) */
829
+ maxDelaySeconds?: number;
786
830
  /**
787
- * The URL of the thumbnail.
831
+ * HTTP status codes that trigger a retry. 429 and 430 (rate-limit /
832
+ * concurrency-limit) are intentionally excluded: the transport throws
833
+ * `RateLimitError` immediately so the caller can inspect `error.retryAfter`
834
+ * and decide whether to back off.
788
835
  */
789
- url?: string | null;
836
+ retryOnStatus?: number[];
837
+ }
838
+ /**
839
+ * Retry policy with exponential backoff.
840
+ */
841
+ declare class RetryPolicy {
842
+ readonly maxRetries: number;
843
+ readonly baseDelaySeconds: number;
844
+ readonly maxDelaySeconds: number;
845
+ readonly retryOnStatus: Set<number>;
846
+ constructor(options?: RetryPolicyOptions);
790
847
  /**
791
- * Width of the thumbnail, in pixels.
848
+ * Compute the delay before the next retry attempt.
849
+ *
850
+ * @param attempt - Current attempt number (1-based)
851
+ * @param retryAfter - Server-specified retry-after value (if any)
852
+ * @returns Delay in seconds before next attempt
792
853
  */
793
- width?: number;
854
+ computeDelay(attempt: number, retryAfter?: number): number;
794
855
  /**
795
- * Height of the thumbnail, in pixels.
856
+ * Check if a status code should trigger a retry.
796
857
  */
797
- height?: number;
798
- };
858
+ shouldRetry(statusCode: number): boolean;
859
+ }
799
860
 
800
- type AppResultItem = {
801
- /**
802
- * The name of the app.
803
- */
804
- name?: string | null;
805
- /**
806
- * The source URL of the app.
807
- */
808
- url?: string | null;
809
- /**
810
- * Description of the app.
811
- */
812
- description?: string | null;
813
- /**
814
- * Whether the app is free.
815
- */
816
- isFree?: boolean;
817
- /**
818
- * Rating of the app on Microsoft store.
819
- */
820
- rating?: number;
821
- /**
822
- * Number of ratings of the app on Microsoft store.
823
- */
824
- ratingCount?: number;
825
- /**
826
- * Price of the app.
827
- */
828
- price?: number;
829
- /**
830
- * Currency of the price value.
831
- */
832
- currency?: string | null;
833
- /**
834
- * Publisher of the app.
835
- */
836
- publisher?: string | null;
837
- /**
838
- * Category type of the app.
839
- */
840
- category?: string | null;
841
- /**
842
- * Software/app download domain.
843
- */
844
- source?: string | null;
845
- thumbnail?: AppResultThumbnail;
846
- };
861
+ /**
862
+ * Telemetry support for tracking API requests.
863
+ */
864
+ /**
865
+ * Event emitted for each API request attempt.
866
+ */
867
+ interface TelemetryEvent {
868
+ /** HTTP method (GET, POST, etc.) */
869
+ method: string;
870
+ /** API path */
871
+ path: string;
872
+ /** Transport type (e.g. 'http') */
873
+ transport: string;
874
+ /** Attempt number (1-based) */
875
+ attempt: number;
876
+ /** HTTP status code (if available) */
877
+ statusCode?: number;
878
+ /** Request ID from response headers */
879
+ requestId?: string;
880
+ /** Trace ID from response body */
881
+ traceId?: string;
882
+ /** Retry-after value (if rate limited) */
883
+ retryAfter?: string;
884
+ /** Request duration in milliseconds */
885
+ elapsedMs?: number;
886
+ /** Exception (if request failed) */
887
+ error?: Error;
888
+ /** Error response body (if status >= 400) */
889
+ errorBody?: unknown;
890
+ }
891
+ /**
892
+ * Callback function for telemetry events.
893
+ */
894
+ type TelemetryHook = (event: TelemetryEvent) => void;
895
+ /**
896
+ * Safely invoke a telemetry hook, ignoring any exceptions.
897
+ */
898
+ declare function safeCall(hook: TelemetryHook | undefined, event: TelemetryEvent): void;
899
+ /**
900
+ * Create a telemetry event.
901
+ */
902
+ declare function createTelemetryEvent(method: string, path: string, transport: string, attempt: number, options?: Partial<Omit<TelemetryEvent, 'method' | 'path' | 'transport' | 'attempt'>>): TelemetryEvent;
847
903
 
848
- type ComputationItem = {
849
- /**
850
- * Input expression. In math case, concatenation of source unit + source value.
851
- */
852
- expression?: string | null;
853
- /**
854
- * Calculated result value. Null when no numeric result is available.
855
- */
856
- value?: number | null;
857
- /**
858
- * Unit of the value if applicable.
859
- */
860
- unit?: string | null;
861
- };
904
+ /**
905
+ * Web IQ SDK for the Web IQ API.
906
+ */
862
907
 
863
- type DictionaryWordsItem = {
864
- /**
865
- * The search word being defined.
866
- */
867
- headWord?: string | null;
868
- /**
869
- * Provider URL for the definition.
870
- */
871
- url?: string | null;
872
- /**
873
- * Part of speech (e.g., noun, verb).
874
- */
875
- partOfSpeech?: string | null;
876
- /**
877
- * Definition of the word.
878
- */
879
- definitions?: string | null;
880
- /**
881
- * Synonyms of the search word.
882
- */
883
- synonyms?: string | null;
884
- /**
885
- * Antonyms of the search word.
886
- */
887
- antonyms?: string | null;
888
- /**
889
- * Example of word usage.
890
- */
891
- examples?: string | null;
892
- /**
893
- * Origin of the search word.
894
- */
895
- wordOrigin?: string | null;
908
+ /**
909
+ * Options for creating a Web IQ client.
910
+ */
911
+ interface WebIQClientOptions {
912
+ /** Your Web IQ API key (use this OR credential/auth) */
913
+ apiKey?: string;
914
+ /** An `azure-identity` `TokenCredential`. */
915
+ credential?: TokenCredential;
916
+ /** Optional OAuth scope. Defaults to {@link DEFAULT_SCOPE}. */
917
+ scope?: string;
918
+ /** Custom AuthProvider instance */
919
+ auth?: AuthProvider;
920
+ /** Base URL for the API (default: https://api.microsoft.ai/v3) */
921
+ baseUrl?: string;
922
+ /** Optional callback for telemetry events */
923
+ telemetryHook?: TelemetryHook;
896
924
  /**
897
- * Pronunciation of the search word.
925
+ * Default per-request timeout in milliseconds. Individual calls can
926
+ * override this with their own `timeout` option.
898
927
  */
899
- pronunciation?: string | null;
928
+ timeout?: number;
929
+ /** Retry policy (or options) applied to every request. */
930
+ retry?: RetryPolicy | RetryPolicyOptions;
900
931
  /**
901
- * Provider of the definition for the search word.
932
+ * Custom fetch function for advanced networking (e.g., proxy support, custom TLS).
933
+ * Must be compatible with the global `fetch` signature.
934
+ * If not provided, the global `fetch` is used.
935
+ *
936
+ * @example
937
+ * ```typescript
938
+ * import { ProxyAgent } from "undici";
939
+ *
940
+ * const proxyAgent = new ProxyAgent("http://my-proxy:8080");
941
+ * const client = new WebIQClient({
942
+ * apiKey: "key",
943
+ * // `dispatcher` is a Node/undici-specific option; the FetchFunction
944
+ * // type accepts extra init fields so no type assertion is needed.
945
+ * fetchFn: (url, init) => fetch(url, { ...init, dispatcher: proxyAgent }),
946
+ * });
947
+ * ```
902
948
  */
903
- provider?: string | null;
949
+ fetchFn?: FetchFunction;
950
+ }
951
+ /**
952
+ * Web IQ client for the Web IQ API.
953
+ *
954
+ * @example
955
+ * ```typescript
956
+ * // Using API key
957
+ * const client = new WebIQClient({ apiKey: "your-api-key" });
958
+ *
959
+ * // Search the web
960
+ * const results = await client.web.search("Python programming");
961
+ * for (const result of results.webResults ?? []) {
962
+ * console.log(result.title, result.url);
963
+ * }
964
+ *
965
+ * // Close when done
966
+ * await client.close();
967
+ * ```
968
+ *
969
+ * @example
970
+ * ```typescript
971
+ * // Using EntraID via any azure-identity credential
972
+ * import { DefaultAzureCredential } from "@azure/identity";
973
+ *
974
+ * const client = new WebIQClient({
975
+ * credential: new DefaultAzureCredential(),
976
+ * });
977
+ * ```
978
+ */
979
+ declare class WebIQClient {
980
+ /** Web search resource */
981
+ readonly web: WebResource;
982
+ /** News search resource */
983
+ readonly news: NewsResource;
984
+ /** Videos search resource */
985
+ readonly videos: VideosResource;
986
+ /** Images search resource */
987
+ readonly images: ImagesResource;
988
+ /** Browse resource */
989
+ readonly browse: BrowseResource;
990
+ private readonly _transport;
991
+ private readonly _auth;
992
+ constructor(options: WebIQClientOptions);
904
993
  /**
905
- * Root word of the search word.
994
+ * Close the client and release resources.
906
995
  */
907
- rootWord?: string | null;
908
- };
909
-
910
- type DirectionItem = {
911
- /**
912
- * Source location name.
913
- */
914
- sourceName?: string | null;
915
- /**
916
- * Destination location name.
917
- */
918
- destinationName?: string | null;
919
- /**
920
- * Means of transport (e.g. Car, Public).
921
- */
922
- meansOfTransport?: string | null;
923
- /**
924
- * Travel distance between source and destination. Null when not provided.
925
- */
926
- travelDistance?: number | null;
927
- /**
928
- * Travel distance unit (Miles/Km).
929
- */
930
- distanceUnit?: string | null;
931
- /**
932
- * Travel duration unit (Minutes/Seconds).
933
- */
934
- durationUnit?: string | null;
935
- /**
936
- * Current duration based on traffic. Null when not provided.
937
- */
938
- travelDuration?: number | null;
939
- /**
940
- * Route information.
941
- */
942
- routeInfo?: string | null;
943
- /**
944
- * Traffic congestion (High/Medium/Low/None).
945
- */
946
- trafficCongestion?: string | null;
947
- };
948
-
949
- type EventPerformer = {
950
- /**
951
- * Performer name.
952
- */
953
- name?: string | null;
954
- /**
955
- * Performer thumbnail URL.
956
- */
957
- thumbnail?: string | null;
958
- };
959
-
960
- type EventPriceRange = {
961
- /**
962
- * Minimum price of the ticket.
963
- */
964
- minPrice?: number;
965
- /**
966
- * Maximum price of the ticket.
967
- */
968
- maxPrice?: number;
969
- /**
970
- * Currency of the price.
971
- */
972
- currency?: string | null;
973
- };
974
-
975
- type EventTicketProvider = {
976
- /**
977
- * Name of the ticket provider.
978
- */
979
- name?: string | null;
980
- /**
981
- * Link to buy tickets from this provider.
982
- */
983
- ticketBuyLink?: string | null;
984
- priceRange?: EventPriceRange;
985
- };
986
-
987
- type EventVenue = {
988
- /**
989
- * Name of the venue.
990
- */
991
- name?: string | null;
992
- /**
993
- * Address of the venue.
994
- */
995
- address?: string | null;
996
- /**
997
- * City of the venue.
998
- */
999
- city?: string | null;
1000
- /**
1001
- * State of the venue.
1002
- */
1003
- state?: string | null;
1004
- /**
1005
- * Country of the venue.
1006
- */
1007
- country?: string | null;
1008
- /**
1009
- * Zipcode of the venue.
1010
- */
1011
- zipCode?: number | null;
1012
- /**
1013
- * Latitude of the venue.
1014
- */
1015
- latitude?: number | null;
1016
- /**
1017
- * Longitude of the venue.
1018
- */
1019
- longitude?: number | null;
1020
- };
1021
-
1022
- type EventItem = {
1023
- /**
1024
- * Event name.
1025
- */
1026
- name?: string | null;
1027
- /**
1028
- * URL of the event.
1029
- */
1030
- url?: string | null;
1031
- /**
1032
- * Event description.
1033
- */
1034
- description?: string | null;
1035
- /**
1036
- * Start date and time of the event in ISO 8601 standard UTC time.
1037
- */
1038
- startDate?: string | null;
1039
- /**
1040
- * End date and time of the event in ISO 8601 standard UTC time.
1041
- */
1042
- endDate?: string | null;
1043
- /**
1044
- * Last update date of the event.
1045
- */
1046
- lastUpdatedAt?: string | null;
1047
- eventVenue?: EventVenue;
1048
- /**
1049
- * Array of event category tags.
1050
- */
1051
- eventCategories?: Array<string> | null;
1052
- /**
1053
- * Array of objects containing performer details.
1054
- */
1055
- performers?: Array<EventPerformer> | null;
1056
- /**
1057
- * Array of objects containing all ticket providers.
1058
- */
1059
- ticketProviders?: Array<EventTicketProvider> | null;
1060
- };
1061
-
1062
- type FinanceCardBase = {
1063
- $type: string;
1064
- };
1065
-
1066
- declare enum FinanceChartType_V1 {
1067
- '_0' = 0,
1068
- '_5' = 5,
1069
- '_10' = 10,
1070
- '_20' = 20,
1071
- '_30' = 30,
1072
- '_40' = 40
1073
- }
1074
-
1075
- type FinanceTimeSeriesDataPoint_V1 = {
1076
- price?: number;
1077
- volume?: number;
1078
- utcTimeInUnixMs?: number;
1079
- };
1080
-
1081
- type FinanceChart_V1 = {
1082
- series?: Array<FinanceTimeSeriesDataPoint_V1> | null;
1083
- afterHoursSeries?: Array<FinanceTimeSeriesDataPoint_V1> | null;
1084
- chartType?: FinanceChartType_V1;
1085
- chartTypeValue?: string | null;
1086
- dataProviders?: Array<string> | null;
1087
- };
1088
-
1089
- type FinanceIntradayPricing_V2 = {
1090
- price52WeekHigh?: number | null;
1091
- price52WeekLow?: number | null;
1092
- priceHigh?: number | null;
1093
- priceLow?: number | null;
1094
- priceOpen?: number | null;
1095
- };
1096
-
1097
- type FinanceCrypto_V1 = {
1098
- instrumentId?: string | null;
1099
- symbol?: string | null;
1100
- displayName?: string | null;
1101
- price?: number;
1102
- pricePreviousClose?: number;
1103
- changePercentage?: number;
1104
- changeAmount?: number;
1105
- currency?: string | null;
1106
- securityType?: string | null;
1107
- iconUrl?: string | null;
1108
- currentTimeUtcInUnixMs?: number;
1109
- disclaimerUrl?: string | null;
1110
- clickThroughUrl?: string | null;
1111
- isFollowed?: boolean | null;
1112
- lastTradedAt?: string | null;
1113
- dataProviders?: Array<string> | null;
1114
- intradayPricing?: FinanceIntradayPricing_V2;
1115
- isMarketRegularHours?: boolean;
1116
- timeLastTradedUtcInUnixMs?: number;
1117
- timeTradeDayEndUtcInUnixMs?: number;
1118
- exchangeTimeZone?: string | null;
1119
- exchangeUtcOffsetInMinutes?: number;
1120
- accumulatedVolume?: number | null;
1121
- pricePostMarket?: number | null;
1122
- priceChangePostMarket?: number | null;
1123
- priceChangePostMarketPercent?: number | null;
1124
- return1Week?: number | null;
1125
- return1Month?: number | null;
1126
- return3Month?: number | null;
1127
- return6Month?: number | null;
1128
- returnYtd?: number | null;
1129
- marketCap?: number | null;
1130
- marketCapCurrency?: string | null;
1131
- marketDominance?: number | null;
1132
- circulatingSupply?: number | null;
1133
- maxSupply?: number | null;
1134
- return1Year?: number | null;
1135
- };
1136
-
1137
- type FinanceCryptoChartCard_V1 = FinanceCardBase & {
1138
- instrument?: FinanceCrypto_V1;
1139
- chart?: FinanceChart_V1;
1140
- };
1141
-
1142
- type FinanceCurrencyPairV2 = {
1143
- symbol?: string | null;
1144
- displayName?: string | null;
1145
- price?: number;
1146
- pricePreviousClose?: number;
1147
- changePercent?: number;
1148
- changeAmount?: number;
1149
- currency?: string | null;
1150
- iconUrl?: string | null;
1151
- primaryDataProvider?: string | null;
1152
- securityType?: string | null;
1153
- lastTradedAt?: string | null;
1154
- dataProviders?: Array<string> | null;
1155
- price52WeekHigh?: number | null;
1156
- price52WeekLow?: number | null;
1157
- priceHigh?: number | null;
1158
- priceLow?: number | null;
1159
- priceOpen?: number | null;
1160
- isMarketRegularHours?: boolean;
1161
- exchangeTimeZone?: string | null;
1162
- exchangeUtcOffsetInMinutes?: number;
1163
- accumulatedVolume?: number | null;
1164
- pricePostMarket?: number | null;
1165
- priceChangePostMarket?: number | null;
1166
- priceChangePostMarketPercent?: number | null;
1167
- return1Week?: number | null;
1168
- return1Month?: number | null;
1169
- return3Month?: number | null;
1170
- return6Month?: number | null;
1171
- returnYtd?: number | null;
1172
- return1Year?: number | null;
1173
- fromCurrency?: string | null;
1174
- fromCurrencySign?: string | null;
1175
- fromValue?: number;
1176
- toCurrency?: string | null;
1177
- toCurrencySign?: string | null;
1178
- toValue?: number;
1179
- fromCurrencyFullName?: string | null;
1180
- toCurrencyFullName?: string | null;
1181
- };
1182
-
1183
- type FinanceCurrencyPairChartCardV2 = FinanceCardBase & {
1184
- instrument?: FinanceCurrencyPairV2;
1185
- };
1186
-
1187
- type BingPolymarketMarket = {
1188
- question?: string | null;
1189
- yesPrice?: number | null;
1190
- volume?: number | null;
1191
- liquidity?: number | null;
1192
- outcomePrices?: Record<string, number | null> | null;
1193
- };
1194
-
1195
- type BingPolymarketEvent = {
1196
- eventId?: string | null;
1197
- title?: string | null;
1198
- polyMarketLink?: string | null;
1199
- icon?: string | null;
1200
- endDate?: string | null;
1201
- volume?: number | null;
1202
- liquidity?: number | null;
1203
- openInterest?: number | null;
1204
- markets?: Array<BingPolymarketMarket> | null;
1205
- };
1206
-
1207
- type BingPolymarketData = {
1208
- data?: Array<BingPolymarketEvent> | null;
1209
- };
1210
-
1211
- type AssetValues = {
1212
- date?: string | null;
1213
- assetValue?: number | null;
1214
- };
1215
-
1216
- type FundHoldingEntityModelV2 = {
1217
- displayName?: string | null;
1218
- shortName?: string | null;
1219
- exchangeCode?: string | null;
1220
- securityType?: string | null;
1221
- symbol?: string | null;
1222
- };
1223
-
1224
- type FundHoldingsModelV2 = {
1225
- entity?: FundHoldingEntityModelV2;
1226
- change?: number | null;
1227
- changePercent?: number | null;
1228
- percentage?: number | null;
1229
- sharesHeld?: number | null;
1230
- };
1231
-
1232
- type FundRatingDataPoint = {
1233
- rating?: number;
1234
- return?: string | null;
1235
- risk?: string | null;
1236
- };
1237
-
1238
- type FundRating = {
1239
- overall?: FundRatingDataPoint;
1240
- };
1241
-
1242
- type ETFStructureModelV2 = {
1243
- symbol?: string | null;
1244
- displayName?: string | null;
1245
- securityType?: string | null;
1246
- shortName?: string | null;
1247
- inceptionDate?: string | null;
1248
- expenseRatio?: number | null;
1249
- category?: string | null;
1250
- netAssets?: number | null;
1251
- assetValues?: Array<AssetValues> | null;
1252
- rating?: FundRating;
1253
- dividendYieldPercent?: number | null;
1254
- dividendPerShareTtm?: number | null;
1255
- holdings?: Array<FundHoldingsModelV2> | null;
1256
- dataProviders?: Array<string> | null;
1257
- };
1258
-
1259
- type FinanceETFV4 = {
1260
- symbol?: string | null;
1261
- displayName?: string | null;
1262
- price?: number;
1263
- pricePreviousClose?: number;
1264
- changePercent?: number;
1265
- changeAmount?: number;
1266
- currency?: string | null;
1267
- iconUrl?: string | null;
1268
- primaryDataProvider?: string | null;
1269
- securityType?: string | null;
1270
- lastTradedAt?: string | null;
1271
- dataProviders?: Array<string> | null;
1272
- price52WeekHigh?: number | null;
1273
- price52WeekLow?: number | null;
1274
- priceHigh?: number | null;
1275
- priceLow?: number | null;
1276
- priceOpen?: number | null;
1277
- isMarketRegularHours?: boolean;
1278
- exchangeTimeZone?: string | null;
1279
- exchangeUtcOffsetInMinutes?: number;
1280
- accumulatedVolume?: number | null;
1281
- pricePostMarket?: number | null;
1282
- priceChangePostMarket?: number | null;
1283
- priceChangePostMarketPercent?: number | null;
1284
- return1Week?: number | null;
1285
- return1Month?: number | null;
1286
- return3Month?: number | null;
1287
- return6Month?: number | null;
1288
- returnYtd?: number | null;
1289
- return1Year?: number | null;
1290
- netAssets?: number | null;
1291
- expenseRatio?: number | null;
1292
- dividendYieldPercent?: number | null;
1293
- };
1294
-
1295
- type FinanceETFChartCardV5 = FinanceCardBase & {
1296
- instrument?: FinanceETFV4;
1297
- bingPolymarketData?: BingPolymarketData;
1298
- etfStructure?: ETFStructureModelV2;
1299
- };
1300
-
1301
- type FinanceFundV3 = {
1302
- symbol?: string | null;
1303
- displayName?: string | null;
1304
- price?: number;
1305
- pricePreviousClose?: number;
1306
- changePercent?: number;
1307
- changeAmount?: number;
1308
- currency?: string | null;
1309
- iconUrl?: string | null;
1310
- primaryDataProvider?: string | null;
1311
- securityType?: string | null;
1312
- lastTradedAt?: string | null;
1313
- dataProviders?: Array<string> | null;
1314
- price52WeekHigh?: number | null;
1315
- price52WeekLow?: number | null;
1316
- priceHigh?: number | null;
1317
- priceLow?: number | null;
1318
- priceOpen?: number | null;
1319
- netAssets?: number | null;
1320
- expenseRatio?: number | null;
1321
- dividendYieldPercent?: number | null;
1322
- return1Week?: number | null;
1323
- return1Month?: number | null;
1324
- return3Month?: number | null;
1325
- return6Month?: number | null;
1326
- returnYtd?: number | null;
1327
- return1Year?: number | null;
1328
- };
1329
-
1330
- type FundModelV2 = {
1331
- symbol?: string | null;
1332
- displayName?: string | null;
1333
- securityType?: string | null;
1334
- shortName?: string | null;
1335
- inceptionDate?: string | null;
1336
- expenseRatio?: number | null;
1337
- category?: string | null;
1338
- netAssets?: number | null;
1339
- assetValues?: Array<AssetValues> | null;
1340
- rating?: FundRating;
1341
- dividendYieldPercent?: number | null;
1342
- dividendPerShareTtm?: number | null;
1343
- holdings?: Array<FundHoldingsModelV2> | null;
1344
- dataProviders?: Array<string> | null;
1345
- };
1346
-
1347
- type FinanceFundChartCardV4 = FinanceCardBase & {
1348
- instrument?: FinanceFundV3;
1349
- bingPolymarketData?: BingPolymarketData;
1350
- fundStructure?: FundModelV2;
1351
- };
1352
-
1353
- type FinanceIndexV4 = {
1354
- symbol?: string | null;
1355
- displayName?: string | null;
1356
- price?: number;
1357
- pricePreviousClose?: number;
1358
- changePercent?: number;
1359
- changeAmount?: number;
1360
- currency?: string | null;
1361
- iconUrl?: string | null;
1362
- primaryDataProvider?: string | null;
1363
- securityType?: string | null;
1364
- lastTradedAt?: string | null;
1365
- dataProviders?: Array<string> | null;
1366
- price52WeekHigh?: number | null;
1367
- price52WeekLow?: number | null;
1368
- priceHigh?: number | null;
1369
- priceLow?: number | null;
1370
- priceOpen?: number | null;
1371
- isMarketRegularHours?: boolean;
1372
- exchangeTimeZone?: string | null;
1373
- exchangeUtcOffsetInMinutes?: number;
1374
- accumulatedVolume?: number | null;
1375
- pricePostMarket?: number | null;
1376
- priceChangePostMarket?: number | null;
1377
- priceChangePostMarketPercent?: number | null;
1378
- return1Week?: number | null;
1379
- return1Month?: number | null;
1380
- return3Month?: number | null;
1381
- return6Month?: number | null;
1382
- returnYtd?: number | null;
1383
- return1Year?: number | null;
1384
- };
1385
-
1386
- type FinanceIndexChartCardV4 = FinanceCardBase & {
1387
- instrument?: FinanceIndexV4;
1388
- bingPolymarketData?: BingPolymarketData;
1389
- };
1390
-
1391
- type FinanceInstrument_V1 = {
1392
- instrumentId?: string | null;
1393
- symbol?: string | null;
1394
- displayName?: string | null;
1395
- price?: number;
1396
- pricePreviousClose?: number;
1397
- changePercentage?: number;
1398
- changeAmount?: number;
1399
- currency?: string | null;
1400
- securityType?: string | null;
1401
- iconUrl?: string | null;
1402
- currentTimeUtcInUnixMs?: number;
1403
- disclaimerUrl?: string | null;
1404
- clickThroughUrl?: string | null;
1405
- isFollowed?: boolean | null;
1406
- lastTradedAt?: string | null;
1407
- dataProviders?: Array<string> | null;
1408
- };
1409
-
1410
- type LatestNews = {
1411
- title?: string | null;
1412
- body?: string | null;
1413
- timestamp?: string | null;
1414
- };
1415
-
1416
- type Indicator = {
1417
- country?: string | null;
1418
- indicatorName?: string | null;
1419
- indicatorLongName?: string | null;
1420
- ticker?: string | null;
1421
- releaseFrequency?: string | null;
1422
- description?: string | null;
1423
- unit?: string | null;
1424
- latestReleaseDate?: string | null;
1425
- latestReleaseValue?: number | null;
1426
- latestReleaseLastUpdated?: string | null;
1427
- forecastValue?: number | null;
1428
- previousValue?: number | null;
1429
- releasedValueFor?: string | null;
1430
- latestNews?: LatestNews;
1431
- };
1432
-
1433
- type FinanceIndicatorCard_V1 = FinanceCardBase & {
1434
- instrument?: FinanceInstrument_V1;
1435
- bingPolymarketData?: BingPolymarketData;
1436
- indicator?: Indicator;
1437
- };
1438
-
1439
- type HoldingQuarter = {
1440
- quarter?: string | null;
1441
- year?: number | null;
1442
- };
1443
-
1444
- type InvestorAllocations = {
1445
- holdingPeriod?: HoldingQuarter;
1446
- sector?: string | null;
1447
- allocationPercent?: number | null;
1448
- };
1449
-
1450
- type InvestorAnnualizedPerformance = {
1451
- yearCount?: number | null;
1452
- growthPercent?: number | null;
1453
- };
1454
-
1455
- type InvestorHoldings = {
1456
- holdingPeriod?: HoldingQuarter;
1457
- securityId?: string | null;
1458
- securityName?: string | null;
1459
- ticker?: string | null;
1460
- sector?: string | null;
1461
- securityThumbnailUrl?: string | null;
1462
- sharesHeld?: number | null;
1463
- valueOfShares?: number | null;
1464
- sharesChangePercent?: number | null;
1465
- valueChangePercent?: number | null;
1466
- portfolioPercent?: number | null;
1467
- institutionalOwnershipPercent?: number | null;
1468
- };
1469
-
1470
- type InvestorPerformance = {
1471
- holdingPeriod?: HoldingQuarter;
1472
- assetsUnderManagement?: number | null;
1473
- aumChangedPercent?: number | null;
1474
- };
1475
-
1476
- type InvestorProfile = {
1477
- investorName?: string | null;
1478
- description?: string | null;
1479
- thumbnailUrl?: string | null;
1480
- annualizedPerformance?: InvestorAnnualizedPerformance;
1481
- performance?: Array<InvestorPerformance> | null;
1482
- allocations?: Array<InvestorAllocations> | null;
1483
- holdings?: Array<InvestorHoldings> | null;
1484
- };
1485
-
1486
- type FinanceInvestorCard_V1 = FinanceCardBase & {
1487
- instrument?: FinanceInstrument_V1;
1488
- bingPolymarketData?: BingPolymarketData;
1489
- investorProfile?: InvestorProfile;
1490
- };
1491
-
1492
- type AnalystRecommendation = {
1493
- consensusRecommendation?: string | null;
1494
- numberOfAnalysts?: number | null;
1495
- strongBuy?: number | null;
1496
- buy?: number | null;
1497
- hold?: number | null;
1498
- sell?: number | null;
1499
- strongSell?: number | null;
1500
- };
1501
-
1502
- type IndustryRecommendation = {
1503
- analystConsensusIndustryRating?: string | null;
1504
- analystConsensusIndustryRatingLastUpdated?: string | null;
1505
- };
1506
-
1507
- type PriceTargets = {
1508
- priceTargetHigh?: number | null;
1509
- priceTargetLow?: number | null;
1510
- priceTargetMean?: number | null;
1511
- priceTargetMedian?: number | null;
1512
- numberOfAnalysts?: number | null;
1513
- currency?: string | null;
1514
- lastUpdated?: string | null;
1515
- };
1516
-
1517
- type AnalysisModelV2 = {
1518
- priceTargets?: PriceTargets;
1519
- annualMedianEpsTarget?: number | null;
1520
- analystRecommendation?: AnalystRecommendation;
1521
- industryRecommendation?: IndustryRecommendation;
1522
- analystConsensusPriceVolatility?: string | null;
1523
- priceVolatilityDateLastUpdated?: string | null;
1524
- dataProviders?: Array<string> | null;
1525
- };
1526
-
1527
- type CompanyAddress = {
1528
- street?: string | null;
1529
- city?: string | null;
1530
- state?: string | null;
1531
- postalCode?: string | null;
1532
- country?: string | null;
1533
- countryCode?: string | null;
1534
- phoneNumber?: string | null;
1535
- fax?: string | null;
1536
- };
1537
-
1538
- type CompanyExecutive = {
1539
- name?: string | null;
1540
- title?: string | null;
1541
- };
1542
-
1543
- type CompanyModelV2 = {
1544
- name?: string | null;
1545
- description?: string | null;
1546
- incorporatedYear?: number | null;
1547
- address?: CompanyAddress;
1548
- numberOfEmployees?: number | null;
1549
- industry?: string | null;
1550
- executive?: Array<CompanyExecutive> | null;
1551
- dataProviders?: Array<string> | null;
1552
- };
1553
-
1554
- type EarningsCallModelV2 = {
1555
- earningCallTime?: string | null;
1556
- transcript?: string | null;
1557
- audioState?: string | null;
1558
- transcriptState?: string | null;
1559
- fiscalPeriodType?: string | null;
1560
- earningsStatus?: string | null;
1561
- earningsPeriodType?: string | null;
1562
- audioUrl?: string | null;
1563
- slideUrl?: string | null;
1564
- earningsRelease8K?: string | null;
1565
- quarterlyReport?: string | null;
1566
- dataProviders?: Array<string> | null;
1567
- };
1568
-
1569
- type EarningForecastAnnual = {
1570
- epsForecast?: number | null;
1571
- revenueForecast?: number | null;
1572
- earningsReleaseDate?: string | null;
1573
- epsTypeGaapOrNormalized?: string | null;
1574
- year?: string | null;
1575
- };
1576
-
1577
- type EarningForecastQuarterly = {
1578
- epsForecast?: number | null;
1579
- revenueForecast?: number | null;
1580
- earningsReleaseDate?: string | null;
1581
- epsTypeGaapOrNormalized?: string | null;
1582
- quarter?: string | null;
1583
- fiscalPeriod?: string | null;
1584
- calendarPeriod?: string | null;
1585
- calendarPeriodStartDate?: string | null;
1586
- calendarPeriodEndDate?: string | null;
1587
- };
1588
-
1589
- type EarningsForecastModelV2 = {
1590
- currency?: string | null;
1591
- quarterly?: Array<EarningForecastQuarterly> | null;
1592
- annual?: Array<EarningForecastAnnual> | null;
1593
- dataProviders?: Array<string> | null;
1594
- };
1595
-
1596
- type EarningActualAnnual = {
1597
- epsForecast?: number | null;
1598
- revenueForecast?: number | null;
1599
- earningsReleaseDate?: string | null;
1600
- epsTypeGaapOrNormalized?: string | null;
1601
- epsActual?: number | null;
1602
- epsSurprise?: number | null;
1603
- epsSurprisePercent?: number | null;
1604
- revenueActual?: number | null;
1605
- revenueSurprise?: number | null;
1606
- revenueSurprisePercent?: number | null;
1607
- year?: string | null;
1608
- };
1609
-
1610
- type EarningActualQuarterly = {
1611
- epsForecast?: number | null;
1612
- revenueForecast?: number | null;
1613
- earningsReleaseDate?: string | null;
1614
- epsTypeGaapOrNormalized?: string | null;
1615
- epsActual?: number | null;
1616
- epsSurprise?: number | null;
1617
- epsSurprisePercent?: number | null;
1618
- revenueActual?: number | null;
1619
- revenueSurprise?: number | null;
1620
- revenueSurprisePercent?: number | null;
1621
- quarter?: string | null;
1622
- fiscalPeriod?: string | null;
1623
- calendarPeriod?: string | null;
1624
- calendarPeriodStartDate?: string | null;
1625
- calendarPeriodEndDate?: string | null;
1626
- };
1627
-
1628
- type EarningsHistoryModelV2 = {
1629
- currency?: string | null;
1630
- quarterly?: Array<EarningActualQuarterly> | null;
1631
- annual?: Array<EarningActualAnnual> | null;
1632
- dataProviders?: Array<string> | null;
1633
- };
1634
-
1635
- type FinanceEarnings_V1 = {
1636
- expectedReportTimeUtcInUnixMs?: number | null;
1637
- epsForecast?: number | null;
1638
- epsActual?: number | null;
1639
- currency?: string | null;
1640
- isEarningsCallLive?: boolean;
1641
- };
1642
-
1643
- type FinanceStockV4 = {
1644
- symbol?: string | null;
1645
- displayName?: string | null;
1646
- price?: number;
1647
- pricePreviousClose?: number;
1648
- changePercent?: number;
1649
- changeAmount?: number;
1650
- currency?: string | null;
1651
- iconUrl?: string | null;
1652
- primaryDataProvider?: string | null;
1653
- securityType?: string | null;
1654
- lastTradedAt?: string | null;
1655
- dataProviders?: Array<string> | null;
1656
- price52WeekHigh?: number | null;
1657
- price52WeekLow?: number | null;
1658
- priceHigh?: number | null;
1659
- priceLow?: number | null;
1660
- priceOpen?: number | null;
1661
- isMarketRegularHours?: boolean;
1662
- exchangeTimeZone?: string | null;
1663
- exchangeUtcOffsetInMinutes?: number;
1664
- accumulatedVolume?: number | null;
1665
- pricePostMarket?: number | null;
1666
- priceChangePostMarket?: number | null;
1667
- priceChangePostMarketPercent?: number | null;
1668
- return1Week?: number | null;
1669
- return1Month?: number | null;
1670
- return3Month?: number | null;
1671
- return6Month?: number | null;
1672
- returnYtd?: number | null;
1673
- return1Year?: number | null;
1674
- avgVolume?: number | null;
1675
- marketCap?: number | null;
1676
- peRatio?: number | null;
1677
- dividendYieldPercent?: number | null;
1678
- marketCapCurrency?: string | null;
1679
- earnings?: FinanceEarnings_V1;
1680
- sharesOutstanding?: number | null;
1681
- };
1682
-
1683
- type BalanceSheetEquity = {
1684
- totalEquity?: number | null;
1685
- totalLiabilitiesShareholdersEquity?: number | null;
1686
- totalCommonSharesOutstanding?: number | null;
1687
- };
1688
-
1689
- type CurrentAssets = {
1690
- totalReceivablesNet?: number | null;
1691
- totalInventory?: number | null;
1692
- totalCurrentAssets?: number | null;
1693
- intangiblesNet?: number | null;
1694
- longTermInvestments?: number | null;
1695
- totalAssets?: number | null;
1696
- cashAndShortTermInvestments?: number | null;
1697
- cash?: number | null;
1698
- cashEquivalents?: number | null;
1699
- netGoodwill?: number | null;
1700
- cashDueFromBanks?: number | null;
1701
- accumulatedIntangibleAmortization?: number | null;
1702
- totalDeposits?: number | null;
1703
- propertyPlantEquipmentTotalNet?: number | null;
1704
- };
1705
-
1706
- type CurrentLiabilities = {
1707
- totalCurrentLiabilities?: number | null;
1708
- longTermDebt?: number | null;
1709
- totalDebt?: number | null;
1710
- totalLiabilities?: number | null;
1711
- notesPayableShortTermDebt?: number | null;
1712
- currentPortionOfLongTermDebtCapitalLeases?: number | null;
1713
- totalLongTermDebt?: number | null;
1714
- payableAccrued?: number | null;
1715
- otherBearingLiabilitiesTotal?: number | null;
1716
- deferredIncomeTax?: number | null;
1717
- accountsPayable?: number | null;
1718
- };
1719
-
1720
- type BalanceSheet = {
1721
- currentAssets?: CurrentAssets;
1722
- currentLiabilities?: CurrentLiabilities;
1723
- equity?: BalanceSheetEquity;
1724
- };
1725
-
1726
- type Financing = {
1727
- totalCashDividendsPaid?: number | null;
1728
- cashFromFinancingActivities?: number | null;
1729
- };
1730
-
1731
- type Investing = {
1732
- cashFromInvestingActivities?: number | null;
1733
- capitalExpenditures?: number | null;
1734
- };
1735
-
1736
- type Operating = {
1737
- netIncomeStartingLine?: number | null;
1738
- depreciationDepletion?: number | null;
1739
- changesInWorkingCapital?: number | null;
1740
- cashFromOperatingActivities?: number | null;
1741
- cashInterestPaidSupplemental?: number | null;
1742
- cashTaxesPaidSupplemental?: number | null;
1743
- netChangeInCash?: number | null;
1744
- deferredTaxes?: number | null;
1745
- };
1746
-
1747
- type CashFlow = {
1748
- financing?: Financing;
1749
- investing?: Investing;
1750
- operating?: Operating;
1751
- };
1752
-
1753
- type Expense = {
1754
- grossProfit?: number | null;
1755
- unusualExpenseIncome?: number | null;
1756
- totalOperatingExpense?: number | null;
1757
- };
1758
-
1759
- type Income = {
1760
- netIncomeToCommonExExtraordinaryItems?: number | null;
1761
- netIncomeToCommonIncludingExtraordinaryItems?: number | null;
1762
- provisionForIncomeTaxes?: number | null;
1763
- totalInterestExpense?: number | null;
1764
- netIncomeBeforeTaxes?: number | null;
1765
- loanLossProvision?: number | null;
1766
- netIncomeBeforeExtraItems?: number | null;
1767
- operatingIncome?: number | null;
1768
- netInterestIncome?: number | null;
1769
- netIncome?: number | null;
1770
- nonInterestExpenseBank?: number | null;
1771
- netIncomeAfterTaxes?: number | null;
1772
- bankTotalRevenue?: number | null;
1773
- };
1774
-
1775
- type Revenue = {
1776
- dpsCommonStockPrimaryIssue?: number | null;
1777
- totalCostOfRevenue?: number | null;
1778
- dilutedNormalizedEps?: number | null;
1779
- grossMargin?: number | null;
1780
- operatingMargin?: number | null;
1781
- dilutedWeightedAverageShares?: number | null;
1782
- dilutedEpsExcludingExtraordinaryItems?: number | null;
1783
- totalRevenue?: number | null;
1784
- };
1785
-
1786
- type IncomeStatement = {
1787
- expense?: Expense;
1788
- income?: Income;
1789
- revenue?: Revenue;
1790
- };
1791
-
1792
- type FinancialStatement = {
1793
- year?: number;
1794
- fiscalPeriodType?: string | null;
1795
- sourceDate?: string | null;
1796
- reportDate?: string | null;
1797
- endDate?: string | null;
1798
- currency?: string | null;
1799
- incomeStatement?: IncomeStatement;
1800
- balanceSheet?: BalanceSheet;
1801
- cashFlow?: CashFlow;
1802
- };
1803
-
1804
- type FinancialsModelV2 = {
1805
- annual?: Array<FinancialStatement> | null;
1806
- quarterly?: Array<FinancialStatement> | null;
1807
- dataProviders?: Array<string> | null;
1808
- };
1809
-
1810
- type KeyRatios5YearMetricsItem = {
1811
- grossMargin?: number | null;
1812
- netProfitMargin?: number | null;
1813
- preTaxMargin?: number | null;
1814
- returnOnAsset?: number | null;
1815
- returnOnCapital?: number | null;
1816
- returnOnEquity?: number | null;
1817
- peHigh?: number | null;
1818
- peLow?: number | null;
1819
- revenueGrowthRate?: number | null;
1820
- netIncomeGrowthRate?: number | null;
1821
- dividendGrowthRate?: number | null;
1822
- beta?: number | null;
1823
- dividendYield?: number | null;
1824
- };
1825
-
1826
- type KeyRatiosMetricsItem = {
1827
- year?: string | null;
1828
- fiscalPeriodType?: string | null;
1829
- fiscalPeriodEndDate?: string | null;
1830
- revenuePerShare?: number | null;
1831
- earningsPerShare?: number | null;
1832
- freeCashFlowPerShare?: number | null;
1833
- dividendPerShare?: number | null;
1834
- bookValuePerShare?: number | null;
1835
- revenueGrowthRate?: number | null;
1836
- earningsGrowthRate?: number | null;
1837
- freeCashFlowGrowthRate?: number | null;
1838
- dividendGrowthRate?: number | null;
1839
- bookValueGrowthRate?: number | null;
1840
- grossMargin?: number | null;
1841
- operatingMargin?: number | null;
1842
- netMargin?: number | null;
1843
- returnOnEquity?: number | null;
1844
- returnOnCapital?: number | null;
1845
- debtToEquityRatio?: number | null;
1846
- financialLeverage?: number | null;
1847
- quickRatio?: number | null;
1848
- currentRatio?: number | null;
1849
- debtToEbitda?: number | null;
1850
- assetTurnover?: number | null;
1851
- inventoryTurnover?: number | null;
1852
- receivableTurnover?: number | null;
1853
- returnOnAssetCurrent?: number | null;
1854
- payoutRatio?: number | null;
1855
- priceToSalesRatio?: number | null;
1856
- peRatio?: number | null;
1857
- priceToCashFlowRatio?: number | null;
1858
- priceToBookRatio?: number | null;
1859
- enterpriseValueToEbitda?: number | null;
1860
- };
1861
-
1862
- type CompanyMetrics = {
1863
- quarterly?: Array<KeyRatiosMetricsItem> | null;
1864
- annual?: Array<KeyRatiosMetricsItem> | null;
1865
- average5Year?: Array<KeyRatios5YearMetricsItem> | null;
1866
- ttm?: Array<KeyRatiosMetricsItem> | null;
1867
- average3Year?: Array<KeyRatiosMetricsItem> | null;
1868
- average12Quarter?: Array<KeyRatiosMetricsItem> | null;
1869
- };
1870
-
1871
- type IndustryMetrics = {
1872
- quarterly?: Array<KeyRatiosMetricsItem> | null;
1873
- annual?: Array<KeyRatiosMetricsItem> | null;
1874
- average5Year?: Array<KeyRatios5YearMetricsItem> | null;
1875
- };
1876
-
1877
- type KeyRatiosModelV2 = {
1878
- companyMetrics?: CompanyMetrics;
1879
- industryMetrics?: IndustryMetrics;
1880
- dataProviders?: Array<string> | null;
1881
- };
1882
-
1883
- type AggregateHolding = {
1884
- holdingPeriod?: HoldingQuarter;
1885
- numberOfSecurityHolders?: number | null;
1886
- sharesHeld?: number | null;
1887
- valueOfShares?: number | null;
1888
- sharesChangePercent?: number | null;
1889
- valueChangePercent?: number | null;
1890
- institutionalOwnershipPercent?: number | null;
1891
- };
1892
-
1893
- type InvestorInsight = {
1894
- trend?: string | null;
1895
- headline?: string | null;
1896
- shortHeadline?: string | null;
1897
- notification?: string | null;
1898
- confidence?: number | null;
1899
- };
1900
-
1901
- type OwnershipModelV2 = {
1902
- holdingPeriod?: HoldingQuarter;
1903
- holderName?: string | null;
1904
- thumbnailUrl?: string | null;
1905
- sharesHeld?: number | null;
1906
- sharesChanged?: number | null;
1907
- valueOfShares?: number | null;
1908
- sharesChangePercent?: number | null;
1909
- valueChangePercent?: number | null;
1910
- portfolioPercent?: number | null;
1911
- institutionalOwnershipPercent?: number | null;
1912
- };
1913
-
1914
- type InstitutionalOwnershipModelV2 = {
1915
- aggregateHoldings?: Array<AggregateHolding> | null;
1916
- topShareHolders?: Array<OwnershipModelV2> | null;
1917
- topBuyers?: Array<OwnershipModelV2> | null;
1918
- topSellers?: Array<OwnershipModelV2> | null;
1919
- topNewShareHolders?: Array<OwnershipModelV2> | null;
1920
- topExitedShareHolders?: Array<OwnershipModelV2> | null;
1921
- investorInsights?: Array<InvestorInsight> | null;
1922
- };
1923
-
1924
- type SecurityOwnershipsModelV2 = {
1925
- institutional?: InstitutionalOwnershipModelV2;
1926
- dataProviders?: Array<string> | null;
1927
- };
1928
-
1929
- type FinanceStockChartCardV5 = FinanceCardBase & {
1930
- instrument?: FinanceStockV4;
1931
- bingPolymarketData?: BingPolymarketData;
1932
- analystForecast?: AnalysisModelV2;
1933
- earningsForecast?: EarningsForecastModelV2;
1934
- earningsHistory?: EarningsHistoryModelV2;
1935
- earningsTranscript?: EarningsCallModelV2;
1936
- financialStatements?: FinancialsModelV2;
1937
- financialRatios?: KeyRatiosModelV2;
1938
- companyProfile?: CompanyModelV2;
1939
- ownershipHoldings?: SecurityOwnershipsModelV2;
1940
- };
1941
-
1942
- type FinanceResultItem = {
1943
- url?: string | null;
1944
- title?: string | null;
1945
- data?: (FinanceCardBase | FinanceStockChartCardV5 | FinanceIndexChartCardV4 | FinanceETFChartCardV5 | FinanceFundChartCardV4 | FinanceInvestorCard_V1 | FinanceIndicatorCard_V1 | FinanceCurrencyPairChartCardV2 | FinanceCryptoChartCard_V1) | null;
1946
- };
1947
-
1948
- type HealthSourceInfo = {
1949
- /**
1950
- * Source or publisher name of the article (e.g., "Harvard Health").
1951
- */
1952
- name?: string | null;
1953
- /**
1954
- * BCP 47 language tag of the article content (e.g., "en-US").
1955
- */
1956
- language?: string | null;
1957
- /**
1958
- * Date the article was originally published.
1959
- */
1960
- publishedAt?: string | null;
1961
- /**
1962
- * Date the article was last updated.
1963
- */
1964
- lastUpdatedAt?: string | null;
1965
- };
1966
-
1967
- type HealthItem = {
1968
- /**
1969
- * Title of the health topic or article.
1970
- */
1971
- title?: string | null;
1972
- /**
1973
- * Canonical URL for the health article.
1974
- */
1975
- url?: string | null;
1976
- /**
1977
- * Short snippet or summary of the health content.
1978
- */
1979
- description?: string | null;
1980
- sourceInfo?: HealthSourceInfo;
1981
- };
1982
-
1983
- type JobProvider = {
1984
- /**
1985
- * Name of the provider portal (e.g. "LinkedIn").
1986
- */
1987
- name?: string | null;
1988
- /**
1989
- * URL to the provider company's logo or thumbnail image.
1990
- */
1991
- logoUrl?: string | null;
1992
- /**
1993
- * URL of the original job post on the provider site.
1994
- */
1995
- url?: string | null;
1996
- };
1997
-
1998
- type JobItem = {
1999
- /**
2000
- * Title of the page.
2001
- */
2002
- title?: string | null;
2003
- /**
2004
- * Provider URL (matches PostUrl of the primary provider).
2005
- */
2006
- url?: string | null;
2007
- /**
2008
- * Name of the company posting the job.
2009
- */
2010
- companyName?: string | null;
2011
- /**
2012
- * Title of the job position being advertised.
2013
- */
2014
- jobTitle?: string | null;
2015
- /**
2016
- * Date and time the job listing was published
2017
- */
2018
- publishedAt?: string | null;
2019
- /**
2020
- * URL to the company's logo or thumbnail image.
2021
- */
2022
- companyThumbnailUrl?: string | null;
2023
- /**
2024
- * Physical location of the job (city, state, country).
2025
- */
2026
- location?: string | null;
2027
- /**
2028
- * List of job board providers or sources where the listing appears.
2029
- */
2030
- providers?: Array<JobProvider> | null;
2031
- /**
2032
- * Full text description of the job, responsibilities, and requirements.
2033
- */
2034
- description?: string | null;
2035
- /**
2036
- * Salary or compensation range for the position.
2037
- */
2038
- salary?: string | null;
2039
- /**
2040
- * Employment type (e.g. Full-time, Part-time, Contract, Internship).
2041
- */
2042
- jobType?: string | null;
2043
- /**
2044
- * Work arrangement type (e.g. Remote, Hybrid, On-site).
2045
- */
2046
- workMode?: string | null;
2047
- /**
2048
- * List of keywords or labels associated with the job.
2049
- */
2050
- tags?: Array<string> | null;
2051
- };
2052
-
2053
- type MapsBusiness = {
2054
- /**
2055
- * Name of the business.
2056
- */
2057
- businessName?: string | null;
2058
- /**
2059
- * Street address of the business.
2060
- */
2061
- streetAddress?: string | null;
2062
- /**
2063
- * City where the business is located.
2064
- */
2065
- city?: string | null;
2066
- /**
2067
- * Postal code of the business.
2068
- */
2069
- postcode?: string | null;
2070
- /**
2071
- * Country or region code of the business.
2072
- */
2073
- countryCode?: string | null;
2074
- /**
2075
- * Primary website URL of the business.
2076
- */
2077
- businessUrl?: string | null;
2078
- /**
2079
- * Phone number of the business.
2080
- */
2081
- phone?: string | null;
2082
- /**
2083
- * URL of the dominant image for the business.
2084
- */
2085
- imageUrl?: string | null;
2086
- /**
2087
- * Latitude coordinate of the business location.
2088
- */
2089
- latitude?: number;
2090
- /**
2091
- * Longitude coordinate of the business location.
2092
- */
2093
- longitude?: number;
2094
- };
2095
-
2096
- type MapsItem = {
2097
- /**
2098
- * Bing URL of the search query.
2099
- */
2100
- url?: string | null;
2101
- /**
2102
- * Address of the search location.
2103
- */
2104
- address?: string | null;
2105
- /**
2106
- * Best coordinate latitude of the location.
2107
- */
2108
- latitude?: number;
2109
- /**
2110
- * Best coordinate longitude of the location.
2111
- */
2112
- longitude?: number;
2113
- /**
2114
- * Northwest bounding box latitude.
2115
- */
2116
- nwLatitude?: number;
2117
- /**
2118
- * Northwest bounding box longitude.
2119
- */
2120
- nwLongitude?: number;
2121
- /**
2122
- * Southeast bounding box latitude.
2123
- */
2124
- seLatitude?: number;
2125
- /**
2126
- * Southeast bounding box longitude.
2127
- */
2128
- seLongitude?: number;
2129
- /**
2130
- * Businesses found at this address.
2131
- */
2132
- businessAtThisAddress?: Array<MapsBusiness> | null;
2133
- };
2134
-
2135
- type PlaceLocation = {
2136
- /**
2137
- * Address line.
2138
- */
2139
- addressLine?: string | null;
2140
- /**
2141
- * City name.
2142
- */
2143
- city?: string | null;
2144
- /**
2145
- * State or region.
2146
- */
2147
- region?: string | null;
2148
- /**
2149
- * Country name.
2150
- */
2151
- country?: string | null;
2152
- /**
2153
- * Postal or ZIP code.
2154
- */
2155
- postalCode?: string | null;
2156
- /**
2157
- * Latitude coordinates.
2158
- */
2159
- latitude?: number;
2160
- /**
2161
- * Longitude coordinates.
2162
- */
2163
- longitude?: number;
2164
- };
2165
-
2166
- type PlaceOpenHour = {
2167
- /**
2168
- * Map of standard weekly open hour-ranges keyed by day (mon, tue, wed, thu, fri, sat, sun). Each value is an array of hour-range strings.
2169
- */
2170
- standard?: Record<string, any> | null;
2171
- };
2172
-
2173
- type PlaceItem = {
2174
- /**
2175
- * The name of the place.
2176
- */
2177
- name?: string | null;
2178
- /**
2179
- * The business URL for the place.
2180
- */
2181
- businessUrl?: string | null;
2182
- /**
2183
- * Category information.
2184
- */
2185
- category?: string | null;
2186
- /**
2187
- * Contact phone number.
2188
- */
2189
- phone?: string | null;
2190
- location?: PlaceLocation;
2191
- /**
2192
- * Time zone identifier.
2193
- */
2194
- timeZone?: string | null;
2195
- openHours?: PlaceOpenHour;
2196
- /**
2197
- * Indicates if the place is permanently or temporarily closed.
2198
- */
2199
- closureState?: string | null;
2200
- };
2201
-
2202
- type PrayerTimesItem = {
2203
- /**
2204
- * Resolved prayer-time location.
2205
- */
2206
- location?: string | null;
2207
- /**
2208
- * Prayer-time calculation method code (e.g. MWL, ISNA).
2209
- */
2210
- calculationMethod?: string | null;
2211
- /**
2212
- * Date the prayer times are computed for, in local ISO 8601 format (YYYY-MM-DD).
2213
- */
2214
- localDate?: string | null;
2215
- /**
2216
- * IANA-style timezone display name used for the calculation.
2217
- */
2218
- timeZone?: string | null;
2219
- /**
2220
- * Timezone offset from UTC in hours, including DST when applicable. Null when unavailable.
2221
- */
2222
- timeZoneOffset?: number | null;
2223
- /**
2224
- * Whether daylight saving time applies on the date at the location.
2225
- */
2226
- isDst?: boolean | null;
2227
- /**
2228
- * Fajr prayer time in local 24-hour HH:mm format.
2229
- */
2230
- fajr?: string | null;
2231
- /**
2232
- * Sunrise time in local 24-hour HH:mm format.
2233
- */
2234
- sunrise?: string | null;
2235
- /**
2236
- * Dhuhr prayer time in local 24-hour HH:mm format.
2237
- */
2238
- dhuhr?: string | null;
2239
- /**
2240
- * Asr prayer time in local 24-hour HH:mm format.
2241
- */
2242
- asr?: string | null;
2243
- /**
2244
- * Maghrib prayer time in local 24-hour HH:mm format.
2245
- */
2246
- maghrib?: string | null;
2247
- /**
2248
- * Isha prayer time in local 24-hour HH:mm format.
2249
- */
2250
- isha?: string | null;
2251
- /**
2252
- * Name of the currently active prayer.
2253
- */
2254
- activePrayer?: string | null;
2255
- };
2256
-
2257
- type QuerySignals = {
2258
- /**
2259
- * The original user query as received by the system.
2260
- */
2261
- originalQuery?: string | null;
2262
- /**
2263
- * The normalized version of the user query after processing (e.g., lowercasing, removing stop words).
2264
- */
2265
- normalizedQuery?: string | null;
2266
- /**
2267
- * Indicates whether the query is defensive
2268
- */
2269
- isDefensive?: boolean | null;
2270
- /**
2271
- * Indicates whether the query is flagged as adult query
2272
- */
2273
- isAdult?: boolean | null;
2274
- /**
2275
- * Indicates whether the query is navigational
2276
- */
2277
- isNav?: boolean | null;
2278
- /**
2279
- * Indicates whether the query is fresh
2280
- */
2281
- isFresh?: boolean | null;
2282
- };
2283
-
2284
- type RealEstateItem = {
2285
- /**
2286
- * Title of the search.
2287
- */
2288
- title?: string | null;
2289
- /**
2290
- * Listing URL of the search property.
2291
- */
2292
- url?: string | null;
2293
- /**
2294
- * Address of the listing.
2295
- */
2296
- addressLine?: string | null;
2297
- /**
2298
- * Search location city.
2299
- */
2300
- city?: string | null;
2301
- /**
2302
- * Search location state.
2303
- */
2304
- state?: string | null;
2305
- /**
2306
- * Search location country.
2307
- */
2308
- country?: string | null;
2309
- /**
2310
- * Postal code of the listing.
2311
- */
2312
- postCode?: number;
2313
- /**
2314
- * Latitude of the listing.
2315
- */
2316
- latitude?: number;
2317
- /**
2318
- * Longitude of the listing.
2319
- */
2320
- longitude?: number;
2321
- /**
2322
- * House type of the listing.
2323
- */
2324
- houseType?: string | null;
2325
- /**
2326
- * Sale status of the listing.
2327
- */
2328
- saleStatus?: string | null;
2329
- /**
2330
- * Price of the listing.
2331
- */
2332
- price?: string | null;
2333
- /**
2334
- * Bedroom count of the listing.
2335
- */
2336
- bedroomCount?: number;
2337
- /**
2338
- * Bathroom count of the listing.
2339
- */
2340
- bathroomCount?: number;
2341
- /**
2342
- * House size of the listing.
2343
- */
2344
- houseSize?: string | null;
2345
- /**
2346
- * Lot size of the listing.
2347
- */
2348
- lotSize?: string | null;
2349
- /**
2350
- * Year built of the listing.
2351
- */
2352
- yearBuilt?: number;
2353
- /**
2354
- * Provider name of the listing.
2355
- */
2356
- provider?: string | null;
2357
- };
2358
-
2359
- type RecipeIngredient = {
2360
- /**
2361
- * Name of the ingredient (e.g., "flour", "olive oil").
2362
- */
2363
- name?: string | null;
2364
- /**
2365
- * Unit of measurement (e.g., "cups", "tbsp", "oz").
2366
- */
2367
- unit?: string | null;
2368
- /**
2369
- * Numeric quantity of the ingredient.
2370
- */
2371
- quantity?: number;
2372
- /**
2373
- * Human-readable quantity string, including fractions (e.g., "1½").
2374
- */
2375
- displayQuantity?: string | null;
2376
- /**
2377
- * Optional hint or note about the ingredient (e.g., "chopped", "room temperature").
2378
- */
2379
- hint?: string | null;
2380
- };
2381
-
2382
- type RecipeItem = {
2383
- /**
2384
- * Display name of the recipe.
2385
- */
2386
- name?: string | null;
2387
- /**
2388
- * Landing URL for the recipe page.
2389
- */
2390
- url?: string | null;
2391
- /**
2392
- * Short description or summary of the recipe.
2393
- */
2394
- description?: string | null;
2395
- /**
2396
- * Name of the recipe source or website (e.g., "AllRecipes").
2397
- */
2398
- provider?: string | null;
2399
- /**
2400
- * Aggregate user rating on a 0–5 scale.
2401
- */
2402
- rating?: number;
2403
- /**
2404
- * Total number of user reviews contributing to the rating.
2405
- */
2406
- reviewCount?: number;
2407
- /**
2408
- * Total preparation and cooking time in minutes.
2409
- */
2410
- preparationTime?: number;
2411
- /**
2412
- * Number of servings the recipe yields.
2413
- */
2414
- servings?: number;
2415
- /**
2416
- * Approximate calorie count per serving.
2417
- */
2418
- calories?: number;
2419
- /**
2420
- * List of ingredients with name, quantity, unit, and display string.
2421
- */
2422
- ingredients?: Array<RecipeIngredient> | null;
2423
- /**
2424
- * URL to the recipe's thumbnail or hero image.
2425
- */
2426
- imageUrl?: string | null;
2427
- /**
2428
- * Ordered list of preparation and cooking steps.
2429
- */
2430
- instructions?: Array<string> | null;
2431
- };
2432
-
2433
- declare enum CricketGameFormat {
2434
- UNKNOWN = "Unknown",
2435
- ODI = "Odi",
2436
- TEST = "Test",
2437
- T20 = "T20"
2438
- }
2439
-
2440
- declare enum CricketInningType {
2441
- UNKNOWN = "Unknown",
2442
- TEST = "Test",
2443
- LIMITED_OVERS = "LimitedOvers",
2444
- SUPER_OVER = "SuperOver"
2445
- }
2446
-
2447
- type CricketInning = {
2448
- inningType?: CricketInningType;
2449
- /**
2450
- * Innings number.
2451
- */
2452
- inningNumber?: number | null;
2453
- /**
2454
- * Overs bowled.
2455
- */
2456
- overInfo?: string | null;
2457
- /**
2458
- * Runs scored.
2459
- */
2460
- runsScored?: number | null;
2461
- /**
2462
- * Wickets lost.
2463
- */
2464
- wickets?: number | null;
2465
- /**
2466
- * Whether the innings was declared.
2467
- */
2468
- isInningDeclared?: boolean | null;
2469
- /**
2470
- * Whether the innings followed on.
2471
- */
2472
- isInningFollowedOn?: boolean | null;
2473
- /**
2474
- * Duckworth-Lewis revised target.
2475
- */
2476
- duckWorthLewisTarget?: number | null;
2477
- /**
2478
- * Duckworth-Lewis overs for the revised target.
2479
- */
2480
- duckWorthLewisOvers?: string | null;
2481
- };
2482
-
2483
- declare enum GameOutcome {
2484
- UNKNOWN = "Unknown",
2485
- NO_GAME = "NoGame",
2486
- WON = "Won",
2487
- LOST = "Lost",
2488
- TIED = "Tied"
2489
- }
2490
-
2491
- type CricketParticipant = {
2492
- /**
2493
- * Team display name.
2494
- */
2495
- teamName?: string | null;
2496
- /**
2497
- * Team tournament seed.
2498
- */
2499
- teamSeed?: number | null;
2500
- /**
2501
- * Team alias.
2502
- */
2503
- teamAlias?: string | null;
2504
- /**
2505
- * Team short name.
2506
- */
2507
- teamShortName?: string | null;
2508
- /**
2509
- * Team thumbnail URL.
2510
- */
2511
- teamThumbnailUrl?: string | null;
2512
- outcome?: GameOutcome;
2513
- /**
2514
- * Previous participant outcomes.
2515
- */
2516
- previousOutcomes?: Array<string> | null;
2517
- /**
2518
- * Whether the team is yet to bat.
2519
- */
2520
- yetToBat?: boolean | null;
2521
- /**
2522
- * Whether the team did not bat.
2523
- */
2524
- didNotBat?: boolean | null;
2525
- };
2526
-
2527
- type CricketPlayerStats = {
2528
- /**
2529
- * Player name.
2530
- */
2531
- playerName?: string | null;
2532
- /**
2533
- * Batting runs scored.
2534
- */
2535
- battingRunsScored?: number | null;
2536
- /**
2537
- * Batting balls faced.
2538
- */
2539
- battingBallsFaced?: number | null;
2540
- /**
2541
- * Whether the player is currently on strike.
2542
- */
2543
- battingIsOnStrike?: boolean | null;
2544
- /**
2545
- * Bowling overs.
2546
- */
2547
- bowlingOvers?: string | null;
2548
- /**
2549
- * Bowling runs conceded.
2550
- */
2551
- bowlingRunsConceded?: number | null;
2552
- /**
2553
- * Bowling wickets taken.
2554
- */
2555
- bowlingWicketsTaken?: number | null;
2556
- /**
2557
- * Whether the player is currently bowling.
2558
- */
2559
- bowlingIsBowlingNow?: boolean | null;
2560
- };
2561
-
2562
- declare enum GameStatus {
2563
- UNKNOWN = "Unknown",
2564
- PRE_GAME = "PreGame",
2565
- IN_PROGRESS = "InProgress",
2566
- FINAL = "Final",
2567
- POSTPONED = "Postponed",
2568
- DELAYED = "Delayed",
2569
- ABANDONED = "Abandoned",
2570
- CANCELLED = "Cancelled",
2571
- DRINKS = "Drinks",
2572
- DINNER = "Dinner",
2573
- TEA = "Tea",
2574
- LUNCH = "Lunch",
2575
- INNINGS_BREAK = "InningsBreak",
2576
- SUPER_OVER = "SuperOver",
2577
- TOSS = "Toss",
2578
- STUMPS = "Stumps",
2579
- RETIRED = "Retired",
2580
- BYE = "Bye",
2581
- STRATEGIC_TIMEOUT = "StrategicTimeout",
2582
- FORFEITED = "Forfeited",
2583
- UNSCHEDULED = "Unscheduled",
2584
- SUSPENDED = "Suspended",
2585
- QUALIFYING_ONGOING = "QualifyingOngoing",
2586
- QUALIFYING_COMPLETED = "QualifyingCompleted"
2587
- }
2588
-
2589
- type Venue = {
2590
- /**
2591
- * Venue identifier.
2592
- */
2593
- id?: string | null;
2594
- /**
2595
- * Base venue name.
2596
- */
2597
- name?: string | null;
2598
- /**
2599
- * Venue street address.
2600
- */
2601
- address?: string | null;
2602
- /**
2603
- * Venue postal code.
2604
- */
2605
- zipCode?: string | null;
2606
- /**
2607
- * Venue city.
2608
- */
2609
- city?: string | null;
2610
- /**
2611
- * Venue state or province.
2612
- */
2613
- state?: string | null;
2614
- /**
2615
- * Venue country.
2616
- */
2617
- country?: string | null;
2618
- /**
2619
- * Venue latitude.
2620
- */
2621
- latitude?: number | null;
2622
- /**
2623
- * Venue longitude.
2624
- */
2625
- longitude?: number | null;
2626
- };
2627
-
2628
- type GameBase = {
2629
- $type: string;
2630
- /**
2631
- * Game identifier.
2632
- */
2633
- gameId?: string | null;
2634
- /**
2635
- * League identifier.
2636
- */
2637
- leagueId?: string | null;
2638
- /**
2639
- * Game start date and time in ISO 8601 format.
2640
- */
2641
- startDateTime?: string | null;
2642
- /**
2643
- * Whether the game start time is to be announced.
2644
- */
2645
- startTimeToBeAnnounced?: boolean | null;
2646
- gameStatus?: GameStatus;
2647
- venue?: Venue;
2648
- };
2649
-
2650
- type Video = {
2651
- /**
2652
- * Video URL.
2653
- */
2654
- url?: string | null;
2655
- /**
2656
- * Video thumbnail URL.
2657
- */
2658
- thumbnailUrl?: string | null;
2659
- /**
2660
- * Video title.
2661
- */
2662
- title?: string | null;
2663
- /**
2664
- * Video duration in seconds.
2665
- */
2666
- durationInSeconds?: number | null;
2667
- };
2668
-
2669
- type CricketGame = GameBase & {
2670
- format?: CricketGameFormat;
2671
- /**
2672
- * Toss result information.
2673
- */
2674
- tossInfo?: string | null;
2675
- /**
2676
- * Match summary.
2677
- */
2678
- gameSummary?: string | null;
2679
- /**
2680
- * Required run rate.
2681
- */
2682
- requiredRunRate?: number | null;
2683
- /**
2684
- * Current run rate.
2685
- */
2686
- currentRunRate?: number | null;
2687
- /**
2688
- * Match videos.
2689
- */
2690
- videos?: Array<Video> | null;
2691
- /**
2692
- * Game ordinal within the series.
2693
- */
2694
- seriesGameOrdinal?: number | null;
2695
- /**
2696
- * Series or tournament name.
2697
- */
2698
- seriesTournament?: string | null;
2699
- /**
2700
- * Total matches in the series.
2701
- */
2702
- seriesTotalMatches?: number | null;
2703
- /**
2704
- * Current series or match equation.
2705
- */
2706
- seriesEquation?: string | null;
2707
- /**
2708
- * Series round name.
2709
- */
2710
- seriesRoundName?: string | null;
2711
- /**
2712
- * Team name for the player of the match.
2713
- */
2714
- playerOfTheMatchTeamName?: string | null;
2715
- /**
2716
- * Statistics for the player of the match.
2717
- */
2718
- playerOfTheMatchStats?: Array<CricketPlayerStats> | null;
2719
- participant1?: CricketParticipant;
2720
- /**
2721
- * Innings for the first participant.
2722
- */
2723
- participant1Innings?: Array<CricketInning> | null;
2724
- /**
2725
- * Player statistics for the first participant.
2726
- */
2727
- participant1PlayerStats?: Array<CricketPlayerStats> | null;
2728
- participant2?: CricketParticipant;
2729
- /**
2730
- * Innings for the second participant.
2731
- */
2732
- participant2Innings?: Array<CricketInning> | null;
2733
- /**
2734
- * Player statistics for the second participant.
2735
- */
2736
- participant2PlayerStats?: Array<CricketPlayerStats> | null;
2737
- };
2738
-
2739
- type LeagueSeason = {
2740
- /**
2741
- * Full league name.
2742
- */
2743
- name?: string | null;
2744
- /**
2745
- * League logo thumbnail URL.
2746
- */
2747
- thumbnailUrl?: string | null;
2748
- /**
2749
- * Season start date and time in ISO 8601 format.
2750
- */
2751
- seasonStartDateTime?: string | null;
2752
- /**
2753
- * Season end date and time in ISO 8601 format.
2754
- */
2755
- seasonEndDateTime?: string | null;
2756
- /**
2757
- * Season year.
2758
- */
2759
- seasonYear?: number | null;
2760
- /**
2761
- * Current week in the season.
2762
- */
2763
- currentWeek?: number | null;
2764
- /**
2765
- * Current season phase.
2766
- */
2767
- currentPhase?: string | null;
2768
- /**
2769
- * Detailed current season phase.
2770
- */
2771
- currentPhaseDetailed?: string | null;
2772
- };
2773
-
2774
- type RaceParticipant = {
2775
- /**
2776
- * Finishing position.
2777
- */
2778
- position?: number | null;
2779
- /**
2780
- * Total race time.
2781
- */
2782
- totalTime?: string | null;
2783
- /**
2784
- * Championship points earned.
2785
- */
2786
- points?: number | null;
2787
- /**
2788
- * Driver display name.
2789
- */
2790
- driverName?: string | null;
2791
- /**
2792
- * Driver first name.
2793
- */
2794
- driverFirstName?: string | null;
2795
- /**
2796
- * Driver last name.
2797
- */
2798
- driverLastName?: string | null;
2799
- /**
2800
- * Driver thumbnail URL.
2801
- */
2802
- driverThumbnailUrl?: string | null;
2803
- /**
2804
- * Driver or rider role.
2805
- */
2806
- driverPosition?: string | null;
2807
- /**
2808
- * Team display name.
2809
- */
2810
- teamName?: string | null;
2811
- /**
2812
- * Team seed.
2813
- */
2814
- teamSeed?: number | null;
2815
- /**
2816
- * Team alias.
2817
- */
2818
- teamAlias?: string | null;
2819
- /**
2820
- * Team short name.
2821
- */
2822
- teamShortName?: string | null;
2823
- /**
2824
- * Team thumbnail URL.
2825
- */
2826
- teamThumbnailUrl?: string | null;
2827
- };
2828
-
2829
- type Race = GameBase & {
2830
- /**
2831
- * Race name.
2832
- */
2833
- name?: string | null;
2834
- /**
2835
- * Number of laps completed.
2836
- */
2837
- lapsCompleted?: number | null;
2838
- /**
2839
- * Total number of laps.
2840
- */
2841
- totalLaps?: number | null;
2842
- /**
2843
- * Track layout image URL.
2844
- */
2845
- trackImageUrl?: string | null;
2846
- /**
2847
- * Host country flag URL.
2848
- */
2849
- countryFlagUrl?: string | null;
2850
- /**
2851
- * Race participants.
2852
- */
2853
- participants?: Array<RaceParticipant> | null;
2854
- };
2855
-
2856
- type Goal = {
2857
- /**
2858
- * Scoring player name.
2859
- */
2860
- playerName?: string | null;
2861
- /**
2862
- * Scoring player position.
2863
- */
2864
- playerPosition?: string | null;
2865
- /**
2866
- * Match-clock minute when the goal was scored.
2867
- */
2868
- clockMinutes?: number | null;
2869
- /**
2870
- * Match-clock second when the goal was scored.
2871
- */
2872
- clockSeconds?: number | null;
2873
- /**
2874
- * Stoppage-time minute when the goal was scored.
2875
- */
2876
- clockStoppageMinutes?: number | null;
2877
- /**
2878
- * Stoppage-time second when the goal was scored.
2879
- */
2880
- clockStoppageSeconds?: number | null;
2881
- };
2882
-
2883
- type GameStatistics = {
2884
- /**
2885
- * Soccer ball-possession percentage.
2886
- */
2887
- ballPossessionPercentage?: number | null;
2888
- /**
2889
- * Goals scored by the participant.
2890
- */
2891
- goals?: Array<Goal> | null;
2892
- /**
2893
- * Baseball hits.
2894
- */
2895
- hits?: number | null;
2896
- /**
2897
- * Baseball runs.
2898
- */
2899
- runs?: number | null;
2900
- /**
2901
- * Baseball errors.
2902
- */
2903
- errors?: number | null;
2904
- };
2905
-
2906
- declare enum HomeAwayStatusType {
2907
- UNKNOWN = "Unknown",
2908
- HOME = "Home",
2909
- AWAY = "Away",
2910
- NEUTRAL = "Neutral"
2911
- }
2912
-
2913
- type Participant = {
2914
- /**
2915
- * Team display name.
2916
- */
2917
- teamName?: string | null;
2918
- /**
2919
- * Team tournament seed.
2920
- */
2921
- teamSeed?: number | null;
2922
- /**
2923
- * Team alias.
2924
- */
2925
- teamAlias?: string | null;
2926
- /**
2927
- * Team identifier.
2928
- */
2929
- teamId?: string | null;
2930
- /**
2931
- * Team short name.
2932
- */
2933
- teamShortName?: string | null;
2934
- /**
2935
- * Team thumbnail URL.
2936
- */
2937
- teamThumbnailUrl?: string | null;
2938
- outcome?: GameOutcome;
2939
- /**
2940
- * Detailed participant outcome.
2941
- */
2942
- outcomeDetails?: string | null;
2943
- homeAway?: HomeAwayStatusType;
2944
- /**
2945
- * Previous participant outcomes.
2946
- */
2947
- previousOutcomes?: Array<string> | null;
2948
- /**
2949
- * Type of result represented by the score.
2950
- */
2951
- resultType?: string | null;
2952
- /**
2953
- * Participant score.
2954
- */
2955
- score?: string | null;
2956
- /**
2957
- * Participant aggregate score.
2958
- */
2959
- aggregatedScore?: string | null;
2960
- /**
2961
- * Number of wins in the participant record.
2962
- */
2963
- recordWins?: number | null;
2964
- /**
2965
- * Number of losses in the participant record.
2966
- */
2967
- recordLosses?: number | null;
2968
- /**
2969
- * Number of ties in the participant record.
2970
- */
2971
- recordTies?: number | null;
2972
- /**
2973
- * Number of overtime losses in the participant record.
2974
- */
2975
- recordOvertimeLosses?: number | null;
2976
- /**
2977
- * Participant win probability.
2978
- */
2979
- winProbability?: number | null;
2980
- /**
2981
- * Participant wins in the current bracket series.
2982
- */
2983
- bracketWins?: number | null;
2984
- };
2985
-
2986
- type PeriodScore = {
2987
- /**
2988
- * Playing period type, such as Quarter or Half.
2989
- */
2990
- periodType?: string | null;
2991
- /**
2992
- * Playing period number.
2993
- */
2994
- periodNumber?: number | null;
2995
- /**
2996
- * Score in the playing period.
2997
- */
2998
- score?: string | null;
2999
- /**
3000
- * Playing period division.
3001
- */
3002
- periodDivision?: string | null;
3003
- /**
3004
- * Type of period result.
3005
- */
3006
- resultType?: string | null;
3007
- /**
3008
- * Aggregate score through the playing period.
3009
- */
3010
- aggregatedScore?: string | null;
3011
- };
3012
-
3013
- type TimelineEvent = {
3014
- /**
3015
- * Timeline event type.
3016
- */
3017
- eventType?: string | null;
3018
- /**
3019
- * Method or subtype of the timeline event.
3020
- */
3021
- eventTypeMethod?: string | null;
3022
- /**
3023
- * Timeline event description.
3024
- */
3025
- description?: string | null;
3026
- /**
3027
- * Event date and time in ISO 8601 format.
3028
- */
3029
- eventDateTime?: string | null;
3030
- /**
3031
- * Event match-clock minute.
3032
- */
3033
- eventClockMinutes?: number | null;
3034
- /**
3035
- * Event match-clock second.
3036
- */
3037
- eventClockSeconds?: number | null;
3038
- /**
3039
- * Event sequence number.
3040
- */
3041
- sequence?: number | null;
3042
- /**
3043
- * Extended event sequence value.
3044
- */
3045
- longSequence?: number | null;
3046
- /**
3047
- * Team display name.
3048
- */
3049
- teamName?: string | null;
3050
- /**
3051
- * Player display name.
3052
- */
3053
- playerName?: string | null;
3054
- /**
3055
- * Player position.
3056
- */
3057
- playerPosition?: string | null;
3058
- /**
3059
- * First participant name at this event.
3060
- */
3061
- result1Name?: string | null;
3062
- /**
3063
- * First participant score at this event.
3064
- */
3065
- result1Score?: string | null;
3066
- /**
3067
- * Second participant name at this event.
3068
- */
3069
- result2Name?: string | null;
3070
- /**
3071
- * Second participant score at this event.
3072
- */
3073
- result2Score?: string | null;
3074
- /**
3075
- * Event stoppage-time minute.
3076
- */
3077
- eventClockStoppageMinutes?: number | null;
3078
- /**
3079
- * Event stoppage-time second.
3080
- */
3081
- eventClockStoppageSeconds?: number | null;
3082
- /**
3083
- * Playing period type for the event.
3084
- */
3085
- playingPeriodType?: string | null;
3086
- /**
3087
- * Playing period number for the event.
3088
- */
3089
- playingPeriodNumber?: number | null;
3090
- /**
3091
- * Playing period division for the event.
3092
- */
3093
- playingPeriodDivision?: string | null;
3094
- };
3095
-
3096
- type TeamGame = GameBase & {
3097
- /**
3098
- * Detailed game status.
3099
- */
3100
- gameStatusDetails?: string | null;
3101
- /**
3102
- * Game-clock minutes.
3103
- */
3104
- gameClockMinutes?: number | null;
3105
- /**
3106
- * Game-clock seconds.
3107
- */
3108
- gameClockSeconds?: number | null;
3109
- /**
3110
- * Game-clock stoppage minutes.
3111
- */
3112
- gameClockStoppageMinutes?: number | null;
3113
- /**
3114
- * Game-clock stoppage seconds.
3115
- */
3116
- gameClockStoppageSeconds?: number | null;
3117
- /**
3118
- * Current playing period type.
3119
- */
3120
- currentPeriodType?: string | null;
3121
- /**
3122
- * Current playing period number.
3123
- */
3124
- currentPeriodNumber?: number | null;
3125
- /**
3126
- * Current playing period division.
3127
- */
3128
- currentPeriodDivision?: string | null;
3129
- /**
3130
- * Current season phase.
3131
- */
3132
- seasonPhase?: string | null;
3133
- /**
3134
- * Detailed current season phase.
3135
- */
3136
- seasonPhaseDetails?: string | null;
3137
- /**
3138
- * Current season sub-phase number.
3139
- */
3140
- subPhaseNumber?: number | null;
3141
- /**
3142
- * Total number of season sub-phases.
3143
- */
3144
- totalSubPhases?: number | null;
3145
- /**
3146
- * Week number in the season.
3147
- */
3148
- week?: number | null;
3149
- /**
3150
- * Game name.
3151
- */
3152
- gameName?: string | null;
3153
- /**
3154
- * League display name.
3155
- */
3156
- leagueName?: string | null;
3157
- /**
3158
- * Game timeline events.
3159
- */
3160
- timeline?: Array<TimelineEvent> | null;
3161
- /**
3162
- * Game videos.
3163
- */
3164
- videos?: Array<Video> | null;
3165
- /**
3166
- * Bracket or playoff phase.
3167
- */
3168
- bracketPhase?: string | null;
3169
- /**
3170
- * Bracket or playoff state.
3171
- */
3172
- bracketState?: string | null;
3173
- /**
3174
- * Bracket conference.
3175
- */
3176
- bracketConference?: string | null;
3177
- /**
3178
- * Game number within the bracket.
3179
- */
3180
- bracketGameNumber?: number | null;
3181
- /**
3182
- * Current leg in a multi-leg tie or series.
3183
- */
3184
- legCurrent?: number | null;
3185
- /**
3186
- * Total legs in a multi-leg tie or series.
3187
- */
3188
- legTotal?: number | null;
3189
- participant1?: Participant;
3190
- /**
3191
- * Playing-period scores for the first participant.
3192
- */
3193
- participant1PeriodScores?: Array<PeriodScore> | null;
3194
- participant1Statistics?: GameStatistics;
3195
- /**
3196
- * Multi-leg aggregate score for the first participant.
3197
- */
3198
- participant1LegAggregatedScore?: string | null;
3199
- participant2?: Participant;
3200
- /**
3201
- * Playing-period scores for the second participant.
3202
- */
3203
- participant2PeriodScores?: Array<PeriodScore> | null;
3204
- participant2Statistics?: GameStatistics;
3205
- /**
3206
- * Multi-leg aggregate score for the second participant.
3207
- */
3208
- participant2LegAggregatedScore?: string | null;
3209
- };
3210
-
3211
- declare enum TennisMatchType {
3212
- UNKNOWN = "Unknown",
3213
- MEN_SINGLES = "MenSingles",
3214
- MEN_DOUBLES = "MenDoubles",
3215
- WOMEN_SINGLES = "WomenSingles",
3216
- WOMEN_DOUBLES = "WomenDoubles",
3217
- MIXED_DOUBLES = "MixedDoubles"
3218
- }
3219
-
3220
- type TennisPlayer = {
3221
- /**
3222
- * Player name.
3223
- */
3224
- name?: string | null;
3225
- /**
3226
- * Player tournament seed.
3227
- */
3228
- seed?: number | null;
3229
- /**
3230
- * Player country flag URL.
3231
- */
3232
- countryFlagUrl?: string | null;
3233
- };
3234
-
3235
- declare enum TennisRound {
3236
- UNKNOWN = "Unknown",
3237
- FINAL = "Final",
3238
- QUARTERFINAL = "Quarterfinal",
3239
- ROUND_OF128 = "RoundOf128",
3240
- ROUND_OF16 = "RoundOf16",
3241
- ROUND_OF256 = "RoundOf256",
3242
- ROUND_OF32 = "RoundOf32",
3243
- ROUND_OF64 = "RoundOf64",
3244
- SEMIFINAL = "Semifinal"
3245
- }
3246
-
3247
- type TennisSetScore = {
3248
- /**
3249
- * Number of games won in the set.
3250
- */
3251
- gamesWon?: number | null;
3252
- /**
3253
- * Whether the participant is currently serving.
3254
- */
3255
- isServing?: boolean | null;
3256
- /**
3257
- * Tie-breaker points.
3258
- */
3259
- tieBreakerPoints?: number | null;
3260
- /**
3261
- * Current game score within the set.
3262
- */
3263
- currentGameScore?: string | null;
3264
- /**
3265
- * Whether the participant won the set.
3266
- */
3267
- setWon?: boolean | null;
3268
- };
3269
-
3270
- type TennisGame = GameBase & {
3271
- category?: TennisMatchType;
3272
- round?: TennisRound;
3273
- /**
3274
- * Players for the first participant.
3275
- */
3276
- participant1Players?: Array<TennisPlayer> | null;
3277
- participant1Outcome?: GameOutcome;
3278
- /**
3279
- * Set scores for the first participant.
3280
- */
3281
- participant1SetScores?: Array<TennisSetScore> | null;
3282
- /**
3283
- * Players for the second participant.
3284
- */
3285
- participant2Players?: Array<TennisPlayer> | null;
3286
- participant2Outcome?: GameOutcome;
3287
- /**
3288
- * Set scores for the second participant.
3289
- */
3290
- participant2SetScores?: Array<TennisSetScore> | null;
3291
- };
3292
-
3293
- type SportsItem = {
3294
- /**
3295
- * Unstructured text content used for sports outside the structured schemas.
3296
- */
3297
- contentList?: Array<string> | null;
3298
- /**
3299
- * Name of the sport associated with the structured game data.
3300
- */
3301
- sport?: string | null;
3302
- /**
3303
- * Structured sports games.
3304
- */
3305
- games?: Array<GameBase | CricketGame | TeamGame | TennisGame | Race> | null;
3306
- leagueSeason?: LeagueSeason;
3307
- };
3308
-
3309
- type TechHelpItem = {
3310
- /**
3311
- * Title of the tech help article.
3312
- */
3313
- title?: string | null;
3314
- /**
3315
- * Link to the tech help page.
3316
- */
3317
- url?: string | null;
3318
- /**
3319
- * Source website of the article (derived from URL host).
3320
- */
3321
- source?: string | null;
3322
- /**
3323
- * Operating system the help is relevant to.
3324
- */
3325
- operatingSystem?: string | null;
3326
- /**
3327
- * Introductory text about the help topic.
3328
- */
3329
- introduction?: string | null;
3330
- /**
3331
- * Extracted content body of the tech help article.
3332
- */
3333
- content?: string | null;
3334
- };
3335
-
3336
- type TimeZoneEntry = {
3337
- /**
3338
- * Full name of the time zone.
3339
- */
3340
- timeZoneName?: string | null;
3341
- /**
3342
- * Short abbreviation, e.g. KST, IST, PDT.
3343
- */
3344
- timeZoneAbbreviation?: string | null;
3345
- /**
3346
- * City/country/region for the time zone.
3347
- */
3348
- location?: string | null;
3349
- /**
3350
- * UTC offset in hours. Null when the source does not provide an offset.
3351
- */
3352
- utcOffset?: number | null;
3353
- /**
3354
- * UTC time as a formatted string.
3355
- */
3356
- utcTime?: string | null;
3357
- /**
3358
- * Local time as a formatted string.
3359
- */
3360
- localTime?: string | null;
3361
- };
3362
-
3363
- type TimeZoneItem = {
3364
- /**
3365
- * Short human-readable summary of the answer. Empty for the date-only variant.
3366
- */
3367
- description?: string | null;
3368
- /**
3369
- * Time zone objects for single or multi-time-zone answers.
3370
- */
3371
- timeZones?: Array<TimeZoneEntry> | null;
3372
- startTimeZone?: TimeZoneEntry;
3373
- endTimeZone?: TimeZoneEntry;
3374
- /**
3375
- * Human-readable time difference sentence for comparison answers.
3376
- */
3377
- timeDifference?: string | null;
3378
- };
3379
-
3380
- type TravelItem = {
3381
- /**
3382
- * Title of the page.
3383
- */
3384
- title?: string | null;
3385
- /**
3386
- * Link of the result.
3387
- */
3388
- url?: string | null;
3389
- /**
3390
- * Description of the search.
3391
- */
3392
- description?: string | null;
3393
- /**
3394
- * Flight status card content as a JSON object. Populated when the travel answer is a flight status result.
3395
- */
3396
- flightStatus?: Record<string, any> | null;
3397
- /**
3398
- * Airline information card content as a JSON object. Populated when the travel answer is an airline info result.
3399
- */
3400
- airlineInfo?: Record<string, any> | null;
3401
- };
3402
-
3403
- type WeatherItem = {
3404
- /**
3405
- * Human-readable name of the queried location.
3406
- */
3407
- location?: string | null;
3408
- /**
3409
- * Canonical MSN Weather attribution URL for the answer.
3410
- */
3411
- url?: string | null;
3412
- /**
3413
- * Units used by numeric weather values.
3414
- */
3415
- units?: Record<string, any> | null;
3416
- /**
3417
- * Active weather alerts. Empty when no alerts are available.
3418
- */
3419
- alerts?: Array<any> | null;
3420
- /**
3421
- * Current weather conditions.
3422
- */
3423
- currentWeather?: Record<string, any> | null;
3424
- /**
3425
- * Daily forecasts for the configured forecast horizon.
3426
- */
3427
- forecastedWeather?: Array<any> | null;
3428
- /**
3429
- * Optional monthly historical averages.
3430
- */
3431
- historicalWeather?: Record<string, any> | null;
3432
- /**
3433
- * Optional query-specific sun and moon data.
3434
- */
3435
- sunlight?: Record<string, any> | null;
3436
- };
3437
-
3438
- type SearchClassicResponse = {
3439
- querySignals?: QuerySignals;
3440
- /**
3441
- * Base URL for click ping requests. Append an instrumentationSuffix value from a result item to form the full ping URL.
3442
- */
3443
- instrumentationClickBase?: string | null;
3444
- /**
3445
- * Base URL for LLM log ping requests. Append a DATA payload to form the full ping URL.
3446
- */
3447
- instrumentationCitationBase?: string | null;
3448
- /**
3449
- * Trace ID for debugging and tracking.
3450
- */
3451
- traceId?: string | null;
3452
- webResults?: Array<WebResult>;
3453
- imageResults?: Array<ImageItem>;
3454
- videoResults?: Array<VideoItem>;
3455
- newsResults?: Array<NewsItem>;
3456
- financeResults?: Array<FinanceResultItem>;
3457
- placeResults?: Array<PlaceItem>;
3458
- sportsResults?: Array<SportsItem>;
3459
- appResults?: Array<AppResultItem>;
3460
- computationResults?: Array<ComputationItem>;
3461
- dictionaryResults?: Array<DictionaryWordsItem>;
3462
- directionResults?: Array<DirectionItem>;
3463
- eventResults?: Array<EventItem>;
3464
- healthResults?: Array<HealthItem>;
3465
- jobResults?: Array<JobItem>;
3466
- mapResults?: Array<MapsItem>;
3467
- prayerTimeResults?: Array<PrayerTimesItem>;
3468
- realEstateResults?: Array<RealEstateItem>;
3469
- recipeResults?: Array<RecipeItem>;
3470
- techHelpResults?: Array<TechHelpItem>;
3471
- timeZoneResults?: Array<TimeZoneItem>;
3472
- travelResults?: Array<TravelItem>;
3473
- weatherResults?: Array<WeatherItem>;
3474
- [key: string]: any;
3475
- };
3476
-
3477
- /**
3478
- * Classic search resource.
3479
- */
3480
-
3481
- /**
3482
- * Classic search request parameters.
3483
- */
3484
- interface ClassicSearchParams {
3485
- /** Search query string (1-1000 chars). */
3486
- query: string;
3487
- /** Max answer types to return (1-6, default 6). */
3488
- maxAnswerTypes?: number;
3489
- /** Language code (ISO 639-1/2 or BCP 47). */
3490
- language?: string;
3491
- /** 2-letter country/region code. */
3492
- region?: string;
3493
- /** Location in format 'lat:<float>;long:<float>'. */
3494
- location?: string;
3495
- /** Max web results to return (1-50, default 10). */
3496
- maxResultsWeb?: number;
3497
- /** Max characters in content (1-500000, default 10000). */
3498
- maxLength?: number;
3499
- /** Content format: use ContentFormat.PASSAGE, .TEXT, .HTML, or .MARKDOWN. */
3500
- contentFormat?: ContentFormat;
3501
- /** Time range filter ('day', 'week', 'month', 'year', or date range). */
3502
- freshness?: string;
3503
- /** List of answer types to include in response. */
3504
- responseFilter?: string[];
3505
- /** Safe search mode: use SafeSearch.OFF or .STRICT. */
3506
- safeSearch?: SafeSearch;
3507
- /** Per-request timeout in milliseconds (overrides client default). */
3508
- timeout?: number;
3509
- /** Caller-provided cancellation signal (see `WebSearchParams.signal`). */
3510
- signal?: AbortSignal;
3511
- }
3512
- /** Classic search options (query is passed separately). */
3513
- type ClassicSearchOptions = Omit<ClassicSearchParams, 'query'>;
3514
- /**
3515
- * Classic search resource for the Web IQ API.
3516
- * Given a query, searches and retrieves content from webpages, images, videos,
3517
- * news, weather, sports, etc.
3518
- */
3519
- declare class ClassicResource {
3520
- private readonly transport;
3521
- constructor(transport: Transport);
3522
- /**
3523
- * Perform a classic search returning grouped results across multiple answer types.
3524
- *
3525
- * @param query - Search query string (1-1000 chars)
3526
- * @param options - Search options
3527
- * @returns SearchClassicResponse with querySignals, traceId, and additional answer types
3528
- */
3529
- search(query: string, options?: ClassicSearchOptions): Promise<SearchClassicResponse>;
3530
- }
3531
-
3532
- /**
3533
- * Configuration for request retry behavior.
3534
- */
3535
- interface RetryPolicyOptions {
3536
- /** Maximum number of retry attempts (default: 2) */
3537
- maxRetries?: number;
3538
- /** Base delay in seconds for exponential backoff (default: 0.25) */
3539
- baseDelaySeconds?: number;
3540
- /** Maximum delay in seconds (default: 4.0) */
3541
- maxDelaySeconds?: number;
3542
- /**
3543
- * HTTP status codes that trigger a retry. 429 and 430 (rate-limit /
3544
- * concurrency-limit) are intentionally excluded: the transport throws
3545
- * `RateLimitError` immediately so the caller can inspect `error.retryAfter`
3546
- * and decide whether to back off.
3547
- */
3548
- retryOnStatus?: number[];
3549
- }
3550
- /**
3551
- * Retry policy with exponential backoff.
3552
- */
3553
- declare class RetryPolicy {
3554
- readonly maxRetries: number;
3555
- readonly baseDelaySeconds: number;
3556
- readonly maxDelaySeconds: number;
3557
- readonly retryOnStatus: Set<number>;
3558
- constructor(options?: RetryPolicyOptions);
3559
- /**
3560
- * Compute the delay before the next retry attempt.
3561
- *
3562
- * @param attempt - Current attempt number (1-based)
3563
- * @param retryAfter - Server-specified retry-after value (if any)
3564
- * @returns Delay in seconds before next attempt
3565
- */
3566
- computeDelay(attempt: number, retryAfter?: number): number;
3567
- /**
3568
- * Check if a status code should trigger a retry.
3569
- */
3570
- shouldRetry(statusCode: number): boolean;
3571
- }
3572
-
3573
- /**
3574
- * Telemetry support for tracking API requests.
3575
- */
3576
- /**
3577
- * Event emitted for each API request attempt.
3578
- */
3579
- interface TelemetryEvent {
3580
- /** HTTP method (GET, POST, etc.) */
3581
- method: string;
3582
- /** API path */
3583
- path: string;
3584
- /** Transport type (e.g. 'http') */
3585
- transport: string;
3586
- /** Attempt number (1-based) */
3587
- attempt: number;
3588
- /** HTTP status code (if available) */
3589
- statusCode?: number;
3590
- /** Request ID from response headers */
3591
- requestId?: string;
3592
- /** Trace ID from response body */
3593
- traceId?: string;
3594
- /** Retry-after value (if rate limited) */
3595
- retryAfter?: string;
3596
- /** Request duration in milliseconds */
3597
- elapsedMs?: number;
3598
- /** Exception (if request failed) */
3599
- error?: Error;
3600
- /** Error response body (if status >= 400) */
3601
- errorBody?: unknown;
3602
- }
3603
- /**
3604
- * Callback function for telemetry events.
3605
- */
3606
- type TelemetryHook = (event: TelemetryEvent) => void;
3607
- /**
3608
- * Safely invoke a telemetry hook, ignoring any exceptions.
3609
- */
3610
- declare function safeCall(hook: TelemetryHook | undefined, event: TelemetryEvent): void;
3611
- /**
3612
- * Create a telemetry event.
3613
- */
3614
- declare function createTelemetryEvent(method: string, path: string, transport: string, attempt: number, options?: Partial<Omit<TelemetryEvent, 'method' | 'path' | 'transport' | 'attempt'>>): TelemetryEvent;
3615
-
3616
- /**
3617
- * Web IQ SDK for the Web IQ API.
3618
- */
3619
-
3620
- /**
3621
- * Options for creating a Web IQ client.
3622
- */
3623
- interface WebIQClientOptions {
3624
- /** Your Web IQ API key (use this OR credential/auth) */
3625
- apiKey?: string;
3626
- /** An `azure-identity` `TokenCredential`. */
3627
- credential?: TokenCredential;
3628
- /** Optional OAuth scope. Defaults to {@link DEFAULT_SCOPE}. */
3629
- scope?: string;
3630
- /** Custom AuthProvider instance */
3631
- auth?: AuthProvider;
3632
- /** Base URL for the API (default: https://api.microsoft.ai/v3) */
3633
- baseUrl?: string;
3634
- /** Optional callback for telemetry events */
3635
- telemetryHook?: TelemetryHook;
3636
- /**
3637
- * Default per-request timeout in milliseconds. Individual calls can
3638
- * override this with their own `timeout` option.
3639
- */
3640
- timeout?: number;
3641
- /** Retry policy (or options) applied to every request. */
3642
- retry?: RetryPolicy | RetryPolicyOptions;
3643
- /**
3644
- * Custom fetch function for advanced networking (e.g., proxy support, custom TLS).
3645
- * Must be compatible with the global `fetch` signature.
3646
- * If not provided, the global `fetch` is used.
3647
- *
3648
- * @example
3649
- * ```typescript
3650
- * import { ProxyAgent } from "undici";
3651
- *
3652
- * const proxyAgent = new ProxyAgent("http://my-proxy:8080");
3653
- * const client = new WebIQClient({
3654
- * apiKey: "key",
3655
- * // `dispatcher` is a Node/undici-specific option; the FetchFunction
3656
- * // type accepts extra init fields so no type assertion is needed.
3657
- * fetchFn: (url, init) => fetch(url, { ...init, dispatcher: proxyAgent }),
3658
- * });
3659
- * ```
3660
- */
3661
- fetchFn?: FetchFunction;
3662
- }
3663
- /**
3664
- * Web IQ client for the Web IQ API.
3665
- *
3666
- * @example
3667
- * ```typescript
3668
- * // Using API key
3669
- * const client = new WebIQClient({ apiKey: "your-api-key" });
3670
- *
3671
- * // Search the web
3672
- * const results = await client.web.search("Python programming");
3673
- * for (const result of results.webResults ?? []) {
3674
- * console.log(result.title, result.url);
3675
- * }
3676
- *
3677
- * // Close when done
3678
- * await client.close();
3679
- * ```
3680
- *
3681
- * @example
3682
- * ```typescript
3683
- * // Using EntraID via any azure-identity credential
3684
- * import { DefaultAzureCredential } from "@azure/identity";
3685
- *
3686
- * const client = new WebIQClient({
3687
- * credential: new DefaultAzureCredential(),
3688
- * });
3689
- * ```
3690
- */
3691
- declare class WebIQClient {
3692
- /** Web search resource */
3693
- readonly web: WebResource;
3694
- /** News search resource */
3695
- readonly news: NewsResource;
3696
- /** Videos search resource */
3697
- readonly videos: VideosResource;
3698
- /** Images search resource */
3699
- readonly images: ImagesResource;
3700
- /** Browse resource */
3701
- readonly browse: BrowseResource;
3702
- /** Classic search resource */
3703
- readonly classic: ClassicResource;
3704
- private readonly _transport;
3705
- private readonly _auth;
3706
- constructor(options: WebIQClientOptions);
3707
- /**
3708
- * Close the client and release resources.
3709
- */
3710
- close(): Promise<void>;
3711
- }
3712
- /**
3713
- * Create a Web IQ client using the provided options.
3714
- *
3715
- * This is an alternative to using `new WebIQClient(options)`.
3716
- */
3717
- declare function createClient(options: WebIQClientOptions): WebIQClient;
996
+ close(): Promise<void>;
997
+ }
998
+ /**
999
+ * Create a Web IQ client using the provided options.
1000
+ *
1001
+ * This is an alternative to using `new WebIQClient(options)`.
1002
+ */
1003
+ declare function createClient(options: WebIQClientOptions): WebIQClient;
3718
1004
 
3719
1005
  /**
3720
1006
  * Web IQ SDK error classes.
@@ -3897,47 +1183,6 @@ type NewsRequest = {
3897
1183
  maxLength?: number | null;
3898
1184
  };
3899
1185
 
3900
- type SearchClassicRequest = {
3901
- /**
3902
- * A search query string
3903
- */
3904
- query: string;
3905
- /**
3906
- * Max Number of Answer Types to return. Default is 6 and maximum value is 6
3907
- */
3908
- maxAnswerTypes?: number;
3909
- /**
3910
- * A language code for interface language in the search results. Supports ISO 639-1 (2-letter), ISO 639-2 (3-letter), and BCP 47 formats. Default: 'en'.
3911
- */
3912
- language?: string | null;
3913
- /**
3914
- * A 2-letter country/region code for where the results should come from (e.g. 'US', 'JP', 'CN'). Default is 'US'.
3915
- */
3916
- region?: string | null;
3917
- /**
3918
- * Location information in format 'lat:<float>;long:<float>'. If not specified, will use the location information given in query.
3919
- */
3920
- location?: string | null;
3921
- /**
3922
- * Max number of webResults item to return
3923
- */
3924
- maxResultsWeb?: number;
3925
- /**
3926
- * The maximum number of characters in the content field in response for webResults and newsResults. Default value is 10000 characters, and maximum value is 500000 characters.
3927
- */
3928
- maxLength?: number;
3929
- contentFormat?: ContentFormat;
3930
- /**
3931
- * The time range to filter results based on discovery date. Supports 'day', 'week', 'month', 'year' for relative time, or ISO 8601 date interval format: 'YYYY-MM-DD/YYYY-MM-DD' or 'YYYY-MM-DDTHH:mm:ssZ/YYYY-MM-DDTHH:mm:ssZ' for a date/datetime range, use .. to omit start or end date.
3932
- */
3933
- freshness?: string | null;
3934
- /**
3935
- * Specifies the list of answer types eligible for inclusion in the response. The API may return a subset of this list. If there is a mismatch between maxAnswerTypes and the number of provided answer types, the smaller value takes precedence.
3936
- */
3937
- responseFilter?: Array<string> | null;
3938
- safeSearch?: SafeSearch;
3939
- };
3940
-
3941
1186
  type VideosRequest = {
3942
1187
  /**
3943
1188
  * A search query string
@@ -4043,4 +1288,4 @@ declare class HttpTransport implements Transport {
4043
1288
  close(): Promise<void>;
4044
1289
  }
4045
1290
 
4046
- export { APIConnectionError, APIStatusError, type AggregateHolding, type AnalysisModelV2, type AnalystRecommendation, type ApiErrorResponse, ApiKeyAuth, type AppResultItem, type AppResultThumbnail, type AssetValues, type AuthProvider, AuthenticationError, type BalanceSheet, type BalanceSheetEquity, type BingPolymarketData, type BingPolymarketEvent, type BingPolymarketMarket, BrowseContentFormat, type BrowseFetchOptions, type BrowseParams, type BrowseRequest, BrowseResource, type BrowseResponse, type CashFlow, ClassicResource, type ClassicSearchOptions, type ClassicSearchParams, type CompanyAddress, type CompanyExecutive, type CompanyMetrics, type CompanyModelV2, type ComputationItem, ContentFormat, ContentTier, type CricketGame, CricketGameFormat, type CricketInning, CricketInningType, type CricketParticipant, type CricketPlayerStats, type CurrentAssets, type CurrentLiabilities, DEFAULT_SCOPE, DEFAULT_TIMEOUT, type DictionaryWordsItem, type DirectionItem, type ETFStructureModelV2, type EarningActualAnnual, type EarningActualQuarterly, type EarningForecastAnnual, type EarningForecastQuarterly, type EarningsCallModelV2, type EarningsForecastModelV2, type EarningsHistoryModelV2, EntraIDAuth, type EventItem, type EventPerformer, type EventPriceRange, type EventTicketProvider, type EventVenue, type Expense, type FetchFunction, type FinanceCardBase, FinanceChartType_V1, type FinanceChart_V1, type FinanceCryptoChartCard_V1, type FinanceCrypto_V1, type FinanceCurrencyPairChartCardV2, type FinanceCurrencyPairV2, type FinanceETFChartCardV5, type FinanceETFV4, type FinanceEarnings_V1, type FinanceFundChartCardV4, type FinanceFundV3, type FinanceIndexChartCardV4, type FinanceIndexV4, type FinanceIndicatorCard_V1, type FinanceInstrument_V1, type FinanceIntradayPricing_V2, type FinanceInvestorCard_V1, type FinanceResultItem, type FinanceStockChartCardV5, type FinanceStockV4, type FinanceTimeSeriesDataPoint_V1, type FinancialStatement, type FinancialsModelV2, type Financing, type FundHoldingEntityModelV2, type FundHoldingsModelV2, type FundModelV2, type FundRating, type FundRatingDataPoint, type GameBase, GameOutcome, type GameStatistics, GameStatus, type Goal, type HealthItem, type HealthSourceInfo, type HoldingQuarter, HomeAwayStatusType, HttpTransport, type HttpTransportOptions, ImageAspectRatio, ImageColor, type ImageItem, type ImageSearchOptions, ImageSize, type ImagesRequest, ImagesResource, type ImagesResponse, type ImagesSearchParams, type Income, type IncomeStatement, type Indicator, type IndustryMetrics, type IndustryRecommendation, type InstitutionalOwnershipModelV2, type Investing, type InvestorAllocations, type InvestorAnnualizedPerformance, type InvestorHoldings, type InvestorInsight, type InvestorPerformance, type InvestorProfile, type JobItem, type JobProvider, type KeyRatios5YearMetricsItem, type KeyRatiosMetricsItem, type KeyRatiosModelV2, type LatestNews, type LeagueSeason, LiveCrawlMode, type MapsBusiness, type MapsItem, type NewsItem, type NewsRequest, NewsResource, type NewsResponse, type NewsSearchOptions, type NewsSearchParams, type NewsThumbnail, type Operating, type OwnershipModelV2, type Participant, type PeriodScore, PermissionDeniedError, type PlaceItem, type PlaceLocation, type PlaceOpenHour, type PlaylistItem, type PlaylistVideo, type PrayerTimesItem, type PriceTargets, type QuerySignals, type Race, type RaceParticipant, RateLimitError, type RealEstateItem, type RecipeIngredient, type RecipeItem, RetryPolicy, type RetryPolicyOptions, type Revenue, SafeSearch, type SearchClassicRequest, type SearchClassicResponse, type SecurityOwnershipsModelV2, type SportsItem, type TeamGame, type TechHelpItem, type TelemetryEvent, type TelemetryHook, type TennisGame, TennisMatchType, type TennisPlayer, TennisRound, type TennisSetScore, type TimeZoneEntry, type TimeZoneItem, type TimelineEvent, type TokenCredential, type Transport, type TransportRequestOptions, type TravelItem, type Venue, type Video, VideoDuration, type VideoItem, type VideoMoment, VideoResolution, type VideoSearchOptions, type VideosRequest, VideosResource, type VideosResponse, type VideosSearchParams, type WeatherItem, WebIQClient, type WebIQClientOptions, WebIQError, type WebRequest, WebResource, type WebResponse, type WebResult, type WebSearchOptions, type WebSearchParams, createAuth, createClient, createTelemetryEvent, safeCall };
1291
+ export { APIConnectionError, APIStatusError, type ApiErrorResponse, ApiKeyAuth, type AuthProvider, AuthenticationError, BrowseContentFormat, type BrowseFetchOptions, type BrowseParams, type BrowseRequest, BrowseResource, type BrowseResponse, ContentFormat, ContentTier, DEFAULT_SCOPE, DEFAULT_TIMEOUT, EntraIDAuth, type FetchFunction, HttpTransport, type HttpTransportOptions, ImageAspectRatio, ImageColor, type ImageItem, type ImageSearchOptions, ImageSize, type ImagesRequest, ImagesResource, type ImagesResponse, type ImagesSearchParams, LiveCrawlMode, type NewsItem, type NewsRequest, NewsResource, type NewsResponse, type NewsSearchOptions, type NewsSearchParams, type NewsThumbnail, PermissionDeniedError, type PlaylistItem, type PlaylistVideo, RateLimitError, RetryPolicy, type RetryPolicyOptions, SafeSearch, SourceQuality, type TelemetryEvent, type TelemetryHook, type TokenCredential, type Transport, type TransportRequestOptions, VideoDuration, type VideoItem, type VideoMoment, VideoResolution, type VideoSearchOptions, type VideosRequest, VideosResource, type VideosResponse, type VideosSearchParams, WebIQClient, type WebIQClientOptions, WebIQError, type WebQuerySignals, type WebRequest, WebResource, type WebResponse, type WebResult, type WebSearchOptions, type WebSearchParams, createAuth, createClient, createTelemetryEvent, safeCall };