@algolia/recommend 5.27.0 → 5.29.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/browser.d.ts CHANGED
@@ -31,11 +31,11 @@ type Range = {
31
31
  /**
32
32
  * Lower boundary of a range in meters. The Geo ranking criterion considers all records within the range to be equal.
33
33
  */
34
- from?: number;
34
+ from?: number | undefined;
35
35
  /**
36
36
  * Upper boundary of a range in meters. The Geo ranking criterion considers all records within the range to be equal.
37
37
  */
38
- value?: number;
38
+ value?: number | undefined;
39
39
  };
40
40
 
41
41
  /**
@@ -84,157 +84,157 @@ type BaseRecommendSearchParams = {
84
84
  /**
85
85
  * 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.
86
86
  */
87
- similarQuery?: string;
87
+ similarQuery?: string | undefined;
88
88
  /**
89
89
  * 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/).
90
90
  */
91
- filters?: string;
92
- facetFilters?: FacetFilters;
93
- optionalFilters?: OptionalFilters;
94
- numericFilters?: NumericFilters;
95
- tagFilters?: TagFilters;
91
+ filters?: string | undefined;
92
+ facetFilters?: FacetFilters | undefined;
93
+ optionalFilters?: OptionalFilters | undefined;
94
+ numericFilters?: NumericFilters | undefined;
95
+ tagFilters?: TagFilters | undefined;
96
96
  /**
97
97
  * 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).
98
98
  */
99
- sumOrFiltersScores?: boolean;
99
+ sumOrFiltersScores?: boolean | undefined;
100
100
  /**
101
101
  * Restricts a search to a subset of your searchable attributes. Attribute names are case-sensitive.
102
102
  */
103
- restrictSearchableAttributes?: Array<string>;
103
+ restrictSearchableAttributes?: Array<string> | undefined;
104
104
  /**
105
105
  * 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).
106
106
  */
107
- facets?: Array<string>;
107
+ facets?: Array<string> | undefined;
108
108
  /**
109
109
  * 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`.
110
110
  */
111
- facetingAfterDistinct?: boolean;
111
+ facetingAfterDistinct?: boolean | undefined;
112
112
  /**
113
113
  * 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`.
114
114
  */
115
- aroundLatLng?: string;
115
+ aroundLatLng?: string | undefined;
116
116
  /**
117
117
  * Whether to obtain the coordinates from the request\'s IP address.
118
118
  */
119
- aroundLatLngViaIP?: boolean;
120
- aroundRadius?: AroundRadius;
121
- aroundPrecision?: AroundPrecision;
119
+ aroundLatLngViaIP?: boolean | undefined;
120
+ aroundRadius?: AroundRadius | undefined;
121
+ aroundPrecision?: AroundPrecision | undefined;
122
122
  /**
123
123
  * Minimum radius (in meters) for a search around a location when `aroundRadius` isn\'t set.
124
124
  */
125
- minimumAroundRadius?: number;
126
- insideBoundingBox?: InsideBoundingBox | null;
125
+ minimumAroundRadius?: number | undefined;
126
+ insideBoundingBox?: InsideBoundingBox | null | undefined;
127
127
  /**
128
128
  * 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`.
129
129
  */
130
- insidePolygon?: Array<Array<number>>;
130
+ insidePolygon?: Array<Array<number>> | undefined;
131
131
  /**
132
132
  * 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`.
133
133
  */
134
- naturalLanguages?: Array<SupportedLanguage>;
134
+ naturalLanguages?: Array<SupportedLanguage> | undefined;
135
135
  /**
136
136
  * 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.
137
137
  */
138
- ruleContexts?: Array<string>;
138
+ ruleContexts?: Array<string> | undefined;
139
139
  /**
140
140
  * 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).
141
141
  */
142
- personalizationImpact?: number;
142
+ personalizationImpact?: number | undefined;
143
143
  /**
144
144
  * 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/).
145
145
  */
146
- userToken?: string;
146
+ userToken?: string | undefined;
147
147
  /**
148
148
  * Whether the search response should include detailed ranking information.
149
149
  */
150
- getRankingInfo?: boolean;
150
+ getRankingInfo?: boolean | undefined;
151
151
  /**
152
152
  * Whether to take into account an index\'s synonyms for this search.
153
153
  */
154
- synonyms?: boolean;
154
+ synonyms?: boolean | undefined;
155
155
  /**
156
156
  * 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/).
157
157
  */
158
- clickAnalytics?: boolean;
158
+ clickAnalytics?: boolean | undefined;
159
159
  /**
160
160
  * Whether this search will be included in Analytics.
161
161
  */
162
- analytics?: boolean;
162
+ analytics?: boolean | undefined;
163
163
  /**
164
164
  * Tags to apply to the query for [segmenting analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments/).
165
165
  */
166
- analyticsTags?: Array<string>;
166
+ analyticsTags?: Array<string> | undefined;
167
167
  /**
168
168
  * Whether to include this search when calculating processing-time percentiles.
169
169
  */
170
- percentileComputation?: boolean;
170
+ percentileComputation?: boolean | undefined;
171
171
  /**
172
172
  * Whether to enable A/B testing for this search.
173
173
  */
174
- enableABTest?: boolean;
174
+ enableABTest?: boolean | undefined;
175
175
  };
176
176
 
177
177
  type BaseIndexSettings = {
178
178
  /**
179
179
  * 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))`.
180
180
  */
181
- attributesForFaceting?: Array<string>;
181
+ attributesForFaceting?: Array<string> | undefined;
182
182
  /**
183
183
  * 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/).
184
184
  */
185
- replicas?: Array<string>;
185
+ replicas?: Array<string> | undefined;
186
186
  /**
187
187
  * 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.
188
188
  */
189
- paginationLimitedTo?: number;
189
+ paginationLimitedTo?: number | undefined;
190
190
  /**
191
191
  * 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.
192
192
  */
193
- unretrievableAttributes?: Array<string>;
193
+ unretrievableAttributes?: Array<string> | undefined;
194
194
  /**
195
195
  * 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.
196
196
  */
197
- disableTypoToleranceOnWords?: Array<string>;
197
+ disableTypoToleranceOnWords?: Array<string> | undefined;
198
198
  /**
199
199
  * 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.
200
200
  */
201
- attributesToTransliterate?: Array<string>;
201
+ attributesToTransliterate?: Array<string> | undefined;
202
202
  /**
203
203
  * Attributes for which to split [camel case](https://wikipedia.org/wiki/Camel_case) words. Attribute names are case-sensitive.
204
204
  */
205
- camelCaseAttributes?: Array<string>;
205
+ camelCaseAttributes?: Array<string> | undefined;
206
206
  /**
207
207
  * 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).
208
208
  */
209
- decompoundedAttributes?: Record<string, unknown>;
209
+ decompoundedAttributes?: Record<string, unknown> | undefined;
210
210
  /**
211
211
  * 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/).
212
212
  */
213
- indexLanguages?: Array<SupportedLanguage>;
213
+ indexLanguages?: Array<SupportedLanguage> | undefined;
214
214
  /**
215
215
  * 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.
216
216
  */
217
- disablePrefixOnAttributes?: Array<string>;
217
+ disablePrefixOnAttributes?: Array<string> | undefined;
218
218
  /**
219
219
  * Whether arrays with exclusively non-negative integers should be compressed for better performance. If true, the compressed arrays may be reordered.
220
220
  */
221
- allowCompressionOfIntegerArray?: boolean;
221
+ allowCompressionOfIntegerArray?: boolean | undefined;
222
222
  /**
223
223
  * 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 `!=`.
224
224
  */
225
- numericAttributesForFiltering?: Array<string>;
225
+ numericAttributesForFiltering?: Array<string> | undefined;
226
226
  /**
227
227
  * 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.
228
228
  */
229
- separatorsToIndex?: string;
229
+ separatorsToIndex?: string | undefined;
230
230
  /**
231
231
  * 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.
232
232
  */
233
- searchableAttributes?: Array<string>;
233
+ searchableAttributes?: Array<string> | undefined;
234
234
  /**
235
235
  * An object with custom data. You can store up to 32kB as custom data.
236
236
  */
237
- userData?: any | null;
237
+ userData?: any | null | undefined;
238
238
  /**
239
239
  * 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/).
240
240
  */
@@ -242,23 +242,23 @@ type BaseIndexSettings = {
242
242
  [key: string]: {
243
243
  [key: string]: string;
244
244
  };
245
- };
245
+ } | undefined;
246
246
  /**
247
247
  * 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.
248
248
  */
249
- attributeForDistinct?: string;
249
+ attributeForDistinct?: string | undefined;
250
250
  /**
251
251
  * 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).
252
252
  */
253
- maxFacetHits?: number;
253
+ maxFacetHits?: number | undefined;
254
254
  /**
255
255
  * 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.
256
256
  */
257
- keepDiacriticsOnCharacters?: string;
257
+ keepDiacriticsOnCharacters?: string | undefined;
258
258
  /**
259
259
  * 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.
260
260
  */
261
- customRanking?: Array<string>;
261
+ customRanking?: Array<string> | undefined;
262
262
  };
263
263
 
264
264
  type AdvancedSyntaxFeatures = 'exactPhrase' | 'excludeWords';
@@ -314,7 +314,7 @@ type IndexSettingsFacets = {
314
314
  /**
315
315
  * Explicit order of facets or facet values. This setting lets you always show specific facets or facet values at the top of the list.
316
316
  */
317
- order?: Array<string>;
317
+ order?: Array<string> | undefined;
318
318
  };
319
319
 
320
320
  /**
@@ -326,62 +326,62 @@ type Value = {
326
326
  /**
327
327
  * Explicit order of facets or facet values. This setting lets you always show specific facets or facet values at the top of the list.
328
328
  */
329
- order?: Array<string>;
330
- sortRemainingBy?: SortRemainingBy;
329
+ order?: Array<string> | undefined;
330
+ sortRemainingBy?: SortRemainingBy | undefined;
331
331
  /**
332
332
  * Hide facet values.
333
333
  */
334
- hide?: Array<string>;
334
+ hide?: Array<string> | undefined;
335
335
  };
336
336
 
337
337
  /**
338
338
  * Order of facet names and facet values in your UI.
339
339
  */
340
340
  type FacetOrdering = {
341
- facets?: IndexSettingsFacets;
341
+ facets?: IndexSettingsFacets | undefined;
342
342
  /**
343
343
  * Order of facet values. One object for each facet.
344
344
  */
345
345
  values?: {
346
346
  [key: string]: Value;
347
- };
347
+ } | undefined;
348
348
  };
349
349
 
350
350
  /**
351
351
  * The redirect rule container.
352
352
  */
353
353
  type RedirectURL = {
354
- url?: string;
354
+ url?: string | undefined;
355
355
  };
356
356
 
357
357
  /**
358
358
  * URL for an image to show inside a banner.
359
359
  */
360
360
  type BannerImageUrl = {
361
- url?: string;
361
+ url?: string | undefined;
362
362
  };
363
363
 
364
364
  /**
365
365
  * Image to show inside a banner.
366
366
  */
367
367
  type BannerImage = {
368
- urls?: Array<BannerImageUrl>;
369
- title?: string;
368
+ urls?: Array<BannerImageUrl> | undefined;
369
+ title?: string | undefined;
370
370
  };
371
371
 
372
372
  /**
373
373
  * Link for a banner defined in the Merchandising Studio.
374
374
  */
375
375
  type BannerLink = {
376
- url?: string;
376
+ url?: string | undefined;
377
377
  };
378
378
 
379
379
  /**
380
380
  * Banner with image and link to redirect users.
381
381
  */
382
382
  type Banner = {
383
- image?: BannerImage;
384
- link?: BannerLink;
383
+ image?: BannerImage | undefined;
384
+ link?: BannerLink | undefined;
385
385
  };
386
386
 
387
387
  /**
@@ -391,16 +391,16 @@ type Widgets = {
391
391
  /**
392
392
  * Banners defined in the Merchandising Studio for a given search.
393
393
  */
394
- banners?: Array<Banner>;
394
+ banners?: Array<Banner> | undefined;
395
395
  };
396
396
 
397
397
  /**
398
398
  * 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.
399
399
  */
400
400
  type RenderingContent = {
401
- facetOrdering?: FacetOrdering;
402
- redirect?: RedirectURL;
403
- widgets?: Widgets;
401
+ facetOrdering?: FacetOrdering | undefined;
402
+ redirect?: RedirectURL | undefined;
403
+ widgets?: Widgets | undefined;
404
404
  };
405
405
 
406
406
  /**
@@ -417,125 +417,125 @@ type BaseRecommendIndexSettings = {
417
417
  /**
418
418
  * 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.
419
419
  */
420
- attributesToRetrieve?: Array<string>;
420
+ attributesToRetrieve?: Array<string> | undefined;
421
421
  /**
422
422
  * 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/).
423
423
  */
424
- ranking?: Array<string>;
424
+ ranking?: Array<string> | undefined;
425
425
  /**
426
426
  * 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.
427
427
  */
428
- relevancyStrictness?: number;
428
+ relevancyStrictness?: number | undefined;
429
429
  /**
430
430
  * 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/).
431
431
  */
432
- attributesToHighlight?: Array<string>;
432
+ attributesToHighlight?: Array<string> | undefined;
433
433
  /**
434
434
  * 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.
435
435
  */
436
- attributesToSnippet?: Array<string>;
436
+ attributesToSnippet?: Array<string> | undefined;
437
437
  /**
438
438
  * HTML tag to insert before the highlighted parts in all highlighted results and snippets.
439
439
  */
440
- highlightPreTag?: string;
440
+ highlightPreTag?: string | undefined;
441
441
  /**
442
442
  * HTML tag to insert after the highlighted parts in all highlighted results and snippets.
443
443
  */
444
- highlightPostTag?: string;
444
+ highlightPostTag?: string | undefined;
445
445
  /**
446
446
  * String used as an ellipsis indicator when a snippet is truncated.
447
447
  */
448
- snippetEllipsisText?: string;
448
+ snippetEllipsisText?: string | undefined;
449
449
  /**
450
450
  * Whether to restrict highlighting and snippeting to items that at least partially matched the search query. By default, all items are highlighted and snippeted.
451
451
  */
452
- restrictHighlightAndSnippetArrays?: boolean;
452
+ restrictHighlightAndSnippetArrays?: boolean | undefined;
453
453
  /**
454
454
  * 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).
455
455
  */
456
- minWordSizefor1Typo?: number;
456
+ minWordSizefor1Typo?: number | undefined;
457
457
  /**
458
458
  * 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).
459
459
  */
460
- minWordSizefor2Typos?: number;
461
- typoTolerance?: TypoTolerance;
460
+ minWordSizefor2Typos?: number | undefined;
461
+ typoTolerance?: TypoTolerance | undefined;
462
462
  /**
463
463
  * 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.
464
464
  */
465
- allowTyposOnNumericTokens?: boolean;
465
+ allowTyposOnNumericTokens?: boolean | undefined;
466
466
  /**
467
467
  * 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.
468
468
  */
469
- disableTypoToleranceOnAttributes?: Array<string>;
470
- ignorePlurals?: IgnorePlurals;
471
- removeStopWords?: RemoveStopWords;
469
+ disableTypoToleranceOnAttributes?: Array<string> | undefined;
470
+ ignorePlurals?: IgnorePlurals | undefined;
471
+ removeStopWords?: RemoveStopWords | undefined;
472
472
  /**
473
473
  * 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/).
474
474
  */
475
- queryLanguages?: Array<SupportedLanguage>;
475
+ queryLanguages?: Array<SupportedLanguage> | undefined;
476
476
  /**
477
477
  * 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).
478
478
  */
479
- decompoundQuery?: boolean;
479
+ decompoundQuery?: boolean | undefined;
480
480
  /**
481
481
  * Whether to enable rules.
482
482
  */
483
- enableRules?: boolean;
483
+ enableRules?: boolean | undefined;
484
484
  /**
485
485
  * Whether to enable Personalization.
486
486
  */
487
- enablePersonalization?: boolean;
488
- queryType?: QueryType;
489
- removeWordsIfNoResults?: RemoveWordsIfNoResults;
487
+ enablePersonalization?: boolean | undefined;
488
+ queryType?: QueryType | undefined;
489
+ removeWordsIfNoResults?: RemoveWordsIfNoResults | undefined;
490
490
  /**
491
491
  * Whether to support phrase matching and excluding words from search queries. Use the `advancedSyntaxFeatures` parameter to control which feature is supported.
492
492
  */
493
- advancedSyntax?: boolean;
494
- optionalWords?: OptionalWords | null;
493
+ advancedSyntax?: boolean | undefined;
494
+ optionalWords?: OptionalWords | null | undefined;
495
495
  /**
496
496
  * 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.
497
497
  */
498
- disableExactOnAttributes?: Array<string>;
499
- exactOnSingleWordQuery?: ExactOnSingleWordQuery;
498
+ disableExactOnAttributes?: Array<string> | undefined;
499
+ exactOnSingleWordQuery?: ExactOnSingleWordQuery | undefined;
500
500
  /**
501
501
  * 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.
502
502
  */
503
- alternativesAsExact?: Array<AlternativesAsExact>;
503
+ alternativesAsExact?: Array<AlternativesAsExact> | undefined;
504
504
  /**
505
505
  * 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.
506
506
  */
507
- advancedSyntaxFeatures?: Array<AdvancedSyntaxFeatures>;
508
- distinct?: Distinct;
507
+ advancedSyntaxFeatures?: Array<AdvancedSyntaxFeatures> | undefined;
508
+ distinct?: Distinct | undefined;
509
509
  /**
510
510
  * 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.
511
511
  */
512
- replaceSynonymsInHighlight?: boolean;
512
+ replaceSynonymsInHighlight?: boolean | undefined;
513
513
  /**
514
514
  * 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.
515
515
  */
516
- minProximity?: number;
516
+ minProximity?: number | undefined;
517
517
  /**
518
518
  * 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.
519
519
  */
520
- responseFields?: Array<string>;
520
+ responseFields?: Array<string> | undefined;
521
521
  /**
522
522
  * Maximum number of facet values to return for each facet.
523
523
  */
524
- maxValuesPerFacet?: number;
524
+ maxValuesPerFacet?: number | undefined;
525
525
  /**
526
526
  * 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/).
527
527
  */
528
- sortFacetValuesBy?: string;
528
+ sortFacetValuesBy?: string | undefined;
529
529
  /**
530
530
  * 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.
531
531
  */
532
- attributeCriteriaComputedByMinProximity?: boolean;
533
- renderingContent?: RenderingContent;
532
+ attributeCriteriaComputedByMinProximity?: boolean | undefined;
533
+ renderingContent?: RenderingContent | undefined;
534
534
  /**
535
535
  * 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.
536
536
  */
537
- enableReRanking?: boolean;
538
- reRankingApplyFilter?: ReRankingApplyFilter | null;
537
+ enableReRanking?: boolean | undefined;
538
+ reRankingApplyFilter?: ReRankingApplyFilter | null | undefined;
539
539
  };
540
540
 
541
541
  /**
@@ -547,7 +547,7 @@ type SearchParamsQuery = {
547
547
  /**
548
548
  * Search query.
549
549
  */
550
- query?: string;
550
+ query?: string | undefined;
551
551
  };
552
552
 
553
553
  /**
@@ -567,8 +567,8 @@ type BaseRecommendRequest = {
567
567
  /**
568
568
  * 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.
569
569
  */
570
- maxRecommendations?: number;
571
- queryParameters?: RecommendSearchParams;
570
+ maxRecommendations?: number | undefined;
571
+ queryParameters?: RecommendSearchParams | undefined;
572
572
  };
573
573
 
574
574
  /**
@@ -599,7 +599,7 @@ type LookingSimilar = {
599
599
  * Unique record identifier.
600
600
  */
601
601
  objectID: string;
602
- fallbackParameters?: FallbackParams;
602
+ fallbackParameters?: FallbackParams | undefined;
603
603
  };
604
604
 
605
605
  type LookingSimilarQuery = BaseRecommendRequest & LookingSimilar;
@@ -615,7 +615,7 @@ type RelatedProducts = {
615
615
  * Unique record identifier.
616
616
  */
617
617
  objectID: string;
618
- fallbackParameters?: FallbackParams;
618
+ fallbackParameters?: FallbackParams | undefined;
619
619
  };
620
620
 
621
621
  type RelatedQuery = BaseRecommendRequest & RelatedProducts;
@@ -631,7 +631,7 @@ type TrendingFacets = {
631
631
  */
632
632
  facetName: string;
633
633
  model: TrendingFacetsModel;
634
- fallbackParameters?: FallbackParams;
634
+ fallbackParameters?: FallbackParams | undefined;
635
635
  };
636
636
 
637
637
  type TrendingFacetsQuery = BaseRecommendRequest & TrendingFacets;
@@ -645,13 +645,13 @@ type TrendingItems = {
645
645
  /**
646
646
  * Facet attribute. To be used in combination with `facetValue`. If specified, only recommendations matching the facet filter will be returned.
647
647
  */
648
- facetName?: string;
648
+ facetName?: string | undefined;
649
649
  /**
650
650
  * Facet value. To be used in combination with `facetName`. If specified, only recommendations matching the facet filter will be returned.
651
651
  */
652
- facetValue?: string;
652
+ facetValue?: string | undefined;
653
653
  model: TrendingItemsModel;
654
- fallbackParameters?: FallbackParams;
654
+ fallbackParameters?: FallbackParams | undefined;
655
655
  };
656
656
 
657
657
  type TrendingItemsQuery = BaseRecommendRequest & TrendingItems;
@@ -675,42 +675,42 @@ type Exhaustive = {
675
675
  /**
676
676
  * 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-).
677
677
  */
678
- facetsCount?: boolean;
678
+ facetsCount?: boolean | undefined;
679
679
  /**
680
680
  * The value is `false` if not all facet values are retrieved.
681
681
  */
682
- facetValues?: boolean;
682
+ facetValues?: boolean | undefined;
683
683
  /**
684
684
  * 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.
685
685
  */
686
- nbHits?: boolean;
686
+ nbHits?: boolean | undefined;
687
687
  /**
688
688
  * 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.
689
689
  */
690
- rulesMatch?: boolean;
690
+ rulesMatch?: boolean | undefined;
691
691
  /**
692
692
  * 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.
693
693
  */
694
- typo?: boolean;
694
+ typo?: boolean | undefined;
695
695
  };
696
696
 
697
697
  type FacetStats = {
698
698
  /**
699
699
  * Minimum value in the results.
700
700
  */
701
- min?: number;
701
+ min?: number | undefined;
702
702
  /**
703
703
  * Maximum value in the results.
704
704
  */
705
- max?: number;
705
+ max?: number | undefined;
706
706
  /**
707
707
  * Average facet value in the results.
708
708
  */
709
- avg?: number;
709
+ avg?: number | undefined;
710
710
  /**
711
711
  * Sum of all values in the results.
712
712
  */
713
- sum?: number;
713
+ sum?: number | undefined;
714
714
  };
715
715
 
716
716
  /**
@@ -744,43 +744,43 @@ type RedirectRuleIndexMetadata = {
744
744
  * [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.
745
745
  */
746
746
  type Redirect = {
747
- index?: Array<RedirectRuleIndexMetadata>;
747
+ index?: Array<RedirectRuleIndexMetadata> | undefined;
748
748
  };
749
749
 
750
750
  type BaseSearchResponse = Record<string, any> & {
751
751
  /**
752
752
  * A/B test ID. This is only included in the response for indices that are part of an A/B test.
753
753
  */
754
- abTestID?: number;
754
+ abTestID?: number | undefined;
755
755
  /**
756
756
  * Variant ID. This is only included in the response for indices that are part of an A/B test.
757
757
  */
758
- abTestVariantID?: number;
758
+ abTestVariantID?: number | undefined;
759
759
  /**
760
760
  * Computed geographical location.
761
761
  */
762
- aroundLatLng?: string;
762
+ aroundLatLng?: string | undefined;
763
763
  /**
764
764
  * Distance from a central coordinate provided by `aroundLatLng`.
765
765
  */
766
- automaticRadius?: string;
767
- exhaustive?: Exhaustive;
766
+ automaticRadius?: string | undefined;
767
+ exhaustive?: Exhaustive | undefined;
768
768
  /**
769
769
  * Rules applied to the query.
770
770
  */
771
- appliedRules?: Array<Record<string, unknown>>;
771
+ appliedRules?: Array<Record<string, unknown>> | undefined;
772
772
  /**
773
773
  * See the `facetsCount` field of the `exhaustive` object in the response.
774
774
  */
775
- exhaustiveFacetsCount?: boolean;
775
+ exhaustiveFacetsCount?: boolean | undefined;
776
776
  /**
777
777
  * See the `nbHits` field of the `exhaustive` object in the response.
778
778
  */
779
- exhaustiveNbHits?: boolean;
779
+ exhaustiveNbHits?: boolean | undefined;
780
780
  /**
781
781
  * See the `typo` field of the `exhaustive` object in the response.
782
782
  */
783
- exhaustiveTypo?: boolean;
783
+ exhaustiveTypo?: boolean | undefined;
784
784
  /**
785
785
  * Facet counts.
786
786
  */
@@ -788,67 +788,67 @@ type BaseSearchResponse = Record<string, any> & {
788
788
  [key: string]: {
789
789
  [key: string]: number;
790
790
  };
791
- };
791
+ } | undefined;
792
792
  /**
793
793
  * Statistics for numerical facets.
794
794
  */
795
795
  facets_stats?: {
796
796
  [key: string]: FacetStats;
797
- };
797
+ } | undefined;
798
798
  /**
799
799
  * Index name used for the query.
800
800
  */
801
- index?: string;
801
+ index?: string | undefined;
802
802
  /**
803
803
  * Index name used for the query. During A/B testing, the targeted index isn\'t always the index used by the query.
804
804
  */
805
- indexUsed?: string;
805
+ indexUsed?: string | undefined;
806
806
  /**
807
807
  * Warnings about the query.
808
808
  */
809
- message?: string;
809
+ message?: string | undefined;
810
810
  /**
811
811
  * Number of hits selected and sorted by the relevant sort algorithm.
812
812
  */
813
- nbSortedHits?: number;
813
+ nbSortedHits?: number | undefined;
814
814
  /**
815
815
  * 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.
816
816
  */
817
- parsedQuery?: string;
817
+ parsedQuery?: string | undefined;
818
818
  /**
819
819
  * Time the server took to process the request, in milliseconds.
820
820
  */
821
- processingTimeMS: number;
821
+ processingTimeMS?: number | undefined;
822
822
  /**
823
823
  * Experimental. List of processing steps and their times, in milliseconds. You can use this list to investigate performance issues.
824
824
  */
825
- processingTimingsMS?: Record<string, unknown>;
825
+ processingTimingsMS?: Record<string, unknown> | undefined;
826
826
  /**
827
827
  * Markup text indicating which parts of the original query have been removed to retrieve a non-empty result set.
828
828
  */
829
- queryAfterRemoval?: string;
830
- redirect?: Redirect;
831
- renderingContent?: RenderingContent;
829
+ queryAfterRemoval?: string | undefined;
830
+ redirect?: Redirect | undefined;
831
+ renderingContent?: RenderingContent | undefined;
832
832
  /**
833
833
  * Time the server took to process the request, in milliseconds.
834
834
  */
835
- serverTimeMS?: number;
835
+ serverTimeMS?: number | undefined;
836
836
  /**
837
837
  * Host name of the server that processed the request.
838
838
  */
839
- serverUsed?: string;
839
+ serverUsed?: string | undefined;
840
840
  /**
841
841
  * An object with custom data. You can store up to 32kB as custom data.
842
842
  */
843
- userData?: any | null;
843
+ userData?: any | null | undefined;
844
844
  /**
845
845
  * Unique identifier for the query. This is used for [click analytics](https://www.algolia.com/doc/guides/analytics/click-analytics/).
846
846
  */
847
- queryID?: string;
847
+ queryID?: string | undefined;
848
848
  /**
849
849
  * Whether automatic events collection is enabled for the application.
850
850
  */
851
- _automaticInsights?: boolean;
851
+ _automaticInsights?: boolean | undefined;
852
852
  };
853
853
 
854
854
  /**
@@ -872,7 +872,7 @@ type HighlightResultOption = {
872
872
  /**
873
873
  * Whether the entire attribute value is highlighted.
874
874
  */
875
- fullyHighlighted?: boolean;
875
+ fullyHighlighted?: boolean | undefined;
876
876
  };
877
877
 
878
878
  type HighlightResult = HighlightResultOption | {
@@ -883,30 +883,30 @@ type MatchedGeoLocation = {
883
883
  /**
884
884
  * Latitude of the matched location.
885
885
  */
886
- lat?: number;
886
+ lat?: number | undefined;
887
887
  /**
888
888
  * Longitude of the matched location.
889
889
  */
890
- lng?: number;
890
+ lng?: number | undefined;
891
891
  /**
892
892
  * Distance between the matched location and the search location (in meters).
893
893
  */
894
- distance?: number;
894
+ distance?: number | undefined;
895
895
  };
896
896
 
897
897
  type Personalization = {
898
898
  /**
899
899
  * The score of the filters.
900
900
  */
901
- filtersScore?: number;
901
+ filtersScore?: number | undefined;
902
902
  /**
903
903
  * The score of the ranking.
904
904
  */
905
- rankingScore?: number;
905
+ rankingScore?: number | undefined;
906
906
  /**
907
907
  * The score of the event.
908
908
  */
909
- score?: number;
909
+ score?: number | undefined;
910
910
  };
911
911
 
912
912
  /**
@@ -916,7 +916,7 @@ type RankingInfo = {
916
916
  /**
917
917
  * Whether a filter matched the query.
918
918
  */
919
- filters?: number;
919
+ filters?: number | undefined;
920
920
  /**
921
921
  * Position of the first matched word in the best matching attribute of the record.
922
922
  */
@@ -928,9 +928,9 @@ type RankingInfo = {
928
928
  /**
929
929
  * Precision used when computing the geo distance, in meters.
930
930
  */
931
- geoPrecision?: number;
932
- matchedGeoLocation?: MatchedGeoLocation;
933
- personalization?: Personalization;
931
+ geoPrecision?: number | undefined;
932
+ matchedGeoLocation?: MatchedGeoLocation | undefined;
933
+ personalization?: Personalization | undefined;
934
934
  /**
935
935
  * Number of exactly matched words.
936
936
  */
@@ -942,11 +942,11 @@ type RankingInfo = {
942
942
  /**
943
943
  * Whether the record was promoted by a rule.
944
944
  */
945
- promoted?: boolean;
945
+ promoted?: boolean | undefined;
946
946
  /**
947
947
  * Number of words between multiple matches in the query plus 1. For single word queries, `proximityDistance` is 0.
948
948
  */
949
- proximityDistance?: number;
949
+ proximityDistance?: number | undefined;
950
950
  /**
951
951
  * Overall ranking of the record, expressed as a single integer. This attribute is internal.
952
952
  */
@@ -954,11 +954,11 @@ type RankingInfo = {
954
954
  /**
955
955
  * Number of matched words.
956
956
  */
957
- words?: number;
957
+ words?: number | undefined;
958
958
  /**
959
959
  * Whether the record is re-ranked.
960
960
  */
961
- promotedByReRanking?: boolean;
961
+ promotedByReRanking?: boolean | undefined;
962
962
  };
963
963
 
964
964
  /**
@@ -989,19 +989,19 @@ type RecommendHit = Record<string, any> & {
989
989
  */
990
990
  _highlightResult?: {
991
991
  [key: string]: HighlightResult;
992
- };
992
+ } | undefined;
993
993
  /**
994
994
  * Snippets that show the context around a matching search query.
995
995
  */
996
996
  _snippetResult?: {
997
997
  [key: string]: SnippetResult;
998
- };
999
- _rankingInfo?: RankingInfo;
1000
- _distinctSeqID?: number;
998
+ } | undefined;
999
+ _rankingInfo?: RankingInfo | undefined;
1000
+ _distinctSeqID?: number | undefined;
1001
1001
  /**
1002
1002
  * Recommendation score.
1003
1003
  */
1004
- _score?: number;
1004
+ _score?: number | undefined;
1005
1005
  };
1006
1006
 
1007
1007
  /**
@@ -1011,7 +1011,7 @@ type TrendingFacetHit = {
1011
1011
  /**
1012
1012
  * Recommendation score.
1013
1013
  */
1014
- _score?: number;
1014
+ _score?: number | undefined;
1015
1015
  /**
1016
1016
  * Facet attribute. To be used in combination with `facetValue`. If specified, only recommendations matching the facet filter will be returned.
1017
1017
  */
@@ -1032,19 +1032,19 @@ type SearchPagination = {
1032
1032
  /**
1033
1033
  * Page of search results to retrieve.
1034
1034
  */
1035
- page?: number;
1035
+ page?: number | undefined;
1036
1036
  /**
1037
1037
  * Number of results (hits).
1038
1038
  */
1039
- nbHits?: number;
1039
+ nbHits?: number | undefined;
1040
1040
  /**
1041
1041
  * Number of pages of results.
1042
1042
  */
1043
- nbPages?: number;
1043
+ nbPages?: number | undefined;
1044
1044
  /**
1045
1045
  * Number of hits per page.
1046
1046
  */
1047
- hitsPerPage?: number;
1047
+ hitsPerPage?: number | undefined;
1048
1048
  };
1049
1049
 
1050
1050
  type RecommendationsResults = BaseSearchResponse & SearchPagination & RecommendationsHits;
@@ -1060,11 +1060,11 @@ type Condition = {
1060
1060
  /**
1061
1061
  * 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/).
1062
1062
  */
1063
- filters?: string;
1063
+ filters?: string | undefined;
1064
1064
  /**
1065
1065
  * An additional restriction that only triggers the rule, when the search has the same value as `ruleContexts` parameter. For example, if `context: mobile`, the rule is only triggered when the search request has a matching `ruleContexts: mobile`. A rule context must only contain alphanumeric characters.
1066
1066
  */
1067
- context?: string;
1067
+ context?: string | undefined;
1068
1068
  };
1069
1069
 
1070
1070
  /**
@@ -1074,7 +1074,7 @@ type HideConsequenceObject = {
1074
1074
  /**
1075
1075
  * Unique record identifier.
1076
1076
  */
1077
- objectID?: string;
1077
+ objectID?: string | undefined;
1078
1078
  };
1079
1079
 
1080
1080
  /**
@@ -1084,11 +1084,11 @@ type AutoFacetFilter = {
1084
1084
  /**
1085
1085
  * Facet attribute.
1086
1086
  */
1087
- facet?: string;
1087
+ facet?: string | undefined;
1088
1088
  /**
1089
1089
  * Whether the filter is negative. If true, recommendations must not have the same value for the `facet` attribute. If false, recommendations must have the same value for the `facet` attribute.
1090
1090
  */
1091
- negative?: boolean;
1091
+ negative?: boolean | undefined;
1092
1092
  };
1093
1093
 
1094
1094
  /**
@@ -1098,15 +1098,15 @@ type ParamsConsequence = {
1098
1098
  /**
1099
1099
  * Filter recommendations that match or don\'t match the same `facet:facet_value` combination as the viewed item.
1100
1100
  */
1101
- automaticFacetFilters?: Array<AutoFacetFilter>;
1101
+ automaticFacetFilters?: Array<AutoFacetFilter> | undefined;
1102
1102
  /**
1103
1103
  * 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/).
1104
1104
  */
1105
- filters?: string;
1105
+ filters?: string | undefined;
1106
1106
  /**
1107
1107
  * Filters to promote or demote records in the search results. Optional filters work like facet filters, but they don\'t exclude records from the search results. Records that match the optional filter rank before records that don\'t match. Matches with higher weights (`<score=N>`) rank before matches with lower weights. If you\'re using a negative filter `facet:-value`, matching records rank after records that don\'t match.
1108
1108
  */
1109
- optionalFilters?: Array<string>;
1109
+ optionalFilters?: Array<string> | undefined;
1110
1110
  };
1111
1111
 
1112
1112
  /**
@@ -1116,11 +1116,11 @@ type PromoteConsequenceObject = {
1116
1116
  /**
1117
1117
  * Unique record identifier.
1118
1118
  */
1119
- objectID?: string;
1119
+ objectID?: string | undefined;
1120
1120
  /**
1121
1121
  * Index in the list of recommendations where to place this item.
1122
1122
  */
1123
- position?: number;
1123
+ position?: number | undefined;
1124
1124
  };
1125
1125
 
1126
1126
  /**
@@ -1130,12 +1130,12 @@ type Consequence = {
1130
1130
  /**
1131
1131
  * Exclude items from recommendations.
1132
1132
  */
1133
- hide?: Array<HideConsequenceObject>;
1133
+ hide?: Array<HideConsequenceObject> | undefined;
1134
1134
  /**
1135
1135
  * Place items at specific positions in the list of recommendations.
1136
1136
  */
1137
- promote?: Array<PromoteConsequenceObject>;
1138
- params?: ParamsConsequence;
1137
+ promote?: Array<PromoteConsequenceObject> | undefined;
1138
+ params?: ParamsConsequence | undefined;
1139
1139
  };
1140
1140
 
1141
1141
  /**
@@ -1145,7 +1145,7 @@ type RuleMetadata = {
1145
1145
  /**
1146
1146
  * Date and time when the object was updated, in RFC 3339 format.
1147
1147
  */
1148
- lastUpdate?: string;
1148
+ lastUpdate?: string | undefined;
1149
1149
  };
1150
1150
 
1151
1151
  type TimeRange = {
@@ -1163,25 +1163,25 @@ type TimeRange = {
1163
1163
  * Recommend rule.
1164
1164
  */
1165
1165
  type RecommendRule = {
1166
- _metadata?: RuleMetadata;
1166
+ _metadata?: RuleMetadata | undefined;
1167
1167
  /**
1168
1168
  * Unique identifier of a rule object.
1169
1169
  */
1170
- objectID?: string;
1171
- condition?: Condition;
1172
- consequence?: Consequence;
1170
+ objectID?: string | undefined;
1171
+ condition?: Condition | undefined;
1172
+ consequence?: Consequence | undefined;
1173
1173
  /**
1174
1174
  * Description of the rule\'s purpose. This can be helpful for display in the Algolia dashboard.
1175
1175
  */
1176
- description?: string;
1176
+ description?: string | undefined;
1177
1177
  /**
1178
1178
  * Indicates whether to enable the rule. If it isn\'t enabled, it isn\'t applied at query time.
1179
1179
  */
1180
- enabled?: boolean;
1180
+ enabled?: boolean | undefined;
1181
1181
  /**
1182
1182
  * Time periods when the rule is active.
1183
1183
  */
1184
- validity?: Array<TimeRange>;
1184
+ validity?: Array<TimeRange> | undefined;
1185
1185
  };
1186
1186
 
1187
1187
  /**
@@ -1226,35 +1226,35 @@ type SearchRecommendRulesParams = {
1226
1226
  /**
1227
1227
  * Search query.
1228
1228
  */
1229
- query?: string;
1229
+ query?: string | undefined;
1230
1230
  /**
1231
1231
  * Only search for rules with matching context.
1232
1232
  */
1233
- context?: string;
1233
+ context?: string | undefined;
1234
1234
  /**
1235
1235
  * Requested page of the API response. Algolia uses `page` and `hitsPerPage` to control how search results are displayed ([paginated](https://www.algolia.com/doc/guides/building-search-ui/ui-and-ux-patterns/pagination/js/)). - `hitsPerPage`: sets the number of search results (_hits_) displayed per page. - `page`: specifies the page number of the search results you want to retrieve. Page numbering starts at 0, so the first page is `page=0`, the second is `page=1`, and so on. For example, to display 10 results per page starting from the third page, set `hitsPerPage` to 10 and `page` to 2.
1236
1236
  */
1237
- page?: number;
1237
+ page?: number | undefined;
1238
1238
  /**
1239
1239
  * Maximum number of hits per page. Algolia uses `page` and `hitsPerPage` to control how search results are displayed ([paginated](https://www.algolia.com/doc/guides/building-search-ui/ui-and-ux-patterns/pagination/js/)). - `hitsPerPage`: sets the number of search results (_hits_) displayed per page. - `page`: specifies the page number of the search results you want to retrieve. Page numbering starts at 0, so the first page is `page=0`, the second is `page=1`, and so on. For example, to display 10 results per page starting from the third page, set `hitsPerPage` to 10 and `page` to 2.
1240
1240
  */
1241
- hitsPerPage?: number;
1241
+ hitsPerPage?: number | undefined;
1242
1242
  /**
1243
1243
  * Whether to only show rules where the value of their `enabled` property matches this parameter. If absent, show all rules, regardless of their `enabled` property.
1244
1244
  */
1245
- enabled?: boolean;
1245
+ enabled?: boolean | undefined;
1246
1246
  /**
1247
1247
  * Filter expression. This only searches for rules matching the filter expression.
1248
1248
  */
1249
- filters?: string;
1249
+ filters?: string | undefined;
1250
1250
  /**
1251
1251
  * Include facets and facet values in the response. Use `[\'*\']` to include all facets.
1252
1252
  */
1253
- facets?: Array<string>;
1253
+ facets?: Array<string> | undefined;
1254
1254
  /**
1255
1255
  * Maximum number of values to return for each facet.
1256
1256
  */
1257
- maxValuesPerFacet?: number;
1257
+ maxValuesPerFacet?: number | undefined;
1258
1258
  };
1259
1259
 
1260
1260
  /**
@@ -1269,14 +1269,14 @@ type BatchRecommendRulesProps = {
1269
1269
  * [Recommend model](https://www.algolia.com/doc/guides/algolia-recommend/overview/#recommend-models).
1270
1270
  */
1271
1271
  model: RecommendModels;
1272
- recommendRule?: Array<RecommendRule>;
1272
+ recommendRule?: Array<RecommendRule> | undefined;
1273
1273
  };
1274
1274
  /**
1275
1275
  * Properties for the `customDelete` method.
1276
1276
  */
1277
1277
  type CustomDeleteProps = {
1278
1278
  /**
1279
- * Path of the endpoint, anything after \"/1\" must be specified.
1279
+ * Path of the endpoint, for example `1/newFeature`.
1280
1280
  */
1281
1281
  path: string;
1282
1282
  /**
@@ -1284,14 +1284,14 @@ type CustomDeleteProps = {
1284
1284
  */
1285
1285
  parameters?: {
1286
1286
  [key: string]: any;
1287
- };
1287
+ } | undefined;
1288
1288
  };
1289
1289
  /**
1290
1290
  * Properties for the `customGet` method.
1291
1291
  */
1292
1292
  type CustomGetProps = {
1293
1293
  /**
1294
- * Path of the endpoint, anything after \"/1\" must be specified.
1294
+ * Path of the endpoint, for example `1/newFeature`.
1295
1295
  */
1296
1296
  path: string;
1297
1297
  /**
@@ -1299,14 +1299,14 @@ type CustomGetProps = {
1299
1299
  */
1300
1300
  parameters?: {
1301
1301
  [key: string]: any;
1302
- };
1302
+ } | undefined;
1303
1303
  };
1304
1304
  /**
1305
1305
  * Properties for the `customPost` method.
1306
1306
  */
1307
1307
  type CustomPostProps = {
1308
1308
  /**
1309
- * Path of the endpoint, anything after \"/1\" must be specified.
1309
+ * Path of the endpoint, for example `1/newFeature`.
1310
1310
  */
1311
1311
  path: string;
1312
1312
  /**
@@ -1314,18 +1314,18 @@ type CustomPostProps = {
1314
1314
  */
1315
1315
  parameters?: {
1316
1316
  [key: string]: any;
1317
- };
1317
+ } | undefined;
1318
1318
  /**
1319
1319
  * Parameters to send with the custom request.
1320
1320
  */
1321
- body?: Record<string, unknown>;
1321
+ body?: Record<string, unknown> | undefined;
1322
1322
  };
1323
1323
  /**
1324
1324
  * Properties for the `customPut` method.
1325
1325
  */
1326
1326
  type CustomPutProps = {
1327
1327
  /**
1328
- * Path of the endpoint, anything after \"/1\" must be specified.
1328
+ * Path of the endpoint, for example `1/newFeature`.
1329
1329
  */
1330
1330
  path: string;
1331
1331
  /**
@@ -1333,11 +1333,11 @@ type CustomPutProps = {
1333
1333
  */
1334
1334
  parameters?: {
1335
1335
  [key: string]: any;
1336
- };
1336
+ } | undefined;
1337
1337
  /**
1338
1338
  * Parameters to send with the custom request.
1339
1339
  */
1340
- body?: Record<string, unknown>;
1340
+ body?: Record<string, unknown> | undefined;
1341
1341
  };
1342
1342
  /**
1343
1343
  * Properties for the `deleteRecommendRule` method.
@@ -1408,10 +1408,10 @@ type SearchRecommendRulesProps = {
1408
1408
  * [Recommend model](https://www.algolia.com/doc/guides/algolia-recommend/overview/#recommend-models).
1409
1409
  */
1410
1410
  model: RecommendModels;
1411
- searchRecommendRulesParams?: SearchRecommendRulesParams;
1411
+ searchRecommendRulesParams?: SearchRecommendRulesParams | undefined;
1412
1412
  };
1413
1413
 
1414
- declare const apiClientVersion = "5.27.0";
1414
+ declare const apiClientVersion = "5.29.0";
1415
1415
  declare function createRecommendClient({ appId: appIdOption, apiKey: apiKeyOption, authMode, algoliaAgents, ...options }: CreateClientOptions): {
1416
1416
  transporter: _algolia_client_common.Transporter;
1417
1417
  /**
@@ -1436,7 +1436,7 @@ declare function createRecommendClient({ appId: appIdOption, apiKey: apiKeyOptio
1436
1436
  * @param segment - The algolia agent (user-agent) segment to add.
1437
1437
  * @param version - The version of the agent.
1438
1438
  */
1439
- addAlgoliaAgent(segment: string, version?: string): void;
1439
+ addAlgoliaAgent(segment: string, version?: string | undefined): void;
1440
1440
  /**
1441
1441
  * Helper method to switch the API key used to authenticate the requests.
1442
1442
  *
@@ -1461,7 +1461,7 @@ declare function createRecommendClient({ appId: appIdOption, apiKey: apiKeyOptio
1461
1461
  /**
1462
1462
  * This method lets you send requests to the Algolia REST API.
1463
1463
  * @param customDelete - The customDelete object.
1464
- * @param customDelete.path - Path of the endpoint, anything after \"/1\" must be specified.
1464
+ * @param customDelete.path - Path of the endpoint, for example `1/newFeature`.
1465
1465
  * @param customDelete.parameters - Query parameters to apply to the current query.
1466
1466
  * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.
1467
1467
  */
@@ -1469,7 +1469,7 @@ declare function createRecommendClient({ appId: appIdOption, apiKey: apiKeyOptio
1469
1469
  /**
1470
1470
  * This method lets you send requests to the Algolia REST API.
1471
1471
  * @param customGet - The customGet object.
1472
- * @param customGet.path - Path of the endpoint, anything after \"/1\" must be specified.
1472
+ * @param customGet.path - Path of the endpoint, for example `1/newFeature`.
1473
1473
  * @param customGet.parameters - Query parameters to apply to the current query.
1474
1474
  * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.
1475
1475
  */
@@ -1477,7 +1477,7 @@ declare function createRecommendClient({ appId: appIdOption, apiKey: apiKeyOptio
1477
1477
  /**
1478
1478
  * This method lets you send requests to the Algolia REST API.
1479
1479
  * @param customPost - The customPost object.
1480
- * @param customPost.path - Path of the endpoint, anything after \"/1\" must be specified.
1480
+ * @param customPost.path - Path of the endpoint, for example `1/newFeature`.
1481
1481
  * @param customPost.parameters - Query parameters to apply to the current query.
1482
1482
  * @param customPost.body - Parameters to send with the custom request.
1483
1483
  * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.
@@ -1486,7 +1486,7 @@ declare function createRecommendClient({ appId: appIdOption, apiKey: apiKeyOptio
1486
1486
  /**
1487
1487
  * This method lets you send requests to the Algolia REST API.
1488
1488
  * @param customPut - The customPut object.
1489
- * @param customPut.path - Path of the endpoint, anything after \"/1\" must be specified.
1489
+ * @param customPut.path - Path of the endpoint, for example `1/newFeature`.
1490
1490
  * @param customPut.parameters - Query parameters to apply to the current query.
1491
1491
  * @param customPut.body - Parameters to send with the custom request.
1492
1492
  * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.
@@ -1555,10 +1555,10 @@ declare function createRecommendClient({ appId: appIdOption, apiKey: apiKeyOptio
1555
1555
  * Error.
1556
1556
  */
1557
1557
  type ErrorBase = Record<string, any> & {
1558
- message?: string;
1558
+ message?: string | undefined;
1559
1559
  };
1560
1560
 
1561
- declare function recommendClient(appId: string, apiKey: string, options?: ClientOptions): RecommendClient;
1561
+ declare function recommendClient(appId: string, apiKey: string, options?: ClientOptions | undefined): RecommendClient;
1562
1562
  type RecommendClient = ReturnType<typeof createRecommendClient>;
1563
1563
 
1564
1564
  export { type AdvancedSyntaxFeatures, type AlternativesAsExact, type AroundPrecision, type AroundRadius, type AroundRadiusAll, type AutoFacetFilter, type Banner, type BannerImage, type BannerImageUrl, type BannerLink, type BaseIndexSettings, type BaseRecommendIndexSettings, type BaseRecommendRequest, type BaseRecommendSearchParams, type BaseSearchResponse, type BatchRecommendRulesProps, type BooleanString, type BoughtTogetherQuery, type Condition, type Consequence, type CustomDeleteProps, type CustomGetProps, type CustomPostProps, type CustomPutProps, type DeleteRecommendRuleProps, type DeletedAtResponse, type Distinct, type ErrorBase, type ExactOnSingleWordQuery, type Exhaustive, type FacetFilters, type FacetOrdering, type FacetStats, type FallbackParams, type FbtModel, type FrequentlyBoughtTogether, type GetRecommendRuleProps, type GetRecommendStatusProps, type GetRecommendTaskResponse, type GetRecommendationsParams, type GetRecommendationsResponse, type HideConsequenceObject, type HighlightResult, type HighlightResultOption, type IgnorePlurals, type IndexSettingsFacets, type InsideBoundingBox, type LegacyGetRecommendationsParams, type LookingSimilar, type LookingSimilarModel, type LookingSimilarQuery, type MatchLevel, type MatchedGeoLocation, type NumericFilters, type OptionalFilters, type OptionalWords, type ParamsConsequence, type Personalization, type PromoteConsequenceObject, type QueryType, type Range, type RankingInfo, type ReRankingApplyFilter, type RecommendClient, type RecommendHit, type RecommendIndexSettings, type RecommendModels, type RecommendRule, type RecommendSearchParams, type RecommendUpdatedAtResponse, 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 RuleMetadata, type SearchPagination, type SearchParamsQuery, type SearchRecommendRulesParams, type SearchRecommendRulesProps, type SearchRecommendRulesResponse, type SnippetResult, type SnippetResultOption, type SortRemainingBy, type SupportedLanguage, type TagFilters, type TaskStatus, type TimeRange, type TrendingFacetHit, type TrendingFacets, type TrendingFacetsModel, type TrendingFacetsQuery, type TrendingItems, type TrendingItemsModel, type TrendingItemsQuery, type TypoTolerance, type TypoToleranceEnum, type Value, type Widgets, apiClientVersion, recommendClient };