algoliasearch 5.27.0 → 5.28.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -8,11 +8,11 @@ type Range = {
8
8
  /**
9
9
  * Lower boundary of a range in meters. The Geo ranking criterion considers all records within the range to be equal.
10
10
  */
11
- from?: number;
11
+ from?: number | undefined;
12
12
  /**
13
13
  * Upper boundary of a range in meters. The Geo ranking criterion considers all records within the range to be equal.
14
14
  */
15
- value?: number;
15
+ value?: number | undefined;
16
16
  };
17
17
 
18
18
  /**
@@ -61,157 +61,157 @@ type BaseRecommendSearchParams = {
61
61
  /**
62
62
  * Keywords to be used instead of the search query to conduct a more broader search. Using the `similarQuery` parameter changes other settings: - `queryType` is set to `prefixNone`. - `removeStopWords` is set to true. - `words` is set as the first ranking criterion. - All remaining words are treated as `optionalWords`. Since the `similarQuery` is supposed to do a broad search, they usually return many results. Combine it with `filters` to narrow down the list of results.
63
63
  */
64
- similarQuery?: string;
64
+ similarQuery?: string | undefined;
65
65
  /**
66
66
  * Filter expression to only include items that match the filter criteria in the response. You can use these filter expressions: - **Numeric filters.** `<facet> <op> <number>`, where `<op>` is one of `<`, `<=`, `=`, `!=`, `>`, `>=`. - **Ranges.** `<facet>:<lower> TO <upper>` where `<lower>` and `<upper>` are the lower and upper limits of the range (inclusive). - **Facet filters.** `<facet>:<value>` where `<facet>` is a facet attribute (case-sensitive) and `<value>` a facet value. - **Tag filters.** `_tags:<value>` or just `<value>` (case-sensitive). - **Boolean filters.** `<facet>: true | false`. You can combine filters with `AND`, `OR`, and `NOT` operators with the following restrictions: - You can only combine filters of the same type with `OR`. **Not supported:** `facet:value OR num > 3`. - You can\'t use `NOT` with combinations of filters. **Not supported:** `NOT(facet:value OR facet:value)` - You can\'t combine conjunctions (`AND`) with `OR`. **Not supported:** `facet:value OR (facet:value AND facet:value)` Use quotes around your filters, if the facet attribute name or facet value has spaces, keywords (`OR`, `AND`, `NOT`), or quotes. If a facet attribute is an array, the filter matches if it matches at least one element of the array. For more information, see [Filters](https://www.algolia.com/doc/guides/managing-results/refine-results/filtering/).
67
67
  */
68
- filters?: string;
69
- facetFilters?: FacetFilters;
70
- optionalFilters?: OptionalFilters;
71
- numericFilters?: NumericFilters;
72
- tagFilters?: TagFilters;
68
+ filters?: string | undefined;
69
+ facetFilters?: FacetFilters | undefined;
70
+ optionalFilters?: OptionalFilters | undefined;
71
+ numericFilters?: NumericFilters | undefined;
72
+ tagFilters?: TagFilters | undefined;
73
73
  /**
74
74
  * Whether to sum all filter scores. If true, all filter scores are summed. Otherwise, the maximum filter score is kept. For more information, see [filter scores](https://www.algolia.com/doc/guides/managing-results/refine-results/filtering/in-depth/filter-scoring/#accumulating-scores-with-sumorfiltersscores).
75
75
  */
76
- sumOrFiltersScores?: boolean;
76
+ sumOrFiltersScores?: boolean | undefined;
77
77
  /**
78
78
  * Restricts a search to a subset of your searchable attributes. Attribute names are case-sensitive.
79
79
  */
80
- restrictSearchableAttributes?: Array<string>;
80
+ restrictSearchableAttributes?: Array<string> | undefined;
81
81
  /**
82
82
  * Facets for which to retrieve facet values that match the search criteria and the number of matching facet values. To retrieve all facets, use the wildcard character `*`. For more information, see [facets](https://www.algolia.com/doc/guides/managing-results/refine-results/faceting/#contextual-facet-values-and-counts).
83
83
  */
84
- facets?: Array<string>;
84
+ facets?: Array<string> | undefined;
85
85
  /**
86
86
  * Whether faceting should be applied after deduplication with `distinct`. This leads to accurate facet counts when using faceting in combination with `distinct`. It\'s usually better to use `afterDistinct` modifiers in the `attributesForFaceting` setting, as `facetingAfterDistinct` only computes correct facet counts if all records have the same facet values for the `attributeForDistinct`.
87
87
  */
88
- facetingAfterDistinct?: boolean;
88
+ facetingAfterDistinct?: boolean | undefined;
89
89
  /**
90
90
  * Coordinates for the center of a circle, expressed as a comma-separated string of latitude and longitude. Only records included within a circle around this central location are included in the results. The radius of the circle is determined by the `aroundRadius` and `minimumAroundRadius` settings. This parameter is ignored if you also specify `insidePolygon` or `insideBoundingBox`.
91
91
  */
92
- aroundLatLng?: string;
92
+ aroundLatLng?: string | undefined;
93
93
  /**
94
94
  * Whether to obtain the coordinates from the request\'s IP address.
95
95
  */
96
- aroundLatLngViaIP?: boolean;
97
- aroundRadius?: AroundRadius;
98
- aroundPrecision?: AroundPrecision;
96
+ aroundLatLngViaIP?: boolean | undefined;
97
+ aroundRadius?: AroundRadius | undefined;
98
+ aroundPrecision?: AroundPrecision | undefined;
99
99
  /**
100
100
  * Minimum radius (in meters) for a search around a location when `aroundRadius` isn\'t set.
101
101
  */
102
- minimumAroundRadius?: number;
103
- insideBoundingBox?: InsideBoundingBox | null;
102
+ minimumAroundRadius?: number | undefined;
103
+ insideBoundingBox?: InsideBoundingBox | null | undefined;
104
104
  /**
105
105
  * Coordinates of a polygon in which to search. Polygons are defined by 3 to 10,000 points. Each point is represented by its latitude and longitude. Provide multiple polygons as nested arrays. For more information, see [filtering inside polygons](https://www.algolia.com/doc/guides/managing-results/refine-results/geolocation/#filtering-inside-rectangular-or-polygonal-areas). This parameter is ignored if you also specify `insideBoundingBox`.
106
106
  */
107
- insidePolygon?: Array<Array<number>>;
107
+ insidePolygon?: Array<Array<number>> | undefined;
108
108
  /**
109
109
  * ISO language codes that adjust settings that are useful for processing natural language queries (as opposed to keyword searches): - Sets `removeStopWords` and `ignorePlurals` to the list of provided languages. - Sets `removeWordsIfNoResults` to `allOptional`. - Adds a `natural_language` attribute to `ruleContexts` and `analyticsTags`.
110
110
  */
111
- naturalLanguages?: Array<SupportedLanguage>;
111
+ naturalLanguages?: Array<SupportedLanguage> | undefined;
112
112
  /**
113
113
  * Assigns a rule context to the search query. [Rule contexts](https://www.algolia.com/doc/guides/managing-results/rules/rules-overview/how-to/customize-search-results-by-platform/#whats-a-context) are strings that you can use to trigger matching rules.
114
114
  */
115
- ruleContexts?: Array<string>;
115
+ ruleContexts?: Array<string> | undefined;
116
116
  /**
117
117
  * Impact that Personalization should have on this search. The higher this value is, the more Personalization determines the ranking compared to other factors. For more information, see [Understanding Personalization impact](https://www.algolia.com/doc/guides/personalization/personalizing-results/in-depth/configuring-personalization/#understanding-personalization-impact).
118
118
  */
119
- personalizationImpact?: number;
119
+ personalizationImpact?: number | undefined;
120
120
  /**
121
121
  * Unique pseudonymous or anonymous user identifier. This helps with analytics and click and conversion events. For more information, see [user token](https://www.algolia.com/doc/guides/sending-events/concepts/usertoken/).
122
122
  */
123
- userToken?: string;
123
+ userToken?: string | undefined;
124
124
  /**
125
125
  * Whether the search response should include detailed ranking information.
126
126
  */
127
- getRankingInfo?: boolean;
127
+ getRankingInfo?: boolean | undefined;
128
128
  /**
129
129
  * Whether to take into account an index\'s synonyms for this search.
130
130
  */
131
- synonyms?: boolean;
131
+ synonyms?: boolean | undefined;
132
132
  /**
133
133
  * Whether to include a `queryID` attribute in the response. The query ID is a unique identifier for a search query and is required for tracking [click and conversion events](https://www.algolia.com/guides/sending-events/getting-started/).
134
134
  */
135
- clickAnalytics?: boolean;
135
+ clickAnalytics?: boolean | undefined;
136
136
  /**
137
137
  * Whether this search will be included in Analytics.
138
138
  */
139
- analytics?: boolean;
139
+ analytics?: boolean | undefined;
140
140
  /**
141
141
  * Tags to apply to the query for [segmenting analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments/).
142
142
  */
143
- analyticsTags?: Array<string>;
143
+ analyticsTags?: Array<string> | undefined;
144
144
  /**
145
145
  * Whether to include this search when calculating processing-time percentiles.
146
146
  */
147
- percentileComputation?: boolean;
147
+ percentileComputation?: boolean | undefined;
148
148
  /**
149
149
  * Whether to enable A/B testing for this search.
150
150
  */
151
- enableABTest?: boolean;
151
+ enableABTest?: boolean | undefined;
152
152
  };
153
153
 
154
154
  type BaseIndexSettings = {
155
155
  /**
156
156
  * Attributes used for [faceting](https://www.algolia.com/doc/guides/managing-results/refine-results/faceting/). Facets are attributes that let you categorize search results. They can be used for filtering search results. By default, no attribute is used for faceting. Attribute names are case-sensitive. **Modifiers** - `filterOnly(\"ATTRIBUTE\")`. Allows the attribute to be used as a filter but doesn\'t evaluate the facet values. - `searchable(\"ATTRIBUTE\")`. Allows searching for facet values. - `afterDistinct(\"ATTRIBUTE\")`. Evaluates the facet count _after_ deduplication with `distinct`. This ensures accurate facet counts. You can apply this modifier to searchable facets: `afterDistinct(searchable(ATTRIBUTE))`.
157
157
  */
158
- attributesForFaceting?: Array<string>;
158
+ attributesForFaceting?: Array<string> | undefined;
159
159
  /**
160
160
  * Creates [replica indices](https://www.algolia.com/doc/guides/managing-results/refine-results/sorting/in-depth/replicas/). Replicas are copies of a primary index with the same records but different settings, synonyms, or rules. If you want to offer a different ranking or sorting of your search results, you\'ll use replica indices. All index operations on a primary index are automatically forwarded to its replicas. To add a replica index, you must provide the complete set of replicas to this parameter. If you omit a replica from this list, the replica turns into a regular, standalone index that will no longer be synced with the primary index. **Modifier** - `virtual(\"REPLICA\")`. Create a virtual replica, Virtual replicas don\'t increase the number of records and are optimized for [Relevant sorting](https://www.algolia.com/doc/guides/managing-results/refine-results/sorting/in-depth/relevant-sort/).
161
161
  */
162
- replicas?: Array<string>;
162
+ replicas?: Array<string> | undefined;
163
163
  /**
164
164
  * Maximum number of search results that can be obtained through pagination. Higher pagination limits might slow down your search. For pagination limits above 1,000, the sorting of results beyond the 1,000th hit can\'t be guaranteed.
165
165
  */
166
- paginationLimitedTo?: number;
166
+ paginationLimitedTo?: number | undefined;
167
167
  /**
168
168
  * Attributes that can\'t be retrieved at query time. This can be useful if you want to use an attribute for ranking or to [restrict access](https://www.algolia.com/doc/guides/security/api-keys/how-to/user-restricted-access-to-data/), but don\'t want to include it in the search results. Attribute names are case-sensitive.
169
169
  */
170
- unretrievableAttributes?: Array<string>;
170
+ unretrievableAttributes?: Array<string> | undefined;
171
171
  /**
172
172
  * Creates a list of [words which require exact matches](https://www.algolia.com/doc/guides/managing-results/optimize-search-results/typo-tolerance/in-depth/configuring-typo-tolerance/#turn-off-typo-tolerance-for-certain-words). This also turns off [word splitting and concatenation](https://www.algolia.com/doc/guides/managing-results/optimize-search-results/handling-natural-languages-nlp/in-depth/splitting-and-concatenation/) for the specified words.
173
173
  */
174
- disableTypoToleranceOnWords?: Array<string>;
174
+ disableTypoToleranceOnWords?: Array<string> | undefined;
175
175
  /**
176
176
  * Attributes, for which you want to support [Japanese transliteration](https://www.algolia.com/doc/guides/managing-results/optimize-search-results/handling-natural-languages-nlp/in-depth/language-specific-configurations/#japanese-transliteration-and-type-ahead). Transliteration supports searching in any of the Japanese writing systems. To support transliteration, you must set the indexing language to Japanese. Attribute names are case-sensitive.
177
177
  */
178
- attributesToTransliterate?: Array<string>;
178
+ attributesToTransliterate?: Array<string> | undefined;
179
179
  /**
180
180
  * Attributes for which to split [camel case](https://wikipedia.org/wiki/Camel_case) words. Attribute names are case-sensitive.
181
181
  */
182
- camelCaseAttributes?: Array<string>;
182
+ camelCaseAttributes?: Array<string> | undefined;
183
183
  /**
184
184
  * Searchable attributes to which Algolia should apply [word segmentation](https://www.algolia.com/doc/guides/managing-results/optimize-search-results/handling-natural-languages-nlp/how-to/customize-segmentation/) (decompounding). Attribute names are case-sensitive. Compound words are formed by combining two or more individual words, and are particularly prevalent in Germanic languages—for example, \"firefighter\". With decompounding, the individual components are indexed separately. You can specify different lists for different languages. Decompounding is supported for these languages: Dutch (`nl`), German (`de`), Finnish (`fi`), Danish (`da`), Swedish (`sv`), and Norwegian (`no`). Decompounding doesn\'t work for words with [non-spacing mark Unicode characters](https://www.charactercodes.net/category/non-spacing_mark). For example, `Gartenstühle` won\'t be decompounded if the `ü` consists of `u` (U+0075) and `◌̈` (U+0308).
185
185
  */
186
- decompoundedAttributes?: Record<string, unknown>;
186
+ decompoundedAttributes?: Record<string, unknown> | undefined;
187
187
  /**
188
188
  * Languages for language-specific processing steps, such as word detection and dictionary settings. **You should always specify an indexing language.** If you don\'t specify an indexing language, the search engine uses all [supported languages](https://www.algolia.com/doc/guides/managing-results/optimize-search-results/handling-natural-languages-nlp/in-depth/supported-languages/), or the languages you specified with the `ignorePlurals` or `removeStopWords` parameters. This can lead to unexpected search results. For more information, see [Language-specific configuration](https://www.algolia.com/doc/guides/managing-results/optimize-search-results/handling-natural-languages-nlp/in-depth/language-specific-configurations/).
189
189
  */
190
- indexLanguages?: Array<SupportedLanguage>;
190
+ indexLanguages?: Array<SupportedLanguage> | undefined;
191
191
  /**
192
192
  * Searchable attributes for which you want to turn off [prefix matching](https://www.algolia.com/doc/guides/managing-results/optimize-search-results/override-search-engine-defaults/#adjusting-prefix-search). Attribute names are case-sensitive.
193
193
  */
194
- disablePrefixOnAttributes?: Array<string>;
194
+ disablePrefixOnAttributes?: Array<string> | undefined;
195
195
  /**
196
196
  * Whether arrays with exclusively non-negative integers should be compressed for better performance. If true, the compressed arrays may be reordered.
197
197
  */
198
- allowCompressionOfIntegerArray?: boolean;
198
+ allowCompressionOfIntegerArray?: boolean | undefined;
199
199
  /**
200
200
  * Numeric attributes that can be used as [numerical filters](https://www.algolia.com/doc/guides/managing-results/rules/detecting-intent/how-to/applying-a-custom-filter-for-a-specific-query/#numerical-filters). Attribute names are case-sensitive. By default, all numeric attributes are available as numerical filters. For faster indexing, reduce the number of numeric attributes. To turn off filtering for all numeric attributes, specify an attribute that doesn\'t exist in your index, such as `NO_NUMERIC_FILTERING`. **Modifier** - `equalOnly(\"ATTRIBUTE\")`. Support only filtering based on equality comparisons `=` and `!=`.
201
201
  */
202
- numericAttributesForFiltering?: Array<string>;
202
+ numericAttributesForFiltering?: Array<string> | undefined;
203
203
  /**
204
204
  * Control which non-alphanumeric characters are indexed. By default, Algolia ignores [non-alphanumeric characters](https://www.algolia.com/doc/guides/managing-results/optimize-search-results/typo-tolerance/how-to/how-to-search-in-hyphenated-attributes/#handling-non-alphanumeric-characters) like hyphen (`-`), plus (`+`), and parentheses (`(`,`)`). To include such characters, define them with `separatorsToIndex`. Separators are all non-letter characters except spaces and currency characters, such as $€£¥. With `separatorsToIndex`, Algolia treats separator characters as separate words. For example, in a search for \"Disney+\", Algolia considers \"Disney\" and \"+\" as two separate words.
205
205
  */
206
- separatorsToIndex?: string;
206
+ separatorsToIndex?: string | undefined;
207
207
  /**
208
208
  * Attributes used for searching. Attribute names are case-sensitive. By default, all attributes are searchable and the [Attribute](https://www.algolia.com/doc/guides/managing-results/relevance-overview/in-depth/ranking-criteria/#attribute) ranking criterion is turned off. With a non-empty list, Algolia only returns results with matches in the selected attributes. In addition, the Attribute ranking criterion is turned on: matches in attributes that are higher in the list of `searchableAttributes` rank first. To make matches in two attributes rank equally, include them in a comma-separated string, such as `\"title,alternate_title\"`. Attributes with the same priority are always unordered. For more information, see [Searchable attributes](https://www.algolia.com/doc/guides/sending-and-managing-data/prepare-your-data/how-to/setting-searchable-attributes/). **Modifier** - `unordered(\"ATTRIBUTE\")`. Ignore the position of a match within the attribute. Without a modifier, matches at the beginning of an attribute rank higher than matches at the end.
209
209
  */
210
- searchableAttributes?: Array<string>;
210
+ searchableAttributes?: Array<string> | undefined;
211
211
  /**
212
212
  * An object with custom data. You can store up to 32kB as custom data.
213
213
  */
214
- userData?: any | null;
214
+ userData?: any | null | undefined;
215
215
  /**
216
216
  * Characters and their normalized replacements. This overrides Algolia\'s default [normalization](https://www.algolia.com/doc/guides/managing-results/optimize-search-results/handling-natural-languages-nlp/in-depth/normalization/).
217
217
  */
@@ -219,23 +219,23 @@ type BaseIndexSettings = {
219
219
  [key: string]: {
220
220
  [key: string]: string;
221
221
  };
222
- };
222
+ } | undefined;
223
223
  /**
224
224
  * Attribute that should be used to establish groups of results. Attribute names are case-sensitive. All records with the same value for this attribute are considered a group. You can combine `attributeForDistinct` with the `distinct` search parameter to control how many items per group are included in the search results. If you want to use the same attribute also for faceting, use the `afterDistinct` modifier of the `attributesForFaceting` setting. This applies faceting _after_ deduplication, which will result in accurate facet counts.
225
225
  */
226
- attributeForDistinct?: string;
226
+ attributeForDistinct?: string | undefined;
227
227
  /**
228
228
  * Maximum number of facet values to return when [searching for facet values](https://www.algolia.com/doc/guides/managing-results/refine-results/faceting/#search-for-facet-values).
229
229
  */
230
- maxFacetHits?: number;
230
+ maxFacetHits?: number | undefined;
231
231
  /**
232
232
  * Characters for which diacritics should be preserved. By default, Algolia removes diacritics from letters. For example, `é` becomes `e`. If this causes issues in your search, you can specify characters that should keep their diacritics.
233
233
  */
234
- keepDiacriticsOnCharacters?: string;
234
+ keepDiacriticsOnCharacters?: string | undefined;
235
235
  /**
236
236
  * Attributes to use as [custom ranking](https://www.algolia.com/doc/guides/managing-results/must-do/custom-ranking/). Attribute names are case-sensitive. The custom ranking attributes decide which items are shown first if the other ranking criteria are equal. Records with missing values for your selected custom ranking attributes are always sorted last. Boolean attributes are sorted based on their alphabetical order. **Modifiers** - `asc(\"ATTRIBUTE\")`. Sort the index by the values of an attribute, in ascending order. - `desc(\"ATTRIBUTE\")`. Sort the index by the values of an attribute, in descending order. If you use two or more custom ranking attributes, [reduce the precision](https://www.algolia.com/doc/guides/managing-results/must-do/custom-ranking/how-to/controlling-custom-ranking-metrics-precision/) of your first attributes, or the other attributes will never be applied.
237
237
  */
238
- customRanking?: Array<string>;
238
+ customRanking?: Array<string> | undefined;
239
239
  };
240
240
 
241
241
  type AdvancedSyntaxFeatures = 'exactPhrase' | 'excludeWords';
@@ -291,7 +291,7 @@ type IndexSettingsFacets = {
291
291
  /**
292
292
  * Explicit order of facets or facet values. This setting lets you always show specific facets or facet values at the top of the list.
293
293
  */
294
- order?: Array<string>;
294
+ order?: Array<string> | undefined;
295
295
  };
296
296
 
297
297
  /**
@@ -303,62 +303,62 @@ type Value = {
303
303
  /**
304
304
  * Explicit order of facets or facet values. This setting lets you always show specific facets or facet values at the top of the list.
305
305
  */
306
- order?: Array<string>;
307
- sortRemainingBy?: SortRemainingBy;
306
+ order?: Array<string> | undefined;
307
+ sortRemainingBy?: SortRemainingBy | undefined;
308
308
  /**
309
309
  * Hide facet values.
310
310
  */
311
- hide?: Array<string>;
311
+ hide?: Array<string> | undefined;
312
312
  };
313
313
 
314
314
  /**
315
315
  * Order of facet names and facet values in your UI.
316
316
  */
317
317
  type FacetOrdering = {
318
- facets?: IndexSettingsFacets;
318
+ facets?: IndexSettingsFacets | undefined;
319
319
  /**
320
320
  * Order of facet values. One object for each facet.
321
321
  */
322
322
  values?: {
323
323
  [key: string]: Value;
324
- };
324
+ } | undefined;
325
325
  };
326
326
 
327
327
  /**
328
328
  * The redirect rule container.
329
329
  */
330
330
  type RedirectURL = {
331
- url?: string;
331
+ url?: string | undefined;
332
332
  };
333
333
 
334
334
  /**
335
335
  * URL for an image to show inside a banner.
336
336
  */
337
337
  type BannerImageUrl = {
338
- url?: string;
338
+ url?: string | undefined;
339
339
  };
340
340
 
341
341
  /**
342
342
  * Image to show inside a banner.
343
343
  */
344
344
  type BannerImage = {
345
- urls?: Array<BannerImageUrl>;
346
- title?: string;
345
+ urls?: Array<BannerImageUrl> | undefined;
346
+ title?: string | undefined;
347
347
  };
348
348
 
349
349
  /**
350
350
  * Link for a banner defined in the Merchandising Studio.
351
351
  */
352
352
  type BannerLink = {
353
- url?: string;
353
+ url?: string | undefined;
354
354
  };
355
355
 
356
356
  /**
357
357
  * Banner with image and link to redirect users.
358
358
  */
359
359
  type Banner = {
360
- image?: BannerImage;
361
- link?: BannerLink;
360
+ image?: BannerImage | undefined;
361
+ link?: BannerLink | undefined;
362
362
  };
363
363
 
364
364
  /**
@@ -368,16 +368,16 @@ type Widgets = {
368
368
  /**
369
369
  * Banners defined in the Merchandising Studio for a given search.
370
370
  */
371
- banners?: Array<Banner>;
371
+ banners?: Array<Banner> | undefined;
372
372
  };
373
373
 
374
374
  /**
375
375
  * Extra data that can be used in the search UI. You can use this to control aspects of your search UI, such as the order of facet names and values without changing your frontend code.
376
376
  */
377
377
  type RenderingContent = {
378
- facetOrdering?: FacetOrdering;
379
- redirect?: RedirectURL;
380
- widgets?: Widgets;
378
+ facetOrdering?: FacetOrdering | undefined;
379
+ redirect?: RedirectURL | undefined;
380
+ widgets?: Widgets | undefined;
381
381
  };
382
382
 
383
383
  /**
@@ -394,125 +394,125 @@ type BaseRecommendIndexSettings = {
394
394
  /**
395
395
  * Attributes to include in the API response. To reduce the size of your response, you can retrieve only some of the attributes. Attribute names are case-sensitive. - `*` retrieves all attributes, except attributes included in the `customRanking` and `unretrievableAttributes` settings. - To retrieve all attributes except a specific one, prefix the attribute with a dash and combine it with the `*`: `[\"*\", \"-ATTRIBUTE\"]`. - The `objectID` attribute is always included.
396
396
  */
397
- attributesToRetrieve?: Array<string>;
397
+ attributesToRetrieve?: Array<string> | undefined;
398
398
  /**
399
399
  * Determines the order in which Algolia returns your results. By default, each entry corresponds to a [ranking criteria](https://www.algolia.com/doc/guides/managing-results/relevance-overview/in-depth/ranking-criteria/). The tie-breaking algorithm sequentially applies each criterion in the order they\'re specified. If you configure a replica index for [sorting by an attribute](https://www.algolia.com/doc/guides/managing-results/refine-results/sorting/how-to/sort-by-attribute/), you put the sorting attribute at the top of the list. **Modifiers** - `asc(\"ATTRIBUTE\")`. Sort the index by the values of an attribute, in ascending order. - `desc(\"ATTRIBUTE\")`. Sort the index by the values of an attribute, in descending order. Before you modify the default setting, you should test your changes in the dashboard, and by [A/B testing](https://www.algolia.com/doc/guides/ab-testing/what-is-ab-testing/).
400
400
  */
401
- ranking?: Array<string>;
401
+ ranking?: Array<string> | undefined;
402
402
  /**
403
403
  * Relevancy threshold below which less relevant results aren\'t included in the results. You can only set `relevancyStrictness` on [virtual replica indices](https://www.algolia.com/doc/guides/managing-results/refine-results/sorting/in-depth/replicas/#what-are-virtual-replicas). Use this setting to strike a balance between the relevance and number of returned results.
404
404
  */
405
- relevancyStrictness?: number;
405
+ relevancyStrictness?: number | undefined;
406
406
  /**
407
407
  * Attributes to highlight. By default, all searchable attributes are highlighted. Use `*` to highlight all attributes or use an empty array `[]` to turn off highlighting. Attribute names are case-sensitive. With highlighting, strings that match the search query are surrounded by HTML tags defined by `highlightPreTag` and `highlightPostTag`. You can use this to visually highlight matching parts of a search query in your UI. For more information, see [Highlighting and snippeting](https://www.algolia.com/doc/guides/building-search-ui/ui-and-ux-patterns/highlighting-snippeting/js/).
408
408
  */
409
- attributesToHighlight?: Array<string>;
409
+ attributesToHighlight?: Array<string> | undefined;
410
410
  /**
411
411
  * Attributes for which to enable snippets. Attribute names are case-sensitive. Snippets provide additional context to matched words. If you enable snippets, they include 10 words, including the matched word. The matched word will also be wrapped by HTML tags for highlighting. You can adjust the number of words with the following notation: `ATTRIBUTE:NUMBER`, where `NUMBER` is the number of words to be extracted.
412
412
  */
413
- attributesToSnippet?: Array<string>;
413
+ attributesToSnippet?: Array<string> | undefined;
414
414
  /**
415
415
  * HTML tag to insert before the highlighted parts in all highlighted results and snippets.
416
416
  */
417
- highlightPreTag?: string;
417
+ highlightPreTag?: string | undefined;
418
418
  /**
419
419
  * HTML tag to insert after the highlighted parts in all highlighted results and snippets.
420
420
  */
421
- highlightPostTag?: string;
421
+ highlightPostTag?: string | undefined;
422
422
  /**
423
423
  * String used as an ellipsis indicator when a snippet is truncated.
424
424
  */
425
- snippetEllipsisText?: string;
425
+ snippetEllipsisText?: string | undefined;
426
426
  /**
427
427
  * Whether to restrict highlighting and snippeting to items that at least partially matched the search query. By default, all items are highlighted and snippeted.
428
428
  */
429
- restrictHighlightAndSnippetArrays?: boolean;
429
+ restrictHighlightAndSnippetArrays?: boolean | undefined;
430
430
  /**
431
431
  * Minimum number of characters a word in the search query must contain to accept matches with [one typo](https://www.algolia.com/doc/guides/managing-results/optimize-search-results/typo-tolerance/in-depth/configuring-typo-tolerance/#configuring-word-length-for-typos).
432
432
  */
433
- minWordSizefor1Typo?: number;
433
+ minWordSizefor1Typo?: number | undefined;
434
434
  /**
435
435
  * Minimum number of characters a word in the search query must contain to accept matches with [two typos](https://www.algolia.com/doc/guides/managing-results/optimize-search-results/typo-tolerance/in-depth/configuring-typo-tolerance/#configuring-word-length-for-typos).
436
436
  */
437
- minWordSizefor2Typos?: number;
438
- typoTolerance?: TypoTolerance;
437
+ minWordSizefor2Typos?: number | undefined;
438
+ typoTolerance?: TypoTolerance | undefined;
439
439
  /**
440
440
  * Whether to allow typos on numbers in the search query. Turn off this setting to reduce the number of irrelevant matches when searching in large sets of similar numbers.
441
441
  */
442
- allowTyposOnNumericTokens?: boolean;
442
+ allowTyposOnNumericTokens?: boolean | undefined;
443
443
  /**
444
444
  * Attributes for which you want to turn off [typo tolerance](https://www.algolia.com/doc/guides/managing-results/optimize-search-results/typo-tolerance/). Attribute names are case-sensitive. Returning only exact matches can help when: - [Searching in hyphenated attributes](https://www.algolia.com/doc/guides/managing-results/optimize-search-results/typo-tolerance/how-to/how-to-search-in-hyphenated-attributes/). - Reducing the number of matches when you have too many. This can happen with attributes that are long blocks of text, such as product descriptions. Consider alternatives such as `disableTypoToleranceOnWords` or adding synonyms if your attributes have intentional unusual spellings that might look like typos.
445
445
  */
446
- disableTypoToleranceOnAttributes?: Array<string>;
447
- ignorePlurals?: IgnorePlurals;
448
- removeStopWords?: RemoveStopWords;
446
+ disableTypoToleranceOnAttributes?: Array<string> | undefined;
447
+ ignorePlurals?: IgnorePlurals | undefined;
448
+ removeStopWords?: RemoveStopWords | undefined;
449
449
  /**
450
450
  * Languages for language-specific query processing steps such as plurals, stop-word removal, and word-detection dictionaries. This setting sets a default list of languages used by the `removeStopWords` and `ignorePlurals` settings. This setting also sets a dictionary for word detection in the logogram-based [CJK](https://www.algolia.com/doc/guides/managing-results/optimize-search-results/handling-natural-languages-nlp/in-depth/normalization/#normalization-for-logogram-based-languages-cjk) languages. To support this, you must place the CJK language **first**. **You should always specify a query language.** If you don\'t specify an indexing language, the search engine uses all [supported languages](https://www.algolia.com/doc/guides/managing-results/optimize-search-results/handling-natural-languages-nlp/in-depth/supported-languages/), or the languages you specified with the `ignorePlurals` or `removeStopWords` parameters. This can lead to unexpected search results. For more information, see [Language-specific configuration](https://www.algolia.com/doc/guides/managing-results/optimize-search-results/handling-natural-languages-nlp/in-depth/language-specific-configurations/).
451
451
  */
452
- queryLanguages?: Array<SupportedLanguage>;
452
+ queryLanguages?: Array<SupportedLanguage> | undefined;
453
453
  /**
454
454
  * Whether to split compound words in the query into their building blocks. For more information, see [Word segmentation](https://www.algolia.com/doc/guides/managing-results/optimize-search-results/handling-natural-languages-nlp/in-depth/language-specific-configurations/#splitting-compound-words). Word segmentation is supported for these languages: German, Dutch, Finnish, Swedish, and Norwegian. Decompounding doesn\'t work for words with [non-spacing mark Unicode characters](https://www.charactercodes.net/category/non-spacing_mark). For example, `Gartenstühle` won\'t be decompounded if the `ü` consists of `u` (U+0075) and `◌̈` (U+0308).
455
455
  */
456
- decompoundQuery?: boolean;
456
+ decompoundQuery?: boolean | undefined;
457
457
  /**
458
458
  * Whether to enable rules.
459
459
  */
460
- enableRules?: boolean;
460
+ enableRules?: boolean | undefined;
461
461
  /**
462
462
  * Whether to enable Personalization.
463
463
  */
464
- enablePersonalization?: boolean;
465
- queryType?: QueryType;
466
- removeWordsIfNoResults?: RemoveWordsIfNoResults;
464
+ enablePersonalization?: boolean | undefined;
465
+ queryType?: QueryType | undefined;
466
+ removeWordsIfNoResults?: RemoveWordsIfNoResults | undefined;
467
467
  /**
468
468
  * Whether to support phrase matching and excluding words from search queries. Use the `advancedSyntaxFeatures` parameter to control which feature is supported.
469
469
  */
470
- advancedSyntax?: boolean;
471
- optionalWords?: OptionalWords | null;
470
+ advancedSyntax?: boolean | undefined;
471
+ optionalWords?: OptionalWords | null | undefined;
472
472
  /**
473
473
  * Searchable attributes for which you want to [turn off the Exact ranking criterion](https://www.algolia.com/doc/guides/managing-results/optimize-search-results/override-search-engine-defaults/in-depth/adjust-exact-settings/#turn-off-exact-for-some-attributes). Attribute names are case-sensitive. This can be useful for attributes with long values, where the likelihood of an exact match is high, such as product descriptions. Turning off the Exact ranking criterion for these attributes favors exact matching on other attributes. This reduces the impact of individual attributes with a lot of content on ranking.
474
474
  */
475
- disableExactOnAttributes?: Array<string>;
476
- exactOnSingleWordQuery?: ExactOnSingleWordQuery;
475
+ disableExactOnAttributes?: Array<string> | undefined;
476
+ exactOnSingleWordQuery?: ExactOnSingleWordQuery | undefined;
477
477
  /**
478
478
  * Determine which plurals and synonyms should be considered an exact matches. By default, Algolia treats singular and plural forms of a word, and single-word synonyms, as [exact](https://www.algolia.com/doc/guides/managing-results/relevance-overview/in-depth/ranking-criteria/#exact) matches when searching. For example: - \"swimsuit\" and \"swimsuits\" are treated the same - \"swimsuit\" and \"swimwear\" are treated the same (if they are [synonyms](https://www.algolia.com/doc/guides/managing-results/optimize-search-results/adding-synonyms/#regular-synonyms)). - `ignorePlurals`. Plurals and similar declensions added by the `ignorePlurals` setting are considered exact matches. - `singleWordSynonym`. Single-word synonyms, such as \"NY\" = \"NYC\", are considered exact matches. - `multiWordsSynonym`. Multi-word synonyms, such as \"NY\" = \"New York\", are considered exact matches.
479
479
  */
480
- alternativesAsExact?: Array<AlternativesAsExact>;
480
+ alternativesAsExact?: Array<AlternativesAsExact> | undefined;
481
481
  /**
482
482
  * Advanced search syntax features you want to support. - `exactPhrase`. Phrases in quotes must match exactly. For example, `sparkly blue \"iPhone case\"` only returns records with the exact string \"iPhone case\". - `excludeWords`. Query words prefixed with a `-` must not occur in a record. For example, `search -engine` matches records that contain \"search\" but not \"engine\". This setting only has an effect if `advancedSyntax` is true.
483
483
  */
484
- advancedSyntaxFeatures?: Array<AdvancedSyntaxFeatures>;
485
- distinct?: Distinct;
484
+ advancedSyntaxFeatures?: Array<AdvancedSyntaxFeatures> | undefined;
485
+ distinct?: Distinct | undefined;
486
486
  /**
487
487
  * Whether to replace a highlighted word with the matched synonym. By default, the original words are highlighted even if a synonym matches. For example, with `home` as a synonym for `house` and a search for `home`, records matching either \"home\" or \"house\" are included in the search results, and either \"home\" or \"house\" are highlighted. With `replaceSynonymsInHighlight` set to `true`, a search for `home` still matches the same records, but all occurrences of \"house\" are replaced by \"home\" in the highlighted response.
488
488
  */
489
- replaceSynonymsInHighlight?: boolean;
489
+ replaceSynonymsInHighlight?: boolean | undefined;
490
490
  /**
491
491
  * Minimum proximity score for two matching words. This adjusts the [Proximity ranking criterion](https://www.algolia.com/doc/guides/managing-results/relevance-overview/in-depth/ranking-criteria/#proximity) by equally scoring matches that are farther apart. For example, if `minProximity` is 2, neighboring matches and matches with one word between them would have the same score.
492
492
  */
493
- minProximity?: number;
493
+ minProximity?: number | undefined;
494
494
  /**
495
495
  * Properties to include in the API response of search and browse requests. By default, all response properties are included. To reduce the response size, you can select which properties should be included. An empty list may lead to an empty API response (except properties you can\'t exclude). You can\'t exclude these properties: `message`, `warning`, `cursor`, `abTestVariantID`, or any property added by setting `getRankingInfo` to true. Your search depends on the `hits` field. If you omit this field, searches won\'t return any results. Your UI might also depend on other properties, for example, for pagination. Before restricting the response size, check the impact on your search experience.
496
496
  */
497
- responseFields?: Array<string>;
497
+ responseFields?: Array<string> | undefined;
498
498
  /**
499
499
  * Maximum number of facet values to return for each facet.
500
500
  */
501
- maxValuesPerFacet?: number;
501
+ maxValuesPerFacet?: number | undefined;
502
502
  /**
503
503
  * Order in which to retrieve facet values. - `count`. Facet values are retrieved by decreasing count. The count is the number of matching records containing this facet value. - `alpha`. Retrieve facet values alphabetically. This setting doesn\'t influence how facet values are displayed in your UI (see `renderingContent`). For more information, see [facet value display](https://www.algolia.com/doc/guides/building-search-ui/ui-and-ux-patterns/facet-display/js/).
504
504
  */
505
- sortFacetValuesBy?: string;
505
+ sortFacetValuesBy?: string | undefined;
506
506
  /**
507
507
  * Whether the best matching attribute should be determined by minimum proximity. This setting only affects ranking if the Attribute ranking criterion comes before Proximity in the `ranking` setting. If true, the best matching attribute is selected based on the minimum proximity of multiple matches. Otherwise, the best matching attribute is determined by the order in the `searchableAttributes` setting.
508
508
  */
509
- attributeCriteriaComputedByMinProximity?: boolean;
510
- renderingContent?: RenderingContent;
509
+ attributeCriteriaComputedByMinProximity?: boolean | undefined;
510
+ renderingContent?: RenderingContent | undefined;
511
511
  /**
512
512
  * Whether this search will use [Dynamic Re-Ranking](https://www.algolia.com/doc/guides/algolia-ai/re-ranking/). This setting only has an effect if you activated Dynamic Re-Ranking for this index in the Algolia dashboard.
513
513
  */
514
- enableReRanking?: boolean;
515
- reRankingApplyFilter?: ReRankingApplyFilter | null;
514
+ enableReRanking?: boolean | undefined;
515
+ reRankingApplyFilter?: ReRankingApplyFilter | null | undefined;
516
516
  };
517
517
 
518
518
  /**
@@ -524,7 +524,7 @@ type SearchParamsQuery = {
524
524
  /**
525
525
  * Search query.
526
526
  */
527
- query?: string;
527
+ query?: string | undefined;
528
528
  };
529
529
 
530
530
  /**
@@ -544,8 +544,8 @@ type BaseRecommendRequest = {
544
544
  /**
545
545
  * Maximum number of recommendations to retrieve. By default, all recommendations are returned and no fallback request is made. Depending on the available recommendations and the other request parameters, the actual number of recommendations may be lower than this value.
546
546
  */
547
- maxRecommendations?: number;
548
- queryParameters?: RecommendSearchParams;
547
+ maxRecommendations?: number | undefined;
548
+ queryParameters?: RecommendSearchParams | undefined;
549
549
  };
550
550
 
551
551
  /**
@@ -576,7 +576,7 @@ type LookingSimilar = {
576
576
  * Unique record identifier.
577
577
  */
578
578
  objectID: string;
579
- fallbackParameters?: FallbackParams;
579
+ fallbackParameters?: FallbackParams | undefined;
580
580
  };
581
581
 
582
582
  type LookingSimilarQuery = BaseRecommendRequest & LookingSimilar;
@@ -592,7 +592,7 @@ type RelatedProducts = {
592
592
  * Unique record identifier.
593
593
  */
594
594
  objectID: string;
595
- fallbackParameters?: FallbackParams;
595
+ fallbackParameters?: FallbackParams | undefined;
596
596
  };
597
597
 
598
598
  type RelatedQuery = BaseRecommendRequest & RelatedProducts;
@@ -608,7 +608,7 @@ type TrendingFacets = {
608
608
  */
609
609
  facetName: string;
610
610
  model: TrendingFacetsModel;
611
- fallbackParameters?: FallbackParams;
611
+ fallbackParameters?: FallbackParams | undefined;
612
612
  };
613
613
 
614
614
  type TrendingFacetsQuery = BaseRecommendRequest & TrendingFacets;
@@ -622,13 +622,13 @@ type TrendingItems = {
622
622
  /**
623
623
  * Facet attribute. To be used in combination with `facetValue`. If specified, only recommendations matching the facet filter will be returned.
624
624
  */
625
- facetName?: string;
625
+ facetName?: string | undefined;
626
626
  /**
627
627
  * Facet value. To be used in combination with `facetName`. If specified, only recommendations matching the facet filter will be returned.
628
628
  */
629
- facetValue?: string;
629
+ facetValue?: string | undefined;
630
630
  model: TrendingItemsModel;
631
- fallbackParameters?: FallbackParams;
631
+ fallbackParameters?: FallbackParams | undefined;
632
632
  };
633
633
 
634
634
  type TrendingItemsQuery = BaseRecommendRequest & TrendingItems;
@@ -652,42 +652,42 @@ type Exhaustive = {
652
652
  /**
653
653
  * Whether the facet count is exhaustive (`true`) or approximate (`false`). See the [related discussion](https://support.algolia.com/hc/en-us/articles/4406975248145-Why-are-my-facet-and-hit-counts-not-accurate-).
654
654
  */
655
- facetsCount?: boolean;
655
+ facetsCount?: boolean | undefined;
656
656
  /**
657
657
  * The value is `false` if not all facet values are retrieved.
658
658
  */
659
- facetValues?: boolean;
659
+ facetValues?: boolean | undefined;
660
660
  /**
661
661
  * Whether the `nbHits` is exhaustive (`true`) or approximate (`false`). When the query takes more than 50ms to be processed, the engine makes an approximation. This can happen when using complex filters on millions of records, when typo-tolerance was not exhaustive, or when enough hits have been retrieved (for example, after the engine finds 10,000 exact matches). `nbHits` is reported as non-exhaustive whenever an approximation is made, even if the approximation didn’t, in the end, impact the exhaustivity of the query.
662
662
  */
663
- nbHits?: boolean;
663
+ nbHits?: boolean | undefined;
664
664
  /**
665
665
  * Rules matching exhaustivity. The value is `false` if rules were enable for this query, and could not be fully processed due a timeout. This is generally caused by the number of alternatives (such as typos) which is too large.
666
666
  */
667
- rulesMatch?: boolean;
667
+ rulesMatch?: boolean | undefined;
668
668
  /**
669
669
  * Whether the typo search was exhaustive (`true`) or approximate (`false`). An approximation is done when the typo search query part takes more than 10% of the query budget (ie. 5ms by default) to be processed (this can happen when a lot of typo alternatives exist for the query). This field will not be included when typo-tolerance is entirely disabled.
670
670
  */
671
- typo?: boolean;
671
+ typo?: boolean | undefined;
672
672
  };
673
673
 
674
674
  type FacetStats = {
675
675
  /**
676
676
  * Minimum value in the results.
677
677
  */
678
- min?: number;
678
+ min?: number | undefined;
679
679
  /**
680
680
  * Maximum value in the results.
681
681
  */
682
- max?: number;
682
+ max?: number | undefined;
683
683
  /**
684
684
  * Average facet value in the results.
685
685
  */
686
- avg?: number;
686
+ avg?: number | undefined;
687
687
  /**
688
688
  * Sum of all values in the results.
689
689
  */
690
- sum?: number;
690
+ sum?: number | undefined;
691
691
  };
692
692
 
693
693
  /**
@@ -721,43 +721,43 @@ type RedirectRuleIndexMetadata = {
721
721
  * [Redirect results to a URL](https://www.algolia.com/doc/guides/managing-results/rules/merchandising-and-promoting/how-to/redirects/), this this parameter is for internal use only.
722
722
  */
723
723
  type Redirect = {
724
- index?: Array<RedirectRuleIndexMetadata>;
724
+ index?: Array<RedirectRuleIndexMetadata> | undefined;
725
725
  };
726
726
 
727
727
  type BaseSearchResponse = Record<string, any> & {
728
728
  /**
729
729
  * A/B test ID. This is only included in the response for indices that are part of an A/B test.
730
730
  */
731
- abTestID?: number;
731
+ abTestID?: number | undefined;
732
732
  /**
733
733
  * Variant ID. This is only included in the response for indices that are part of an A/B test.
734
734
  */
735
- abTestVariantID?: number;
735
+ abTestVariantID?: number | undefined;
736
736
  /**
737
737
  * Computed geographical location.
738
738
  */
739
- aroundLatLng?: string;
739
+ aroundLatLng?: string | undefined;
740
740
  /**
741
741
  * Distance from a central coordinate provided by `aroundLatLng`.
742
742
  */
743
- automaticRadius?: string;
744
- exhaustive?: Exhaustive;
743
+ automaticRadius?: string | undefined;
744
+ exhaustive?: Exhaustive | undefined;
745
745
  /**
746
746
  * Rules applied to the query.
747
747
  */
748
- appliedRules?: Array<Record<string, unknown>>;
748
+ appliedRules?: Array<Record<string, unknown>> | undefined;
749
749
  /**
750
750
  * See the `facetsCount` field of the `exhaustive` object in the response.
751
751
  */
752
- exhaustiveFacetsCount?: boolean;
752
+ exhaustiveFacetsCount?: boolean | undefined;
753
753
  /**
754
754
  * See the `nbHits` field of the `exhaustive` object in the response.
755
755
  */
756
- exhaustiveNbHits?: boolean;
756
+ exhaustiveNbHits?: boolean | undefined;
757
757
  /**
758
758
  * See the `typo` field of the `exhaustive` object in the response.
759
759
  */
760
- exhaustiveTypo?: boolean;
760
+ exhaustiveTypo?: boolean | undefined;
761
761
  /**
762
762
  * Facet counts.
763
763
  */
@@ -765,67 +765,67 @@ type BaseSearchResponse = Record<string, any> & {
765
765
  [key: string]: {
766
766
  [key: string]: number;
767
767
  };
768
- };
768
+ } | undefined;
769
769
  /**
770
770
  * Statistics for numerical facets.
771
771
  */
772
772
  facets_stats?: {
773
773
  [key: string]: FacetStats;
774
- };
774
+ } | undefined;
775
775
  /**
776
776
  * Index name used for the query.
777
777
  */
778
- index?: string;
778
+ index?: string | undefined;
779
779
  /**
780
780
  * Index name used for the query. During A/B testing, the targeted index isn\'t always the index used by the query.
781
781
  */
782
- indexUsed?: string;
782
+ indexUsed?: string | undefined;
783
783
  /**
784
784
  * Warnings about the query.
785
785
  */
786
- message?: string;
786
+ message?: string | undefined;
787
787
  /**
788
788
  * Number of hits selected and sorted by the relevant sort algorithm.
789
789
  */
790
- nbSortedHits?: number;
790
+ nbSortedHits?: number | undefined;
791
791
  /**
792
792
  * Post-[normalization](https://www.algolia.com/doc/guides/managing-results/optimize-search-results/handling-natural-languages-nlp/#what-does-normalization-mean) query string that will be searched.
793
793
  */
794
- parsedQuery?: string;
794
+ parsedQuery?: string | undefined;
795
795
  /**
796
796
  * Time the server took to process the request, in milliseconds.
797
797
  */
798
- processingTimeMS: number;
798
+ processingTimeMS?: number | undefined;
799
799
  /**
800
800
  * Experimental. List of processing steps and their times, in milliseconds. You can use this list to investigate performance issues.
801
801
  */
802
- processingTimingsMS?: Record<string, unknown>;
802
+ processingTimingsMS?: Record<string, unknown> | undefined;
803
803
  /**
804
804
  * Markup text indicating which parts of the original query have been removed to retrieve a non-empty result set.
805
805
  */
806
- queryAfterRemoval?: string;
807
- redirect?: Redirect;
808
- renderingContent?: RenderingContent;
806
+ queryAfterRemoval?: string | undefined;
807
+ redirect?: Redirect | undefined;
808
+ renderingContent?: RenderingContent | undefined;
809
809
  /**
810
810
  * Time the server took to process the request, in milliseconds.
811
811
  */
812
- serverTimeMS?: number;
812
+ serverTimeMS?: number | undefined;
813
813
  /**
814
814
  * Host name of the server that processed the request.
815
815
  */
816
- serverUsed?: string;
816
+ serverUsed?: string | undefined;
817
817
  /**
818
818
  * An object with custom data. You can store up to 32kB as custom data.
819
819
  */
820
- userData?: any | null;
820
+ userData?: any | null | undefined;
821
821
  /**
822
822
  * Unique identifier for the query. This is used for [click analytics](https://www.algolia.com/doc/guides/analytics/click-analytics/).
823
823
  */
824
- queryID?: string;
824
+ queryID?: string | undefined;
825
825
  /**
826
826
  * Whether automatic events collection is enabled for the application.
827
827
  */
828
- _automaticInsights?: boolean;
828
+ _automaticInsights?: boolean | undefined;
829
829
  };
830
830
 
831
831
  /**
@@ -849,7 +849,7 @@ type HighlightResultOption = {
849
849
  /**
850
850
  * Whether the entire attribute value is highlighted.
851
851
  */
852
- fullyHighlighted?: boolean;
852
+ fullyHighlighted?: boolean | undefined;
853
853
  };
854
854
 
855
855
  type HighlightResult = HighlightResultOption | {
@@ -860,30 +860,30 @@ type MatchedGeoLocation = {
860
860
  /**
861
861
  * Latitude of the matched location.
862
862
  */
863
- lat?: number;
863
+ lat?: number | undefined;
864
864
  /**
865
865
  * Longitude of the matched location.
866
866
  */
867
- lng?: number;
867
+ lng?: number | undefined;
868
868
  /**
869
869
  * Distance between the matched location and the search location (in meters).
870
870
  */
871
- distance?: number;
871
+ distance?: number | undefined;
872
872
  };
873
873
 
874
874
  type Personalization = {
875
875
  /**
876
876
  * The score of the filters.
877
877
  */
878
- filtersScore?: number;
878
+ filtersScore?: number | undefined;
879
879
  /**
880
880
  * The score of the ranking.
881
881
  */
882
- rankingScore?: number;
882
+ rankingScore?: number | undefined;
883
883
  /**
884
884
  * The score of the event.
885
885
  */
886
- score?: number;
886
+ score?: number | undefined;
887
887
  };
888
888
 
889
889
  /**
@@ -893,7 +893,7 @@ type RankingInfo = {
893
893
  /**
894
894
  * Whether a filter matched the query.
895
895
  */
896
- filters?: number;
896
+ filters?: number | undefined;
897
897
  /**
898
898
  * Position of the first matched word in the best matching attribute of the record.
899
899
  */
@@ -905,9 +905,9 @@ type RankingInfo = {
905
905
  /**
906
906
  * Precision used when computing the geo distance, in meters.
907
907
  */
908
- geoPrecision?: number;
909
- matchedGeoLocation?: MatchedGeoLocation;
910
- personalization?: Personalization;
908
+ geoPrecision?: number | undefined;
909
+ matchedGeoLocation?: MatchedGeoLocation | undefined;
910
+ personalization?: Personalization | undefined;
911
911
  /**
912
912
  * Number of exactly matched words.
913
913
  */
@@ -919,11 +919,11 @@ type RankingInfo = {
919
919
  /**
920
920
  * Whether the record was promoted by a rule.
921
921
  */
922
- promoted?: boolean;
922
+ promoted?: boolean | undefined;
923
923
  /**
924
924
  * Number of words between multiple matches in the query plus 1. For single word queries, `proximityDistance` is 0.
925
925
  */
926
- proximityDistance?: number;
926
+ proximityDistance?: number | undefined;
927
927
  /**
928
928
  * Overall ranking of the record, expressed as a single integer. This attribute is internal.
929
929
  */
@@ -931,11 +931,11 @@ type RankingInfo = {
931
931
  /**
932
932
  * Number of matched words.
933
933
  */
934
- words?: number;
934
+ words?: number | undefined;
935
935
  /**
936
936
  * Whether the record is re-ranked.
937
937
  */
938
- promotedByReRanking?: boolean;
938
+ promotedByReRanking?: boolean | undefined;
939
939
  };
940
940
 
941
941
  /**
@@ -966,19 +966,19 @@ type RecommendHit = Record<string, any> & {
966
966
  */
967
967
  _highlightResult?: {
968
968
  [key: string]: HighlightResult;
969
- };
969
+ } | undefined;
970
970
  /**
971
971
  * Snippets that show the context around a matching search query.
972
972
  */
973
973
  _snippetResult?: {
974
974
  [key: string]: SnippetResult;
975
- };
976
- _rankingInfo?: RankingInfo;
977
- _distinctSeqID?: number;
975
+ } | undefined;
976
+ _rankingInfo?: RankingInfo | undefined;
977
+ _distinctSeqID?: number | undefined;
978
978
  /**
979
979
  * Recommendation score.
980
980
  */
981
- _score?: number;
981
+ _score?: number | undefined;
982
982
  };
983
983
 
984
984
  /**
@@ -988,7 +988,7 @@ type TrendingFacetHit = {
988
988
  /**
989
989
  * Recommendation score.
990
990
  */
991
- _score?: number;
991
+ _score?: number | undefined;
992
992
  /**
993
993
  * Facet attribute. To be used in combination with `facetValue`. If specified, only recommendations matching the facet filter will be returned.
994
994
  */
@@ -1009,19 +1009,19 @@ type SearchPagination = {
1009
1009
  /**
1010
1010
  * Page of search results to retrieve.
1011
1011
  */
1012
- page?: number;
1012
+ page?: number | undefined;
1013
1013
  /**
1014
1014
  * Number of results (hits).
1015
1015
  */
1016
- nbHits?: number;
1016
+ nbHits?: number | undefined;
1017
1017
  /**
1018
1018
  * Number of pages of results.
1019
1019
  */
1020
- nbPages?: number;
1020
+ nbPages?: number | undefined;
1021
1021
  /**
1022
1022
  * Number of hits per page.
1023
1023
  */
1024
- hitsPerPage?: number;
1024
+ hitsPerPage?: number | undefined;
1025
1025
  };
1026
1026
 
1027
1027
  type RecommendationsResults = BaseSearchResponse & SearchPagination & RecommendationsHits;
@@ -1047,11 +1047,11 @@ type SearchForFacetsOptions = {
1047
1047
  /**
1048
1048
  * Text to search inside the facet\'s values.
1049
1049
  */
1050
- facetQuery?: string;
1050
+ facetQuery?: string | undefined;
1051
1051
  /**
1052
1052
  * Maximum number of facet values to return when [searching for facet values](https://www.algolia.com/doc/guides/managing-results/refine-results/faceting/#search-for-facet-values).
1053
1053
  */
1054
- maxFacetHits?: number;
1054
+ maxFacetHits?: number | undefined;
1055
1055
  type: SearchTypeFacet;
1056
1056
  };
1057
1057
 
@@ -1059,106 +1059,106 @@ type BaseSearchParamsWithoutQuery = {
1059
1059
  /**
1060
1060
  * Keywords to be used instead of the search query to conduct a more broader search. Using the `similarQuery` parameter changes other settings: - `queryType` is set to `prefixNone`. - `removeStopWords` is set to true. - `words` is set as the first ranking criterion. - All remaining words are treated as `optionalWords`. Since the `similarQuery` is supposed to do a broad search, they usually return many results. Combine it with `filters` to narrow down the list of results.
1061
1061
  */
1062
- similarQuery?: string;
1062
+ similarQuery?: string | undefined;
1063
1063
  /**
1064
1064
  * Filter expression to only include items that match the filter criteria in the response. You can use these filter expressions: - **Numeric filters.** `<facet> <op> <number>`, where `<op>` is one of `<`, `<=`, `=`, `!=`, `>`, `>=`. - **Ranges.** `<facet>:<lower> TO <upper>` where `<lower>` and `<upper>` are the lower and upper limits of the range (inclusive). - **Facet filters.** `<facet>:<value>` where `<facet>` is a facet attribute (case-sensitive) and `<value>` a facet value. - **Tag filters.** `_tags:<value>` or just `<value>` (case-sensitive). - **Boolean filters.** `<facet>: true | false`. You can combine filters with `AND`, `OR`, and `NOT` operators with the following restrictions: - You can only combine filters of the same type with `OR`. **Not supported:** `facet:value OR num > 3`. - You can\'t use `NOT` with combinations of filters. **Not supported:** `NOT(facet:value OR facet:value)` - You can\'t combine conjunctions (`AND`) with `OR`. **Not supported:** `facet:value OR (facet:value AND facet:value)` Use quotes around your filters, if the facet attribute name or facet value has spaces, keywords (`OR`, `AND`, `NOT`), or quotes. If a facet attribute is an array, the filter matches if it matches at least one element of the array. For more information, see [Filters](https://www.algolia.com/doc/guides/managing-results/refine-results/filtering/).
1065
1065
  */
1066
- filters?: string;
1067
- facetFilters?: FacetFilters;
1068
- optionalFilters?: OptionalFilters;
1069
- numericFilters?: NumericFilters;
1070
- tagFilters?: TagFilters;
1066
+ filters?: string | undefined;
1067
+ facetFilters?: FacetFilters | undefined;
1068
+ optionalFilters?: OptionalFilters | undefined;
1069
+ numericFilters?: NumericFilters | undefined;
1070
+ tagFilters?: TagFilters | undefined;
1071
1071
  /**
1072
1072
  * Whether to sum all filter scores. If true, all filter scores are summed. Otherwise, the maximum filter score is kept. For more information, see [filter scores](https://www.algolia.com/doc/guides/managing-results/refine-results/filtering/in-depth/filter-scoring/#accumulating-scores-with-sumorfiltersscores).
1073
1073
  */
1074
- sumOrFiltersScores?: boolean;
1074
+ sumOrFiltersScores?: boolean | undefined;
1075
1075
  /**
1076
1076
  * Restricts a search to a subset of your searchable attributes. Attribute names are case-sensitive.
1077
1077
  */
1078
- restrictSearchableAttributes?: Array<string>;
1078
+ restrictSearchableAttributes?: Array<string> | undefined;
1079
1079
  /**
1080
1080
  * Facets for which to retrieve facet values that match the search criteria and the number of matching facet values. To retrieve all facets, use the wildcard character `*`. For more information, see [facets](https://www.algolia.com/doc/guides/managing-results/refine-results/faceting/#contextual-facet-values-and-counts).
1081
1081
  */
1082
- facets?: Array<string>;
1082
+ facets?: Array<string> | undefined;
1083
1083
  /**
1084
1084
  * Whether faceting should be applied after deduplication with `distinct`. This leads to accurate facet counts when using faceting in combination with `distinct`. It\'s usually better to use `afterDistinct` modifiers in the `attributesForFaceting` setting, as `facetingAfterDistinct` only computes correct facet counts if all records have the same facet values for the `attributeForDistinct`.
1085
1085
  */
1086
- facetingAfterDistinct?: boolean;
1086
+ facetingAfterDistinct?: boolean | undefined;
1087
1087
  /**
1088
1088
  * Page of search results to retrieve.
1089
1089
  */
1090
- page?: number;
1090
+ page?: number | undefined;
1091
1091
  /**
1092
1092
  * Position of the first hit to retrieve.
1093
1093
  */
1094
- offset?: number;
1094
+ offset?: number | undefined;
1095
1095
  /**
1096
1096
  * Number of hits to retrieve (used in combination with `offset`).
1097
1097
  */
1098
- length?: number;
1098
+ length?: number | undefined;
1099
1099
  /**
1100
1100
  * Coordinates for the center of a circle, expressed as a comma-separated string of latitude and longitude. Only records included within a circle around this central location are included in the results. The radius of the circle is determined by the `aroundRadius` and `minimumAroundRadius` settings. This parameter is ignored if you also specify `insidePolygon` or `insideBoundingBox`.
1101
1101
  */
1102
- aroundLatLng?: string;
1102
+ aroundLatLng?: string | undefined;
1103
1103
  /**
1104
1104
  * Whether to obtain the coordinates from the request\'s IP address.
1105
1105
  */
1106
- aroundLatLngViaIP?: boolean;
1107
- aroundRadius?: AroundRadius;
1108
- aroundPrecision?: AroundPrecision;
1106
+ aroundLatLngViaIP?: boolean | undefined;
1107
+ aroundRadius?: AroundRadius | undefined;
1108
+ aroundPrecision?: AroundPrecision | undefined;
1109
1109
  /**
1110
1110
  * Minimum radius (in meters) for a search around a location when `aroundRadius` isn\'t set.
1111
1111
  */
1112
- minimumAroundRadius?: number;
1113
- insideBoundingBox?: InsideBoundingBox | null;
1112
+ minimumAroundRadius?: number | undefined;
1113
+ insideBoundingBox?: InsideBoundingBox | null | undefined;
1114
1114
  /**
1115
1115
  * Coordinates of a polygon in which to search. Polygons are defined by 3 to 10,000 points. Each point is represented by its latitude and longitude. Provide multiple polygons as nested arrays. For more information, see [filtering inside polygons](https://www.algolia.com/doc/guides/managing-results/refine-results/geolocation/#filtering-inside-rectangular-or-polygonal-areas). This parameter is ignored if you also specify `insideBoundingBox`.
1116
1116
  */
1117
- insidePolygon?: Array<Array<number>>;
1117
+ insidePolygon?: Array<Array<number>> | undefined;
1118
1118
  /**
1119
1119
  * ISO language codes that adjust settings that are useful for processing natural language queries (as opposed to keyword searches): - Sets `removeStopWords` and `ignorePlurals` to the list of provided languages. - Sets `removeWordsIfNoResults` to `allOptional`. - Adds a `natural_language` attribute to `ruleContexts` and `analyticsTags`.
1120
1120
  */
1121
- naturalLanguages?: Array<SupportedLanguage>;
1121
+ naturalLanguages?: Array<SupportedLanguage> | undefined;
1122
1122
  /**
1123
1123
  * Assigns a rule context to the search query. [Rule contexts](https://www.algolia.com/doc/guides/managing-results/rules/rules-overview/how-to/customize-search-results-by-platform/#whats-a-context) are strings that you can use to trigger matching rules.
1124
1124
  */
1125
- ruleContexts?: Array<string>;
1125
+ ruleContexts?: Array<string> | undefined;
1126
1126
  /**
1127
1127
  * Impact that Personalization should have on this search. The higher this value is, the more Personalization determines the ranking compared to other factors. For more information, see [Understanding Personalization impact](https://www.algolia.com/doc/guides/personalization/personalizing-results/in-depth/configuring-personalization/#understanding-personalization-impact).
1128
1128
  */
1129
- personalizationImpact?: number;
1129
+ personalizationImpact?: number | undefined;
1130
1130
  /**
1131
1131
  * Unique pseudonymous or anonymous user identifier. This helps with analytics and click and conversion events. For more information, see [user token](https://www.algolia.com/doc/guides/sending-events/concepts/usertoken/).
1132
1132
  */
1133
- userToken?: string;
1133
+ userToken?: string | undefined;
1134
1134
  /**
1135
1135
  * Whether the search response should include detailed ranking information.
1136
1136
  */
1137
- getRankingInfo?: boolean;
1137
+ getRankingInfo?: boolean | undefined;
1138
1138
  /**
1139
1139
  * Whether to take into account an index\'s synonyms for this search.
1140
1140
  */
1141
- synonyms?: boolean;
1141
+ synonyms?: boolean | undefined;
1142
1142
  /**
1143
1143
  * Whether to include a `queryID` attribute in the response. The query ID is a unique identifier for a search query and is required for tracking [click and conversion events](https://www.algolia.com/guides/sending-events/getting-started/).
1144
1144
  */
1145
- clickAnalytics?: boolean;
1145
+ clickAnalytics?: boolean | undefined;
1146
1146
  /**
1147
1147
  * Whether this search will be included in Analytics.
1148
1148
  */
1149
- analytics?: boolean;
1149
+ analytics?: boolean | undefined;
1150
1150
  /**
1151
1151
  * Tags to apply to the query for [segmenting analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments/).
1152
1152
  */
1153
- analyticsTags?: Array<string>;
1153
+ analyticsTags?: Array<string> | undefined;
1154
1154
  /**
1155
1155
  * Whether to include this search when calculating processing-time percentiles.
1156
1156
  */
1157
- percentileComputation?: boolean;
1157
+ percentileComputation?: boolean | undefined;
1158
1158
  /**
1159
1159
  * Whether to enable A/B testing for this search.
1160
1160
  */
1161
- enableABTest?: boolean;
1161
+ enableABTest?: boolean | undefined;
1162
1162
  };
1163
1163
 
1164
1164
  type BaseSearchParams = SearchParamsQuery & BaseSearchParamsWithoutQuery;
@@ -1175,138 +1175,138 @@ type SemanticSearch = {
1175
1175
  /**
1176
1176
  * Indices from which to collect click and conversion events. If null, the current index and all its replicas are used.
1177
1177
  */
1178
- eventSources?: Array<string> | null;
1178
+ eventSources?: Array<string> | null | undefined;
1179
1179
  };
1180
1180
 
1181
1181
  type IndexSettingsAsSearchParams = {
1182
1182
  /**
1183
1183
  * Attributes to include in the API response. To reduce the size of your response, you can retrieve only some of the attributes. Attribute names are case-sensitive. - `*` retrieves all attributes, except attributes included in the `customRanking` and `unretrievableAttributes` settings. - To retrieve all attributes except a specific one, prefix the attribute with a dash and combine it with the `*`: `[\"*\", \"-ATTRIBUTE\"]`. - The `objectID` attribute is always included.
1184
1184
  */
1185
- attributesToRetrieve?: Array<string>;
1185
+ attributesToRetrieve?: Array<string> | undefined;
1186
1186
  /**
1187
1187
  * Determines the order in which Algolia returns your results. By default, each entry corresponds to a [ranking criteria](https://www.algolia.com/doc/guides/managing-results/relevance-overview/in-depth/ranking-criteria/). The tie-breaking algorithm sequentially applies each criterion in the order they\'re specified. If you configure a replica index for [sorting by an attribute](https://www.algolia.com/doc/guides/managing-results/refine-results/sorting/how-to/sort-by-attribute/), you put the sorting attribute at the top of the list. **Modifiers** - `asc(\"ATTRIBUTE\")`. Sort the index by the values of an attribute, in ascending order. - `desc(\"ATTRIBUTE\")`. Sort the index by the values of an attribute, in descending order. Before you modify the default setting, you should test your changes in the dashboard, and by [A/B testing](https://www.algolia.com/doc/guides/ab-testing/what-is-ab-testing/).
1188
1188
  */
1189
- ranking?: Array<string>;
1189
+ ranking?: Array<string> | undefined;
1190
1190
  /**
1191
1191
  * Relevancy threshold below which less relevant results aren\'t included in the results. You can only set `relevancyStrictness` on [virtual replica indices](https://www.algolia.com/doc/guides/managing-results/refine-results/sorting/in-depth/replicas/#what-are-virtual-replicas). Use this setting to strike a balance between the relevance and number of returned results.
1192
1192
  */
1193
- relevancyStrictness?: number;
1193
+ relevancyStrictness?: number | undefined;
1194
1194
  /**
1195
1195
  * Attributes to highlight. By default, all searchable attributes are highlighted. Use `*` to highlight all attributes or use an empty array `[]` to turn off highlighting. Attribute names are case-sensitive. With highlighting, strings that match the search query are surrounded by HTML tags defined by `highlightPreTag` and `highlightPostTag`. You can use this to visually highlight matching parts of a search query in your UI. For more information, see [Highlighting and snippeting](https://www.algolia.com/doc/guides/building-search-ui/ui-and-ux-patterns/highlighting-snippeting/js/).
1196
1196
  */
1197
- attributesToHighlight?: Array<string>;
1197
+ attributesToHighlight?: Array<string> | undefined;
1198
1198
  /**
1199
1199
  * Attributes for which to enable snippets. Attribute names are case-sensitive. Snippets provide additional context to matched words. If you enable snippets, they include 10 words, including the matched word. The matched word will also be wrapped by HTML tags for highlighting. You can adjust the number of words with the following notation: `ATTRIBUTE:NUMBER`, where `NUMBER` is the number of words to be extracted.
1200
1200
  */
1201
- attributesToSnippet?: Array<string>;
1201
+ attributesToSnippet?: Array<string> | undefined;
1202
1202
  /**
1203
1203
  * HTML tag to insert before the highlighted parts in all highlighted results and snippets.
1204
1204
  */
1205
- highlightPreTag?: string;
1205
+ highlightPreTag?: string | undefined;
1206
1206
  /**
1207
1207
  * HTML tag to insert after the highlighted parts in all highlighted results and snippets.
1208
1208
  */
1209
- highlightPostTag?: string;
1209
+ highlightPostTag?: string | undefined;
1210
1210
  /**
1211
1211
  * String used as an ellipsis indicator when a snippet is truncated.
1212
1212
  */
1213
- snippetEllipsisText?: string;
1213
+ snippetEllipsisText?: string | undefined;
1214
1214
  /**
1215
1215
  * Whether to restrict highlighting and snippeting to items that at least partially matched the search query. By default, all items are highlighted and snippeted.
1216
1216
  */
1217
- restrictHighlightAndSnippetArrays?: boolean;
1217
+ restrictHighlightAndSnippetArrays?: boolean | undefined;
1218
1218
  /**
1219
1219
  * Number of hits per page.
1220
1220
  */
1221
- hitsPerPage?: number;
1221
+ hitsPerPage?: number | undefined;
1222
1222
  /**
1223
1223
  * Minimum number of characters a word in the search query must contain to accept matches with [one typo](https://www.algolia.com/doc/guides/managing-results/optimize-search-results/typo-tolerance/in-depth/configuring-typo-tolerance/#configuring-word-length-for-typos).
1224
1224
  */
1225
- minWordSizefor1Typo?: number;
1225
+ minWordSizefor1Typo?: number | undefined;
1226
1226
  /**
1227
1227
  * Minimum number of characters a word in the search query must contain to accept matches with [two typos](https://www.algolia.com/doc/guides/managing-results/optimize-search-results/typo-tolerance/in-depth/configuring-typo-tolerance/#configuring-word-length-for-typos).
1228
1228
  */
1229
- minWordSizefor2Typos?: number;
1230
- typoTolerance?: TypoTolerance;
1229
+ minWordSizefor2Typos?: number | undefined;
1230
+ typoTolerance?: TypoTolerance | undefined;
1231
1231
  /**
1232
1232
  * Whether to allow typos on numbers in the search query. Turn off this setting to reduce the number of irrelevant matches when searching in large sets of similar numbers.
1233
1233
  */
1234
- allowTyposOnNumericTokens?: boolean;
1234
+ allowTyposOnNumericTokens?: boolean | undefined;
1235
1235
  /**
1236
1236
  * Attributes for which you want to turn off [typo tolerance](https://www.algolia.com/doc/guides/managing-results/optimize-search-results/typo-tolerance/). Attribute names are case-sensitive. Returning only exact matches can help when: - [Searching in hyphenated attributes](https://www.algolia.com/doc/guides/managing-results/optimize-search-results/typo-tolerance/how-to/how-to-search-in-hyphenated-attributes/). - Reducing the number of matches when you have too many. This can happen with attributes that are long blocks of text, such as product descriptions. Consider alternatives such as `disableTypoToleranceOnWords` or adding synonyms if your attributes have intentional unusual spellings that might look like typos.
1237
1237
  */
1238
- disableTypoToleranceOnAttributes?: Array<string>;
1239
- ignorePlurals?: IgnorePlurals;
1240
- removeStopWords?: RemoveStopWords;
1238
+ disableTypoToleranceOnAttributes?: Array<string> | undefined;
1239
+ ignorePlurals?: IgnorePlurals | undefined;
1240
+ removeStopWords?: RemoveStopWords | undefined;
1241
1241
  /**
1242
1242
  * Languages for language-specific query processing steps such as plurals, stop-word removal, and word-detection dictionaries. This setting sets a default list of languages used by the `removeStopWords` and `ignorePlurals` settings. This setting also sets a dictionary for word detection in the logogram-based [CJK](https://www.algolia.com/doc/guides/managing-results/optimize-search-results/handling-natural-languages-nlp/in-depth/normalization/#normalization-for-logogram-based-languages-cjk) languages. To support this, you must place the CJK language **first**. **You should always specify a query language.** If you don\'t specify an indexing language, the search engine uses all [supported languages](https://www.algolia.com/doc/guides/managing-results/optimize-search-results/handling-natural-languages-nlp/in-depth/supported-languages/), or the languages you specified with the `ignorePlurals` or `removeStopWords` parameters. This can lead to unexpected search results. For more information, see [Language-specific configuration](https://www.algolia.com/doc/guides/managing-results/optimize-search-results/handling-natural-languages-nlp/in-depth/language-specific-configurations/).
1243
1243
  */
1244
- queryLanguages?: Array<SupportedLanguage>;
1244
+ queryLanguages?: Array<SupportedLanguage> | undefined;
1245
1245
  /**
1246
1246
  * Whether to split compound words in the query into their building blocks. For more information, see [Word segmentation](https://www.algolia.com/doc/guides/managing-results/optimize-search-results/handling-natural-languages-nlp/in-depth/language-specific-configurations/#splitting-compound-words). Word segmentation is supported for these languages: German, Dutch, Finnish, Swedish, and Norwegian. Decompounding doesn\'t work for words with [non-spacing mark Unicode characters](https://www.charactercodes.net/category/non-spacing_mark). For example, `Gartenstühle` won\'t be decompounded if the `ü` consists of `u` (U+0075) and `◌̈` (U+0308).
1247
1247
  */
1248
- decompoundQuery?: boolean;
1248
+ decompoundQuery?: boolean | undefined;
1249
1249
  /**
1250
1250
  * Whether to enable rules.
1251
1251
  */
1252
- enableRules?: boolean;
1252
+ enableRules?: boolean | undefined;
1253
1253
  /**
1254
1254
  * Whether to enable Personalization.
1255
1255
  */
1256
- enablePersonalization?: boolean;
1257
- queryType?: QueryType;
1258
- removeWordsIfNoResults?: RemoveWordsIfNoResults;
1259
- mode?: Mode;
1260
- semanticSearch?: SemanticSearch;
1256
+ enablePersonalization?: boolean | undefined;
1257
+ queryType?: QueryType | undefined;
1258
+ removeWordsIfNoResults?: RemoveWordsIfNoResults | undefined;
1259
+ mode?: Mode | undefined;
1260
+ semanticSearch?: SemanticSearch | undefined;
1261
1261
  /**
1262
1262
  * Whether to support phrase matching and excluding words from search queries. Use the `advancedSyntaxFeatures` parameter to control which feature is supported.
1263
1263
  */
1264
- advancedSyntax?: boolean;
1265
- optionalWords?: OptionalWords | null;
1264
+ advancedSyntax?: boolean | undefined;
1265
+ optionalWords?: OptionalWords | null | undefined;
1266
1266
  /**
1267
1267
  * Searchable attributes for which you want to [turn off the Exact ranking criterion](https://www.algolia.com/doc/guides/managing-results/optimize-search-results/override-search-engine-defaults/in-depth/adjust-exact-settings/#turn-off-exact-for-some-attributes). Attribute names are case-sensitive. This can be useful for attributes with long values, where the likelihood of an exact match is high, such as product descriptions. Turning off the Exact ranking criterion for these attributes favors exact matching on other attributes. This reduces the impact of individual attributes with a lot of content on ranking.
1268
1268
  */
1269
- disableExactOnAttributes?: Array<string>;
1270
- exactOnSingleWordQuery?: ExactOnSingleWordQuery;
1269
+ disableExactOnAttributes?: Array<string> | undefined;
1270
+ exactOnSingleWordQuery?: ExactOnSingleWordQuery | undefined;
1271
1271
  /**
1272
1272
  * Determine which plurals and synonyms should be considered an exact matches. By default, Algolia treats singular and plural forms of a word, and single-word synonyms, as [exact](https://www.algolia.com/doc/guides/managing-results/relevance-overview/in-depth/ranking-criteria/#exact) matches when searching. For example: - \"swimsuit\" and \"swimsuits\" are treated the same - \"swimsuit\" and \"swimwear\" are treated the same (if they are [synonyms](https://www.algolia.com/doc/guides/managing-results/optimize-search-results/adding-synonyms/#regular-synonyms)). - `ignorePlurals`. Plurals and similar declensions added by the `ignorePlurals` setting are considered exact matches. - `singleWordSynonym`. Single-word synonyms, such as \"NY\" = \"NYC\", are considered exact matches. - `multiWordsSynonym`. Multi-word synonyms, such as \"NY\" = \"New York\", are considered exact matches.
1273
1273
  */
1274
- alternativesAsExact?: Array<AlternativesAsExact>;
1274
+ alternativesAsExact?: Array<AlternativesAsExact> | undefined;
1275
1275
  /**
1276
1276
  * Advanced search syntax features you want to support. - `exactPhrase`. Phrases in quotes must match exactly. For example, `sparkly blue \"iPhone case\"` only returns records with the exact string \"iPhone case\". - `excludeWords`. Query words prefixed with a `-` must not occur in a record. For example, `search -engine` matches records that contain \"search\" but not \"engine\". This setting only has an effect if `advancedSyntax` is true.
1277
1277
  */
1278
- advancedSyntaxFeatures?: Array<AdvancedSyntaxFeatures>;
1279
- distinct?: Distinct;
1278
+ advancedSyntaxFeatures?: Array<AdvancedSyntaxFeatures> | undefined;
1279
+ distinct?: Distinct | undefined;
1280
1280
  /**
1281
1281
  * Whether to replace a highlighted word with the matched synonym. By default, the original words are highlighted even if a synonym matches. For example, with `home` as a synonym for `house` and a search for `home`, records matching either \"home\" or \"house\" are included in the search results, and either \"home\" or \"house\" are highlighted. With `replaceSynonymsInHighlight` set to `true`, a search for `home` still matches the same records, but all occurrences of \"house\" are replaced by \"home\" in the highlighted response.
1282
1282
  */
1283
- replaceSynonymsInHighlight?: boolean;
1283
+ replaceSynonymsInHighlight?: boolean | undefined;
1284
1284
  /**
1285
1285
  * Minimum proximity score for two matching words. This adjusts the [Proximity ranking criterion](https://www.algolia.com/doc/guides/managing-results/relevance-overview/in-depth/ranking-criteria/#proximity) by equally scoring matches that are farther apart. For example, if `minProximity` is 2, neighboring matches and matches with one word between them would have the same score.
1286
1286
  */
1287
- minProximity?: number;
1287
+ minProximity?: number | undefined;
1288
1288
  /**
1289
1289
  * Properties to include in the API response of search and browse requests. By default, all response properties are included. To reduce the response size, you can select which properties should be included. An empty list may lead to an empty API response (except properties you can\'t exclude). You can\'t exclude these properties: `message`, `warning`, `cursor`, `abTestVariantID`, or any property added by setting `getRankingInfo` to true. Your search depends on the `hits` field. If you omit this field, searches won\'t return any results. Your UI might also depend on other properties, for example, for pagination. Before restricting the response size, check the impact on your search experience.
1290
1290
  */
1291
- responseFields?: Array<string>;
1291
+ responseFields?: Array<string> | undefined;
1292
1292
  /**
1293
1293
  * Maximum number of facet values to return for each facet.
1294
1294
  */
1295
- maxValuesPerFacet?: number;
1295
+ maxValuesPerFacet?: number | undefined;
1296
1296
  /**
1297
1297
  * Order in which to retrieve facet values. - `count`. Facet values are retrieved by decreasing count. The count is the number of matching records containing this facet value. - `alpha`. Retrieve facet values alphabetically. This setting doesn\'t influence how facet values are displayed in your UI (see `renderingContent`). For more information, see [facet value display](https://www.algolia.com/doc/guides/building-search-ui/ui-and-ux-patterns/facet-display/js/).
1298
1298
  */
1299
- sortFacetValuesBy?: string;
1299
+ sortFacetValuesBy?: string | undefined;
1300
1300
  /**
1301
1301
  * Whether the best matching attribute should be determined by minimum proximity. This setting only affects ranking if the Attribute ranking criterion comes before Proximity in the `ranking` setting. If true, the best matching attribute is selected based on the minimum proximity of multiple matches. Otherwise, the best matching attribute is determined by the order in the `searchableAttributes` setting.
1302
1302
  */
1303
- attributeCriteriaComputedByMinProximity?: boolean;
1304
- renderingContent?: RenderingContent;
1303
+ attributeCriteriaComputedByMinProximity?: boolean | undefined;
1304
+ renderingContent?: RenderingContent | undefined;
1305
1305
  /**
1306
1306
  * Whether this search will use [Dynamic Re-Ranking](https://www.algolia.com/doc/guides/algolia-ai/re-ranking/). This setting only has an effect if you activated Dynamic Re-Ranking for this index in the Algolia dashboard.
1307
1307
  */
1308
- enableReRanking?: boolean;
1309
- reRankingApplyFilter?: ReRankingApplyFilter | null;
1308
+ enableReRanking?: boolean | undefined;
1309
+ reRankingApplyFilter?: ReRankingApplyFilter | null | undefined;
1310
1310
  };
1311
1311
 
1312
1312
  /**
@@ -1321,7 +1321,7 @@ type SearchParamsString = {
1321
1321
  /**
1322
1322
  * Search parameters as a URL-encoded query string.
1323
1323
  */
1324
- params?: string;
1324
+ params?: string | undefined;
1325
1325
  };
1326
1326
 
1327
1327
  type SearchParams = SearchParamsString | SearchParamsObject;
@@ -1338,11 +1338,11 @@ type SearchForHitsOptions = {
1338
1338
  * Index name (case-sensitive).
1339
1339
  */
1340
1340
  indexName: string;
1341
- type?: SearchTypeDefault;
1341
+ type?: SearchTypeDefault | undefined;
1342
1342
  } & {
1343
- facet?: never;
1344
- maxFacetHits?: never;
1345
- facetQuery?: never;
1343
+ facet?: never | undefined;
1344
+ maxFacetHits?: never | undefined;
1345
+ facetQuery?: never | undefined;
1346
1346
  };
1347
1347
 
1348
1348
  type SearchForHits = SearchParams & SearchForHitsOptions;
@@ -1356,7 +1356,7 @@ type SearchStrategy = 'none' | 'stopIfEnoughMatches';
1356
1356
 
1357
1357
  type SearchMethodParams = {
1358
1358
  requests: Array<SearchQuery>;
1359
- strategy?: SearchStrategy;
1359
+ strategy?: SearchStrategy | undefined;
1360
1360
  };
1361
1361
 
1362
1362
  type FacetHits = {
@@ -1386,7 +1386,7 @@ type SearchForFacetValuesResponse = {
1386
1386
  /**
1387
1387
  * Time the server took to process the request, in milliseconds.
1388
1388
  */
1389
- processingTimeMS?: number;
1389
+ processingTimeMS?: number | undefined;
1390
1390
  };
1391
1391
 
1392
1392
  /**
@@ -1402,15 +1402,15 @@ type Hit<T = Record<string, unknown>> = T & {
1402
1402
  */
1403
1403
  _highlightResult?: {
1404
1404
  [key: string]: HighlightResult;
1405
- };
1405
+ } | undefined;
1406
1406
  /**
1407
1407
  * Snippets that show the context around a matching search query.
1408
1408
  */
1409
1409
  _snippetResult?: {
1410
1410
  [key: string]: SnippetResult;
1411
- };
1412
- _rankingInfo?: RankingInfo;
1413
- _distinctSeqID?: number;
1411
+ } | undefined;
1412
+ _rankingInfo?: RankingInfo | undefined;
1413
+ _distinctSeqID?: number | undefined;
1414
1414
  };
1415
1415
 
1416
1416
  type SearchHits<T = Record<string, unknown>> = Record<string, any> & {
@@ -1449,11 +1449,11 @@ type CustomPostProps = {
1449
1449
  */
1450
1450
  parameters?: {
1451
1451
  [key: string]: any;
1452
- };
1452
+ } | undefined;
1453
1453
  /**
1454
1454
  * Parameters to send with the custom request.
1455
1455
  */
1456
- body?: Record<string, unknown>;
1456
+ body?: Record<string, unknown> | undefined;
1457
1457
  };
1458
1458
  /**
1459
1459
  * Recommend method signature compatible with the `algoliasearch` v4 package. When using this signature, extra computation will be required to make it match the new signature.
@@ -1467,7 +1467,7 @@ type LegacyGetRecommendationsParams = RecommendationsRequest[];
1467
1467
  * @deprecated The `search` method now accepts flat `searchParams` at the root of the method.
1468
1468
  */
1469
1469
  type LegacySearchParams = {
1470
- params?: SearchParamsObject;
1470
+ params?: SearchParamsObject | undefined;
1471
1471
  };
1472
1472
  /**
1473
1473
  * In v4, the search parameters are wrapped in a `params` parameter.
@@ -1489,7 +1489,7 @@ type LegacySearchQuery = LegacySearchForFacets | LegacySearchForHits;
1489
1489
  */
1490
1490
  type LegacySearchMethodProps = LegacySearchQuery[];
1491
1491
 
1492
- declare const apiClientVersion = "5.27.0";
1492
+ declare const apiClientVersion = "5.28.0";
1493
1493
  declare function createLiteClient({ appId: appIdOption, apiKey: apiKeyOption, authMode, algoliaAgents, ...options }: CreateClientOptions): {
1494
1494
  transporter: _algolia_client_common.Transporter;
1495
1495
  /**
@@ -1514,7 +1514,7 @@ declare function createLiteClient({ appId: appIdOption, apiKey: apiKeyOption, au
1514
1514
  * @param segment - The algolia agent (user-agent) segment to add.
1515
1515
  * @param version - The version of the agent.
1516
1516
  */
1517
- addAlgoliaAgent(segment: string, version?: string): void;
1517
+ addAlgoliaAgent(segment: string, version?: string | undefined): void;
1518
1518
  /**
1519
1519
  * Helper method to switch the API key used to authenticate the requests.
1520
1520
  *
@@ -1532,7 +1532,7 @@ declare function createLiteClient({ appId: appIdOption, apiKey: apiKeyOption, au
1532
1532
  * @param searchMethodParams - Query requests and strategies. Results will be received in the same order as the queries.
1533
1533
  * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.
1534
1534
  */
1535
- searchForHits<T>(searchMethodParams: LegacySearchMethodProps | SearchMethodParams, requestOptions?: RequestOptions): Promise<{
1535
+ searchForHits<T>(searchMethodParams: LegacySearchMethodProps | SearchMethodParams, requestOptions?: RequestOptions | undefined): Promise<{
1536
1536
  results: Array<SearchResponse<T>>;
1537
1537
  }>;
1538
1538
  /**
@@ -1543,7 +1543,7 @@ declare function createLiteClient({ appId: appIdOption, apiKey: apiKeyOption, au
1543
1543
  * @param searchMethodParams - Query requests and strategies. Results will be received in the same order as the queries.
1544
1544
  * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.
1545
1545
  */
1546
- searchForFacets(searchMethodParams: LegacySearchMethodProps | SearchMethodParams, requestOptions?: RequestOptions): Promise<{
1546
+ searchForFacets(searchMethodParams: LegacySearchMethodProps | SearchMethodParams, requestOptions?: RequestOptions | undefined): Promise<{
1547
1547
  results: Array<SearchForFacetValuesResponse>;
1548
1548
  }>;
1549
1549
  /**
@@ -1591,31 +1591,31 @@ type ApiKey = {
1591
1591
  /**
1592
1592
  * Description of an API key to help you identify this API key.
1593
1593
  */
1594
- description?: string;
1594
+ description?: string | undefined;
1595
1595
  /**
1596
1596
  * Index names or patterns that this API key can access. By default, an API key can access all indices in the same application. You can use leading and trailing wildcard characters (`*`): - `dev_*` matches all indices starting with \"dev_\". - `*_dev` matches all indices ending with \"_dev\". - `*_products_*` matches all indices containing \"_products_\".
1597
1597
  */
1598
- indexes?: Array<string>;
1598
+ indexes?: Array<string> | undefined;
1599
1599
  /**
1600
1600
  * Maximum number of results this API key can retrieve in one query. By default, there\'s no limit.
1601
1601
  */
1602
- maxHitsPerQuery?: number;
1602
+ maxHitsPerQuery?: number | undefined;
1603
1603
  /**
1604
1604
  * Maximum number of API requests allowed per IP address or [user token](https://www.algolia.com/doc/guides/sending-events/concepts/usertoken/) per hour. If this limit is reached, the API returns an error with status code `429`. By default, there\'s no limit.
1605
1605
  */
1606
- maxQueriesPerIPPerHour?: number;
1606
+ maxQueriesPerIPPerHour?: number | undefined;
1607
1607
  /**
1608
1608
  * Query parameters to add when making API requests with this API key. To restrict this API key to specific IP addresses, add the `restrictSources` parameter. You can only add a single source, but you can provide a range of IP addresses. Creating an API key fails if the request is made from an IP address outside the restricted range.
1609
1609
  */
1610
- queryParameters?: string;
1610
+ queryParameters?: string | undefined;
1611
1611
  /**
1612
1612
  * Allowed HTTP referrers for this API key. By default, all referrers are allowed. You can use leading and trailing wildcard characters (`*`): - `https://algolia.com/_*` allows all referrers starting with \"https://algolia.com/\" - `*.algolia.com` allows all referrers ending with \".algolia.com\" - `*algolia.com*` allows all referrers in the domain \"algolia.com\". Like all HTTP headers, referrers can be spoofed. Don\'t rely on them to secure your data. For more information, see [HTTP referrer restrictions](https://www.algolia.com/doc/guides/security/security-best-practices/#http-referrers-restrictions).
1613
1613
  */
1614
- referers?: Array<string>;
1614
+ referers?: Array<string> | undefined;
1615
1615
  /**
1616
1616
  * Duration (in seconds) after which the API key expires. By default, API keys don\'t expire.
1617
1617
  */
1618
- validity?: number;
1618
+ validity?: number | undefined;
1619
1619
  };
1620
1620
 
1621
1621
  /**
@@ -1629,11 +1629,11 @@ type AutomaticFacetFilter = {
1629
1629
  /**
1630
1630
  * Filter scores to give different weights to individual filters.
1631
1631
  */
1632
- score?: number;
1632
+ score?: number | undefined;
1633
1633
  /**
1634
1634
  * Whether the filter is disjunctive or conjunctive. If true the filter has multiple matches, multiple occurences are combined with the logical `OR` operation. If false, multiple occurences are combined with the logical `AND` operation.
1635
1635
  */
1636
- disjunctive?: boolean;
1636
+ disjunctive?: boolean | undefined;
1637
1637
  };
1638
1638
 
1639
1639
  /**
@@ -1656,26 +1656,26 @@ type BrowsePagination = {
1656
1656
  /**
1657
1657
  * Page of search results to retrieve.
1658
1658
  */
1659
- page?: number;
1659
+ page?: number | undefined;
1660
1660
  /**
1661
1661
  * Number of results (hits).
1662
1662
  */
1663
- nbHits?: number;
1663
+ nbHits?: number | undefined;
1664
1664
  /**
1665
1665
  * Number of pages of results.
1666
1666
  */
1667
- nbPages?: number;
1667
+ nbPages?: number | undefined;
1668
1668
  /**
1669
1669
  * Number of hits per page.
1670
1670
  */
1671
- hitsPerPage?: number;
1671
+ hitsPerPage?: number | undefined;
1672
1672
  };
1673
1673
 
1674
1674
  type Cursor = {
1675
1675
  /**
1676
1676
  * Cursor to get the next page of the response. The parameter must match the value returned in the response of a previous request. The last page of the response does not return a `cursor` attribute.
1677
1677
  */
1678
- cursor?: string;
1678
+ cursor?: string | undefined;
1679
1679
  };
1680
1680
 
1681
1681
  type BrowseParamsObject = SearchParamsObject & Cursor;
@@ -1688,26 +1688,26 @@ type BrowseResponse<T = Record<string, unknown>> = BaseSearchResponse & BrowsePa
1688
1688
  type EditType = 'remove' | 'replace';
1689
1689
 
1690
1690
  type Edit = {
1691
- type?: EditType;
1691
+ type?: EditType | undefined;
1692
1692
  /**
1693
1693
  * Text or patterns to remove from the query string.
1694
1694
  */
1695
- delete?: string;
1695
+ delete?: string | undefined;
1696
1696
  /**
1697
1697
  * Text to be added in place of the deleted text inside the query string.
1698
1698
  */
1699
- insert?: string;
1699
+ insert?: string | undefined;
1700
1700
  };
1701
1701
 
1702
1702
  type ConsequenceQueryObject = {
1703
1703
  /**
1704
1704
  * Words to remove from the search query.
1705
1705
  */
1706
- remove?: Array<string>;
1706
+ remove?: Array<string> | undefined;
1707
1707
  /**
1708
1708
  * Changes to make to the search query.
1709
1709
  */
1710
- edits?: Array<Edit>;
1710
+ edits?: Array<Edit> | undefined;
1711
1711
  };
1712
1712
 
1713
1713
  /**
@@ -1719,10 +1719,10 @@ type ConsequenceQuery = ConsequenceQueryObject | string;
1719
1719
  * Parameters to apply to this search. You can use all search parameters, plus special `automaticFacetFilters`, `automaticOptionalFacetFilters`, and `query`.
1720
1720
  */
1721
1721
  type Params = {
1722
- query?: ConsequenceQuery;
1723
- automaticFacetFilters?: AutomaticFacetFilters;
1724
- automaticOptionalFacetFilters?: AutomaticFacetFilters;
1725
- renderingContent?: RenderingContent;
1722
+ query?: ConsequenceQuery | undefined;
1723
+ automaticFacetFilters?: AutomaticFacetFilters | undefined;
1724
+ automaticOptionalFacetFilters?: AutomaticFacetFilters | undefined;
1725
+ renderingContent?: RenderingContent | undefined;
1726
1726
  };
1727
1727
 
1728
1728
  type ConsequenceParams = BaseSearchParamsWithoutQuery & IndexSettingsAsSearchParams & Params;
@@ -1731,7 +1731,7 @@ type ConsequenceParams = BaseSearchParamsWithoutQuery & IndexSettingsAsSearchPar
1731
1731
  * Error.
1732
1732
  */
1733
1733
  type ErrorBase = Record<string, any> & {
1734
- message?: string;
1734
+ message?: string | undefined;
1735
1735
  };
1736
1736
 
1737
1737
  type GetApiKeyResponse = BaseGetApiKeyResponse & ApiKey;
@@ -1745,12 +1745,12 @@ type WithPrimary = {
1745
1745
  /**
1746
1746
  * Replica indices only: the name of the primary index for this replica.
1747
1747
  */
1748
- primary?: string;
1748
+ primary?: string | undefined;
1749
1749
  };
1750
1750
 
1751
1751
  type SettingsResponse = IndexSettings & WithPrimary;
1752
1752
 
1753
- declare function liteClient(appId: string, apiKey: string, options?: ClientOptions): LiteClient;
1753
+ declare function liteClient(appId: string, apiKey: string, options?: ClientOptions | undefined): LiteClient;
1754
1754
  type LiteClient = ReturnType<typeof createLiteClient>;
1755
1755
 
1756
1756
  export { type Acl, type AdvancedSyntaxFeatures, type AlternativesAsExact, type ApiKey, type AroundPrecision, type AroundRadius, type AroundRadiusAll, type AutomaticFacetFilter, type AutomaticFacetFilters, type Banner, type BannerImage, type BannerImageUrl, type BannerLink, type BaseGetApiKeyResponse, type BaseIndexSettings, type BaseRecommendIndexSettings, type BaseRecommendRequest, type BaseRecommendSearchParams, type BaseSearchParams, type BaseSearchParamsWithoutQuery, type BaseSearchResponse, type BooleanString, type BoughtTogetherQuery, type BrowsePagination, type BrowseParamsObject, type BrowseResponse, type ConsequenceParams, type ConsequenceQuery, type ConsequenceQueryObject, type Cursor, type CustomPostProps, type Distinct, type Edit, type EditType, type ErrorBase, type ExactOnSingleWordQuery, type Exhaustive, type FacetFilters, type FacetHits, type FacetOrdering, type FacetStats, type FallbackParams, type FbtModel, type FrequentlyBoughtTogether, type GetApiKeyResponse, type GetRecommendationsParams, type GetRecommendationsResponse, type HighlightResult, type HighlightResultOption, type Hit, type IgnorePlurals, type IndexSettings, type IndexSettingsAsSearchParams, type IndexSettingsFacets, type InsideBoundingBox, type LegacyGetRecommendationsParams, type LegacySearchMethodProps, type LiteClient, type LookingSimilar, type LookingSimilarModel, type LookingSimilarQuery, type MatchLevel, type MatchedGeoLocation, type Mode, type NumericFilters, type OptionalFilters, type OptionalWords, type Params, type Personalization, type QueryType, type Range, type RankingInfo, type ReRankingApplyFilter, type RecommendHit, type RecommendIndexSettings, type RecommendSearchParams, type RecommendationsHit, type RecommendationsHits, type RecommendationsRequest, type RecommendationsResults, type Redirect, type RedirectRuleIndexData, type RedirectRuleIndexMetadata, type RedirectURL, type RelatedModel, type RelatedProducts, type RelatedQuery, type RemoveStopWords, type RemoveWordsIfNoResults, type RenderingContent, type SearchForFacetValuesResponse, type SearchForFacets, type SearchForFacetsOptions, type SearchForHits, type SearchForHitsOptions, type SearchHits, type SearchMethodParams, type SearchPagination, type SearchParams, type SearchParamsObject, type SearchParamsQuery, type SearchParamsString, type SearchQuery, type SearchResponse, type SearchResponses, type SearchResult, type SearchStrategy, type SearchTypeDefault, type SearchTypeFacet, type SemanticSearch, type SettingsResponse, type SnippetResult, type SnippetResultOption, type SortRemainingBy, type SupportedLanguage, type TagFilters, type TrendingFacetHit, type TrendingFacets, type TrendingFacetsModel, type TrendingFacetsQuery, type TrendingItems, type TrendingItemsModel, type TrendingItemsQuery, type TypoTolerance, type TypoToleranceEnum, type Value, type Widgets, type WithPrimary, apiClientVersion, liteClient };