Socket
Socket
Sign inDemoInstall

@algolia/client-search

Package Overview
Dependencies
Maintainers
3
Versions
220
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@algolia/client-search - npm Package Compare versions

Comparing version 5.0.0-alpha.106 to 5.0.0-alpha.107

dist/model/searchDictionaryEntriesResponse.d.ts

2

dist/builds/browser.d.ts

@@ -79,3 +79,3 @@ import type { ClientOptions } from '@algolia/client-common';

search<T_4>(searchMethodParams: import("../model").LegacySearchMethodProps | import("../model").SearchMethodParams, requestOptions?: import("@algolia/client-common").RequestOptions | undefined): Promise<import("../model").SearchResponses<T_4>>;
searchDictionaryEntries({ dictionaryName, searchDictionaryEntriesParams, }: import("../model").SearchDictionaryEntriesProps, requestOptions?: import("@algolia/client-common").RequestOptions | undefined): Promise<import("../model").UpdatedAtResponse>;
searchDictionaryEntries({ dictionaryName, searchDictionaryEntriesParams, }: import("../model").SearchDictionaryEntriesProps, requestOptions?: import("@algolia/client-common").RequestOptions | undefined): Promise<import("../model").SearchDictionaryEntriesResponse>;
searchForFacetValues({ indexName, facetName, searchForFacetValuesRequest, }: import("../model").SearchForFacetValuesProps, requestOptions?: import("@algolia/client-common").RequestOptions | undefined): Promise<import("../model").SearchForFacetValuesResponse>;

@@ -82,0 +82,0 @@ searchRules({ indexName, searchRulesParams }: import("../model").SearchRulesProps, requestOptions?: import("@algolia/client-common").RequestOptions | undefined): Promise<import("../model").SearchRulesResponse>;

@@ -97,3 +97,3 @@ import type { ClientOptions } from '@algolia/client-common';

search<T_4>(searchMethodParams: import("../model").LegacySearchMethodProps | import("../model").SearchMethodParams, requestOptions?: import("@algolia/client-common").RequestOptions | undefined): Promise<import("../model").SearchResponses<T_4>>;
searchDictionaryEntries({ dictionaryName, searchDictionaryEntriesParams, }: import("../model").SearchDictionaryEntriesProps, requestOptions?: import("@algolia/client-common").RequestOptions | undefined): Promise<import("../model").UpdatedAtResponse>;
searchDictionaryEntries({ dictionaryName, searchDictionaryEntriesParams, }: import("../model").SearchDictionaryEntriesProps, requestOptions?: import("@algolia/client-common").RequestOptions | undefined): Promise<import("../model").SearchDictionaryEntriesResponse>;
searchForFacetValues({ indexName, facetName, searchForFacetValuesRequest, }: import("../model").SearchForFacetValuesProps, requestOptions?: import("@algolia/client-common").RequestOptions | undefined): Promise<import("../model").SearchForFacetValuesResponse>;

@@ -100,0 +100,0 @@ searchRules({ indexName, searchRulesParams }: import("../model").SearchRulesProps, requestOptions?: import("@algolia/client-common").RequestOptions | undefined): Promise<import("../model").SearchRulesResponse>;

@@ -1,2 +0,2 @@

/*! client-search.umd.js | 5.0.0-alpha.106 | © Algolia, inc. | https://github.com/algolia/algoliasearch-client-javascript */
!function(e,r){"object"==typeof exports&&"undefined"!=typeof module?r(exports):"function"==typeof define&&define.amd?define(["exports"],r):r((e="undefined"!=typeof globalThis?globalThis:e||self)["@algolia/client-search"]={})}(this,(function(e){"use strict";function r({func:e,validate:r,aggregator:t,error:a,timeout:n=(()=>0)}){const s=i=>new Promise(((o,c)=>{e(i).then((e=>(t&&t(e),r(e)?o(e):a&&a.validate(e)?c(new Error(a.message(e))):setTimeout((()=>{s(e).then(o).catch(c)}),n())))).catch((e=>{c(e)}))}));return s()}function t(e){let r;const t=`algolia-client-js-${e.key}`;function a(){return void 0===r&&(r=e.localStorage||window.localStorage),r}function n(){return JSON.parse(a().getItem(t)||"{}")}function s(e){a().setItem(t,JSON.stringify(e))}return{get:(r,t,a={miss:()=>Promise.resolve()})=>Promise.resolve().then((()=>(function(){const r=e.timeToLive?1e3*e.timeToLive:null,t=n(),a=Object.fromEntries(Object.entries(t).filter((([,e])=>void 0!==e.timestamp)));if(s(a),!r)return;s(Object.fromEntries(Object.entries(a).filter((([,e])=>{const t=(new Date).getTime();return!(e.timestamp+r<t)}))))}(),n()[JSON.stringify(r)]))).then((e=>Promise.all([e?e.value:t(),void 0!==e]))).then((([e,r])=>Promise.all([e,r||a.miss(e)]))).then((([e])=>e)),set:(e,r)=>Promise.resolve().then((()=>{const s=n();return s[JSON.stringify(e)]={timestamp:(new Date).getTime(),value:r},a().setItem(t,JSON.stringify(s)),r})),delete:e=>Promise.resolve().then((()=>{const r=n();delete r[JSON.stringify(e)],a().setItem(t,JSON.stringify(r))})),clear:()=>Promise.resolve().then((()=>{a().removeItem(t)}))}}function a(e){const r=[...e.caches],t=r.shift();return void 0===t?{get:(e,r,t={miss:()=>Promise.resolve()})=>r().then((e=>Promise.all([e,t.miss(e)]))).then((([e])=>e)),set:(e,r)=>Promise.resolve(r),delete:e=>Promise.resolve(),clear:()=>Promise.resolve()}:{get:(e,n,s={miss:()=>Promise.resolve()})=>t.get(e,n,s).catch((()=>a({caches:r}).get(e,n,s))),set:(e,n)=>t.set(e,n).catch((()=>a({caches:r}).set(e,n))),delete:e=>t.delete(e).catch((()=>a({caches:r}).delete(e))),clear:()=>t.clear().catch((()=>a({caches:r}).clear()))}}function n(e={serializable:!0}){let r={};return{get(t,a,n={miss:()=>Promise.resolve()}){const s=JSON.stringify(t);if(s in r)return Promise.resolve(e.serializable?JSON.parse(r[s]):r[s]);const i=a();return i.then((e=>n.miss(e))).then((()=>i))},set:(t,a)=>(r[JSON.stringify(t)]=e.serializable?JSON.stringify(a):a,Promise.resolve(a)),delete:e=>(delete r[JSON.stringify(e)],Promise.resolve()),clear:()=>(r={},Promise.resolve())}}const s=12e4;function i(e,r="up"){const t=Date.now();return{...e,status:r,lastUpdate:t,isUp:function(){return"up"===r||Date.now()-t>s},isTimedOut:function(){return"timed out"===r&&Date.now()-t<=s}}}function o(e){var r=function(e,r){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var a=t.call(e,r||"default");if("object"!=typeof a)return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===r?String:Number)(e)}(e,"string");return"symbol"==typeof r?r:String(r)}function c(e,r,t){return(r=o(r))in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}class d extends Error{constructor(e,r){super(e),c(this,"name","AlgoliaError"),r&&(this.name=r)}}class u extends d{constructor(e,r,t){super(e,t),c(this,"stackTrace",void 0),this.stackTrace=r}}class m extends u{constructor(e){super("Unreachable hosts - your application id may be incorrect. If the error persists, please create a ticket at https://support.algolia.com/ sharing steps we can use to reproduce the issue.",e,"RetryError")}}class h extends u{constructor(e,r,t,a="ApiError"){super(e,t,a),c(this,"status",void 0),this.status=r}}class l extends d{constructor(e,r){super(e,"DeserializationError"),c(this,"response",void 0),this.response=r}}class p extends h{constructor(e,r,t,a){super(e,r,a,"DetailedApiError"),c(this,"error",void 0),this.error=t}}function w(e,r,t){const a=function(e){const r=e=>"[object Object]"===Object.prototype.toString.call(e)||"[object Array]"===Object.prototype.toString.call(e);return Object.keys(e).map((t=>`${t}=${encodeURIComponent(r(e[t])?JSON.stringify(e[t]):e[t]).replaceAll("+","%20")}`)).join("&")}(t);let n=`${e.protocol}://${e.url}${e.port?`:${e.port}`:""}/${"/"===r.charAt(0)?r.substring(1):r}`;return a.length&&(n+=`?${a}`),n}function g(e){const r=e.request.headers["x-algolia-api-key"]?{"x-algolia-api-key":"*****"}:{};return{...e,request:{...e.request,headers:{...e.request.headers,...r}}}}function y({hosts:e,hostsCache:r,baseHeaders:t,baseQueryParameters:a,algoliaAgent:n,timeouts:s,requester:o,requestsCache:c,responsesCache:d}){async function u(c,d,u=!0){const y=[],P=function(e,r){if("GET"===e.method||void 0===e.data&&void 0===r.data)return;const t=Array.isArray(e.data)?e.data:{...e.data,...r.data};return JSON.stringify(t)}(c,d),q=function(e,r,t){const a={Accept:"application/json",...e,...r,...t},n={};return Object.keys(a).forEach((e=>{const r=a[e];n[e.toLowerCase()]=r})),n}(t,c.headers,d.headers),f="GET"===c.method?{...c.data,...d.data}:{},x={...a,...c.queryParameters,...f};if(n.value&&(x["x-algolia-agent"]=n.value),d&&d.queryParameters)for(const e of Object.keys(d.queryParameters))d.queryParameters[e]&&"[object Object]"!==Object.prototype.toString.call(d.queryParameters[e])?x[e]=d.queryParameters[e].toString():x[e]=d.queryParameters[e];let b=0;const E=async(e,t)=>{const a=e.pop();if(void 0===a)throw new m(function(e){return e.map((e=>g(e)))}(y));let n=d.timeout;void 0===n&&(n=u?s.read:s.write);const f={data:P,headers:q,method:c.method,url:w(a,c.path,x),connectTimeout:t(b,s.connect),responseTimeout:t(b,n)},I=r=>{const t={request:f,response:r,host:a,triesLeft:e.length};return y.push(t),t},N=await o.send(f);if(function({isTimedOut:e,status:r}){return e||function({isTimedOut:e,status:r}){return!e&&0==~~r}({isTimedOut:e,status:r})||2!=~~(r/100)&&4!=~~(r/100)}(N)){const n=I(N);return N.isTimedOut&&b++,console.log("Retryable failure",g(n)),await r.set(a,i(a,N.isTimedOut?"timed out":"down")),E(e,t)}if(function({status:e}){return 2==~~(e/100)}(N))return function(e){try{return JSON.parse(e.content)}catch(r){throw new l(r.message,e)}}(N);throw I(N),function({content:e,status:r},t){try{const a=JSON.parse(e);return"error"in a?new p(a.message,r,a.error,t):new h(a.message,r,t)}catch(e){}return new h(e,r,t)}(N,y)},I=e.filter((e=>"readWrite"===e.accept||(u?"read"===e.accept:"write"===e.accept))),N=await async function(e){const t=await Promise.all(e.map((e=>r.get(e,(()=>Promise.resolve(i(e))))))),a=t.filter((e=>e.isUp())),n=t.filter((e=>e.isTimedOut())),s=[...a,...n];return{hosts:s.length>0?s:e,getTimeout:(e,r)=>(0===n.length&&0===e?1:n.length+3+e)*r}}(I);return E([...N.hosts].reverse(),N.getTimeout)}return{hostsCache:r,requester:o,timeouts:s,algoliaAgent:n,baseHeaders:t,baseQueryParameters:a,hosts:e,request:function(e,r={}){const n=e.useReadTransporter||"GET"===e.method;if(!n)return u(e,r,n);const s=()=>u(e,r);if(!0!==(r.cacheable||e.cacheable))return s();const i={request:e,requestOptions:r,transporter:{queryParameters:a,headers:t}};return d.get(i,(()=>c.get(i,(()=>c.set(i,s()).then((e=>Promise.all([c.delete(i),e])),(e=>Promise.all([c.delete(i),Promise.reject(e)]))).then((([e,r])=>r))))),{miss:e=>d.set(i,e)})},requestsCache:c,responsesCache:d}}function P({algoliaAgents:e,client:r,version:t}){const a=function(e){const r={value:`Algolia for JavaScript (${e})`,add(e){const t=`; ${e.segment}${void 0!==e.version?` (${e.version})`:""}`;return-1===r.value.indexOf(t)&&(r.value=`${r.value}${t}`),r}};return r}(t).add({segment:r,version:t});return e.forEach((e=>a.add(e))),a}const q="5.0.0-alpha.106";function f(e){return[{url:`${e}-dsn.algolia.net`,accept:"read",protocol:"https"},{url:`${e}.algolia.net`,accept:"write",protocol:"https"}].concat(function(e){const r=e;for(let t=e.length-1;t>0;t--){const a=Math.floor(Math.random()*(t+1)),n=e[t];r[t]=e[a],r[a]=n}return r}([{url:`${e}-1.algolianet.com`,accept:"readWrite",protocol:"https"},{url:`${e}-2.algolianet.com`,accept:"readWrite",protocol:"https"},{url:`${e}-3.algolianet.com`,accept:"readWrite",protocol:"https"}]))}e.apiClientVersion=q,e.searchClient=function(e,s,i){if(!e||"string"!=typeof e)throw new Error("`appId` is missing.");if(!s||"string"!=typeof s)throw new Error("`apiKey` is missing.");return function({appId:e,apiKey:t,authMode:a,algoliaAgents:n,...s}){const i=function(e,r,t="WithinHeaders"){const a={"x-algolia-api-key":r,"x-algolia-application-id":e};return{headers:()=>"WithinHeaders"===t?a:{},queryParameters:()=>"WithinQueryParameters"===t?a:{}}}(e,t,a),o=y({hosts:f(e),...s,algoliaAgent:P({algoliaAgents:n,client:"Search",version:q}),baseHeaders:{"content-type":"text/plain",...i.headers(),...s.baseHeaders},baseQueryParameters:{...i.queryParameters(),...s.baseQueryParameters}});return{transporter:o,appId:e,clearCache:()=>Promise.all([o.requestsCache.clear(),o.responsesCache.clear()]).then((()=>{})),get _ua(){return o.algoliaAgent.value},addAlgoliaAgent(e,r){o.algoliaAgent.add({segment:e,version:r})},waitForTask({indexName:e,taskID:t,maxRetries:a=50,timeout:n=(e=>Math.min(200*e,5e3))},s){let i=0;return r({func:()=>this.getTask({indexName:e,taskID:t},s),validate:e=>"published"===e.status,aggregator:()=>i+=1,error:{validate:()=>i>=a,message:()=>`The maximum number of retries exceeded. (${i}/${a})`},timeout:()=>n(i)})},waitForApiKey({operation:e,key:t,apiKey:a,maxRetries:n=50,timeout:s=(e=>Math.min(200*e,5e3))},i){let o=0;const c={aggregator:()=>o+=1,error:{validate:()=>o>=n,message:()=>`The maximum number of retries exceeded. (${o}/${n})`},timeout:()=>s(o)};if("update"===e){if(!a)throw new Error("`apiKey` is required when waiting for an `update` operation.");return r({...c,func:()=>this.getApiKey({key:t},i),validate:e=>{for(const r of Object.keys(a)){const t=a[r],n=e[r];if(Array.isArray(t)&&Array.isArray(n)){if(t.length!==n.length||t.some(((e,r)=>e!==n[r])))return!1}else if(t!==n)return!1}return!0}})}return r({...c,func:()=>this.getApiKey({key:t},i).catch((e=>e)),validate:r=>"add"===e?404!==r.status:404===r.status})},browseObjects({indexName:e,browseParams:t,...a},n){return r({func:r=>this.browse({indexName:e,browseParams:{cursor:r?r.cursor:void 0,...t}},n),validate:e=>void 0===e.cursor,...a})},browseRules({indexName:e,searchRulesParams:t,...a},n){const s={hitsPerPage:1e3,...t};return r({func:r=>this.searchRules({indexName:e,searchRulesParams:{...s,page:r?r.page+1:s.page||0}},n),validate:e=>e.nbHits<s.hitsPerPage,...a})},browseSynonyms({indexName:e,searchSynonymsParams:t,...a},n){const s={page:0,...t,hitsPerPage:1e3};return r({func:r=>{const t=this.searchSynonyms({indexName:e,searchSynonymsParams:{...s,page:s.page}},n);return s.page+=1,t},validate:e=>e.nbHits<s.hitsPerPage,...a})},searchForHits(e,r){return this.search(e,r)},searchForFacets(e,r){return this.search(e,r)},async chunkedBatch({indexName:e,objects:r,action:t="addObject",waitForTasks:a,batchSize:n=1e3},s){let i=[];const o=[];for(const[a,c]of r.entries())i.push({action:t,body:c}),a%n==0&&(o.push(await this.batch({indexName:e,batchWriteParams:{requests:i}},s)),i=[]);if(a)for(const r of o)await this.waitForTask({indexName:e,taskID:r.taskID});return o},async replaceAllObjects({indexName:e,objects:r,batchSize:t},a){const n=`${e}_tmp_${Math.random().toString(36).substring(7)}`,s=await this.operationIndex({indexName:e,operationIndexParams:{operation:"copy",destination:n,scope:["settings","rules","synonyms"]}},a);await this.waitForTask({indexName:e,taskID:s.taskID});const i=await this.chunkedBatch({indexName:n,objects:r,waitForTasks:!0,batchSize:t},a),o=await this.operationIndex({indexName:n,operationIndexParams:{operation:"move",destination:e}},a);return await this.waitForTask({indexName:e,taskID:o.taskID}),{copyOperationResponse:s,batchResponses:i,moveOperationResponse:o}},addApiKey(e,r){if(!e)throw new Error("Parameter `apiKey` is required when calling `addApiKey`.");if(!e.acl)throw new Error("Parameter `apiKey.acl` is required when calling `addApiKey`.");const t={method:"POST",path:"/1/keys",queryParameters:{},headers:{},data:e};return o.request(t,r)},addOrUpdateObject({indexName:e,objectID:r,body:t},a){if(!e)throw new Error("Parameter `indexName` is required when calling `addOrUpdateObject`.");if(!r)throw new Error("Parameter `objectID` is required when calling `addOrUpdateObject`.");if(!t)throw new Error("Parameter `body` is required when calling `addOrUpdateObject`.");const n={method:"PUT",path:"/1/indexes/{indexName}/{objectID}".replace("{indexName}",encodeURIComponent(e)).replace("{objectID}",encodeURIComponent(r)),queryParameters:{},headers:{},data:t};return o.request(n,a)},appendSource(e,r){if(!e)throw new Error("Parameter `source` is required when calling `appendSource`.");if(!e.source)throw new Error("Parameter `source.source` is required when calling `appendSource`.");const t={method:"POST",path:"/1/security/sources/append",queryParameters:{},headers:{},data:e};return o.request(t,r)},assignUserId({xAlgoliaUserID:e,assignUserIdParams:r},t){if(!e)throw new Error("Parameter `xAlgoliaUserID` is required when calling `assignUserId`.");if(!r)throw new Error("Parameter `assignUserIdParams` is required when calling `assignUserId`.");if(!r.cluster)throw new Error("Parameter `assignUserIdParams.cluster` is required when calling `assignUserId`.");const a={};void 0!==e&&(a["X-Algolia-User-ID"]=e.toString());const n={method:"POST",path:"/1/clusters/mapping",queryParameters:{},headers:a,data:r};return o.request(n,t)},batch({indexName:e,batchWriteParams:r},t){if(!e)throw new Error("Parameter `indexName` is required when calling `batch`.");if(!r)throw new Error("Parameter `batchWriteParams` is required when calling `batch`.");if(!r.requests)throw new Error("Parameter `batchWriteParams.requests` is required when calling `batch`.");const a={method:"POST",path:"/1/indexes/{indexName}/batch".replace("{indexName}",encodeURIComponent(e)),queryParameters:{},headers:{},data:r};return o.request(a,t)},batchAssignUserIds({xAlgoliaUserID:e,batchAssignUserIdsParams:r},t){if(!e)throw new Error("Parameter `xAlgoliaUserID` is required when calling `batchAssignUserIds`.");if(!r)throw new Error("Parameter `batchAssignUserIdsParams` is required when calling `batchAssignUserIds`.");if(!r.cluster)throw new Error("Parameter `batchAssignUserIdsParams.cluster` is required when calling `batchAssignUserIds`.");if(!r.users)throw new Error("Parameter `batchAssignUserIdsParams.users` is required when calling `batchAssignUserIds`.");const a={};void 0!==e&&(a["X-Algolia-User-ID"]=e.toString());const n={method:"POST",path:"/1/clusters/mapping/batch",queryParameters:{},headers:a,data:r};return o.request(n,t)},batchDictionaryEntries({dictionaryName:e,batchDictionaryEntriesParams:r},t){if(!e)throw new Error("Parameter `dictionaryName` is required when calling `batchDictionaryEntries`.");if(!r)throw new Error("Parameter `batchDictionaryEntriesParams` is required when calling `batchDictionaryEntries`.");if(!r.requests)throw new Error("Parameter `batchDictionaryEntriesParams.requests` is required when calling `batchDictionaryEntries`.");const a={method:"POST",path:"/1/dictionaries/{dictionaryName}/batch".replace("{dictionaryName}",encodeURIComponent(e)),queryParameters:{},headers:{},data:r};return o.request(a,t)},browse({indexName:e,browseParams:r},t){if(!e)throw new Error("Parameter `indexName` is required when calling `browse`.");const a={method:"POST",path:"/1/indexes/{indexName}/browse".replace("{indexName}",encodeURIComponent(e)),queryParameters:{},headers:{},data:r||{}};return o.request(a,t)},clearObjects({indexName:e},r){if(!e)throw new Error("Parameter `indexName` is required when calling `clearObjects`.");const t={method:"POST",path:"/1/indexes/{indexName}/clear".replace("{indexName}",encodeURIComponent(e)),queryParameters:{},headers:{}};return o.request(t,r)},clearRules({indexName:e,forwardToReplicas:r},t){if(!e)throw new Error("Parameter `indexName` is required when calling `clearRules`.");const a="/1/indexes/{indexName}/rules/clear".replace("{indexName}",encodeURIComponent(e)),n={};void 0!==r&&(n.forwardToReplicas=r.toString());const s={method:"POST",path:a,queryParameters:n,headers:{}};return o.request(s,t)},clearSynonyms({indexName:e,forwardToReplicas:r},t){if(!e)throw new Error("Parameter `indexName` is required when calling `clearSynonyms`.");const a="/1/indexes/{indexName}/synonyms/clear".replace("{indexName}",encodeURIComponent(e)),n={};void 0!==r&&(n.forwardToReplicas=r.toString());const s={method:"POST",path:a,queryParameters:n,headers:{}};return o.request(s,t)},customDelete({path:e,parameters:r},t){if(!e)throw new Error("Parameter `path` is required when calling `customDelete`.");const a={method:"DELETE",path:"/1{path}".replace("{path}",e),queryParameters:r||{},headers:{}};return o.request(a,t)},customGet({path:e,parameters:r},t){if(!e)throw new Error("Parameter `path` is required when calling `customGet`.");const a={method:"GET",path:"/1{path}".replace("{path}",e),queryParameters:r||{},headers:{}};return o.request(a,t)},customPost({path:e,parameters:r,body:t},a){if(!e)throw new Error("Parameter `path` is required when calling `customPost`.");const n={method:"POST",path:"/1{path}".replace("{path}",e),queryParameters:r||{},headers:{},data:t||{}};return o.request(n,a)},customPut({path:e,parameters:r,body:t},a){if(!e)throw new Error("Parameter `path` is required when calling `customPut`.");const n={method:"PUT",path:"/1{path}".replace("{path}",e),queryParameters:r||{},headers:{},data:t||{}};return o.request(n,a)},deleteApiKey({key:e},r){if(!e)throw new Error("Parameter `key` is required when calling `deleteApiKey`.");const t={method:"DELETE",path:"/1/keys/{key}".replace("{key}",encodeURIComponent(e)),queryParameters:{},headers:{}};return o.request(t,r)},deleteBy({indexName:e,deleteByParams:r},t){if(!e)throw new Error("Parameter `indexName` is required when calling `deleteBy`.");if(!r)throw new Error("Parameter `deleteByParams` is required when calling `deleteBy`.");const a={method:"POST",path:"/1/indexes/{indexName}/deleteByQuery".replace("{indexName}",encodeURIComponent(e)),queryParameters:{},headers:{},data:r};return o.request(a,t)},deleteIndex({indexName:e},r){if(!e)throw new Error("Parameter `indexName` is required when calling `deleteIndex`.");const t={method:"DELETE",path:"/1/indexes/{indexName}".replace("{indexName}",encodeURIComponent(e)),queryParameters:{},headers:{}};return o.request(t,r)},deleteObject({indexName:e,objectID:r},t){if(!e)throw new Error("Parameter `indexName` is required when calling `deleteObject`.");if(!r)throw new Error("Parameter `objectID` is required when calling `deleteObject`.");const a={method:"DELETE",path:"/1/indexes/{indexName}/{objectID}".replace("{indexName}",encodeURIComponent(e)).replace("{objectID}",encodeURIComponent(r)),queryParameters:{},headers:{}};return o.request(a,t)},deleteRule({indexName:e,objectID:r,forwardToReplicas:t},a){if(!e)throw new Error("Parameter `indexName` is required when calling `deleteRule`.");if(!r)throw new Error("Parameter `objectID` is required when calling `deleteRule`.");const n="/1/indexes/{indexName}/rules/{objectID}".replace("{indexName}",encodeURIComponent(e)).replace("{objectID}",encodeURIComponent(r)),s={};void 0!==t&&(s.forwardToReplicas=t.toString());const i={method:"DELETE",path:n,queryParameters:s,headers:{}};return o.request(i,a)},deleteSource({source:e},r){if(!e)throw new Error("Parameter `source` is required when calling `deleteSource`.");const t={method:"DELETE",path:"/1/security/sources/{source}".replace("{source}",encodeURIComponent(e)),queryParameters:{},headers:{}};return o.request(t,r)},deleteSynonym({indexName:e,objectID:r,forwardToReplicas:t},a){if(!e)throw new Error("Parameter `indexName` is required when calling `deleteSynonym`.");if(!r)throw new Error("Parameter `objectID` is required when calling `deleteSynonym`.");const n="/1/indexes/{indexName}/synonyms/{objectID}".replace("{indexName}",encodeURIComponent(e)).replace("{objectID}",encodeURIComponent(r)),s={};void 0!==t&&(s.forwardToReplicas=t.toString());const i={method:"DELETE",path:n,queryParameters:s,headers:{}};return o.request(i,a)},getApiKey({key:e},r){if(!e)throw new Error("Parameter `key` is required when calling `getApiKey`.");const t={method:"GET",path:"/1/keys/{key}".replace("{key}",encodeURIComponent(e)),queryParameters:{},headers:{}};return o.request(t,r)},getDictionaryLanguages(e){const r={method:"GET",path:"/1/dictionaries/*/languages",queryParameters:{},headers:{}};return o.request(r,e)},getDictionarySettings(e){const r={method:"GET",path:"/1/dictionaries/*/settings",queryParameters:{},headers:{}};return o.request(r,e)},getLogs({offset:e,length:r,indexName:t,type:a}={},n=void 0){const s={};void 0!==e&&(s.offset=e.toString()),void 0!==r&&(s.length=r.toString()),void 0!==t&&(s.indexName=t.toString()),void 0!==a&&(s.type=a.toString());const i={method:"GET",path:"/1/logs",queryParameters:s,headers:{}};return o.request(i,n)},getObject({indexName:e,objectID:r,attributesToRetrieve:t},a){if(!e)throw new Error("Parameter `indexName` is required when calling `getObject`.");if(!r)throw new Error("Parameter `objectID` is required when calling `getObject`.");const n="/1/indexes/{indexName}/{objectID}".replace("{indexName}",encodeURIComponent(e)).replace("{objectID}",encodeURIComponent(r)),s={};void 0!==t&&(s.attributesToRetrieve=t.toString());const i={method:"GET",path:n,queryParameters:s,headers:{}};return o.request(i,a)},getObjects(e,r){if(!e)throw new Error("Parameter `getObjectsParams` is required when calling `getObjects`.");if(!e.requests)throw new Error("Parameter `getObjectsParams.requests` is required when calling `getObjects`.");const t={method:"POST",path:"/1/indexes/*/objects",queryParameters:{},headers:{},data:e,useReadTransporter:!0,cacheable:!0};return o.request(t,r)},getRule({indexName:e,objectID:r},t){if(!e)throw new Error("Parameter `indexName` is required when calling `getRule`.");if(!r)throw new Error("Parameter `objectID` is required when calling `getRule`.");const a={method:"GET",path:"/1/indexes/{indexName}/rules/{objectID}".replace("{indexName}",encodeURIComponent(e)).replace("{objectID}",encodeURIComponent(r)),queryParameters:{},headers:{}};return o.request(a,t)},getSettings({indexName:e},r){if(!e)throw new Error("Parameter `indexName` is required when calling `getSettings`.");const t={method:"GET",path:"/1/indexes/{indexName}/settings".replace("{indexName}",encodeURIComponent(e)),queryParameters:{},headers:{}};return o.request(t,r)},getSources(e){const r={method:"GET",path:"/1/security/sources",queryParameters:{},headers:{}};return o.request(r,e)},getSynonym({indexName:e,objectID:r},t){if(!e)throw new Error("Parameter `indexName` is required when calling `getSynonym`.");if(!r)throw new Error("Parameter `objectID` is required when calling `getSynonym`.");const a={method:"GET",path:"/1/indexes/{indexName}/synonyms/{objectID}".replace("{indexName}",encodeURIComponent(e)).replace("{objectID}",encodeURIComponent(r)),queryParameters:{},headers:{}};return o.request(a,t)},getTask({indexName:e,taskID:r},t){if(!e)throw new Error("Parameter `indexName` is required when calling `getTask`.");if(!r)throw new Error("Parameter `taskID` is required when calling `getTask`.");const a={method:"GET",path:"/1/indexes/{indexName}/task/{taskID}".replace("{indexName}",encodeURIComponent(e)).replace("{taskID}",encodeURIComponent(r)),queryParameters:{},headers:{}};return o.request(a,t)},getTopUserIds(e){const r={method:"GET",path:"/1/clusters/mapping/top",queryParameters:{},headers:{}};return o.request(r,e)},getUserId({userID:e},r){if(!e)throw new Error("Parameter `userID` is required when calling `getUserId`.");const t={method:"GET",path:"/1/clusters/mapping/{userID}".replace("{userID}",encodeURIComponent(e)),queryParameters:{},headers:{}};return o.request(t,r)},hasPendingMappings({getClusters:e}={},r=void 0){const t={};void 0!==e&&(t.getClusters=e.toString());const a={method:"GET",path:"/1/clusters/mapping/pending",queryParameters:t,headers:{}};return o.request(a,r)},listApiKeys(e){const r={method:"GET",path:"/1/keys",queryParameters:{},headers:{}};return o.request(r,e)},listClusters(e){const r={method:"GET",path:"/1/clusters",queryParameters:{},headers:{}};return o.request(r,e)},listIndices({page:e,hitsPerPage:r}={},t=void 0){const a={};void 0!==e&&(a.page=e.toString()),void 0!==r&&(a.hitsPerPage=r.toString());const n={method:"GET",path:"/1/indexes",queryParameters:a,headers:{}};return o.request(n,t)},listUserIds({page:e,hitsPerPage:r}={},t=void 0){const a={};void 0!==e&&(a.page=e.toString()),void 0!==r&&(a.hitsPerPage=r.toString());const n={method:"GET",path:"/1/clusters/mapping",queryParameters:a,headers:{}};return o.request(n,t)},multipleBatch(e,r){if(!e)throw new Error("Parameter `batchParams` is required when calling `multipleBatch`.");if(!e.requests)throw new Error("Parameter `batchParams.requests` is required when calling `multipleBatch`.");const t={method:"POST",path:"/1/indexes/*/batch",queryParameters:{},headers:{},data:e};return o.request(t,r)},operationIndex({indexName:e,operationIndexParams:r},t){if(!e)throw new Error("Parameter `indexName` is required when calling `operationIndex`.");if(!r)throw new Error("Parameter `operationIndexParams` is required when calling `operationIndex`.");if(!r.operation)throw new Error("Parameter `operationIndexParams.operation` is required when calling `operationIndex`.");if(!r.destination)throw new Error("Parameter `operationIndexParams.destination` is required when calling `operationIndex`.");const a={method:"POST",path:"/1/indexes/{indexName}/operation".replace("{indexName}",encodeURIComponent(e)),queryParameters:{},headers:{},data:r};return o.request(a,t)},partialUpdateObject({indexName:e,objectID:r,attributesToUpdate:t,createIfNotExists:a},n){if(!e)throw new Error("Parameter `indexName` is required when calling `partialUpdateObject`.");if(!r)throw new Error("Parameter `objectID` is required when calling `partialUpdateObject`.");if(!t)throw new Error("Parameter `attributesToUpdate` is required when calling `partialUpdateObject`.");const s="/1/indexes/{indexName}/{objectID}/partial".replace("{indexName}",encodeURIComponent(e)).replace("{objectID}",encodeURIComponent(r)),i={};void 0!==a&&(i.createIfNotExists=a.toString());const c={method:"POST",path:s,queryParameters:i,headers:{},data:t};return o.request(c,n)},removeUserId({userID:e},r){if(!e)throw new Error("Parameter `userID` is required when calling `removeUserId`.");const t={method:"DELETE",path:"/1/clusters/mapping/{userID}".replace("{userID}",encodeURIComponent(e)),queryParameters:{},headers:{}};return o.request(t,r)},replaceSources({source:e},r){if(!e)throw new Error("Parameter `source` is required when calling `replaceSources`.");const t={method:"PUT",path:"/1/security/sources",queryParameters:{},headers:{},data:e};return o.request(t,r)},restoreApiKey({key:e},r){if(!e)throw new Error("Parameter `key` is required when calling `restoreApiKey`.");const t={method:"POST",path:"/1/keys/{key}/restore".replace("{key}",encodeURIComponent(e)),queryParameters:{},headers:{}};return o.request(t,r)},saveObject({indexName:e,body:r},t){if(!e)throw new Error("Parameter `indexName` is required when calling `saveObject`.");if(!r)throw new Error("Parameter `body` is required when calling `saveObject`.");const a={method:"POST",path:"/1/indexes/{indexName}".replace("{indexName}",encodeURIComponent(e)),queryParameters:{},headers:{},data:r};return o.request(a,t)},saveRule({indexName:e,objectID:r,rule:t,forwardToReplicas:a},n){if(!e)throw new Error("Parameter `indexName` is required when calling `saveRule`.");if(!r)throw new Error("Parameter `objectID` is required when calling `saveRule`.");if(!t)throw new Error("Parameter `rule` is required when calling `saveRule`.");if(!t.objectID)throw new Error("Parameter `rule.objectID` is required when calling `saveRule`.");const s="/1/indexes/{indexName}/rules/{objectID}".replace("{indexName}",encodeURIComponent(e)).replace("{objectID}",encodeURIComponent(r)),i={};void 0!==a&&(i.forwardToReplicas=a.toString());const c={method:"PUT",path:s,queryParameters:i,headers:{},data:t};return o.request(c,n)},saveRules({indexName:e,rules:r,forwardToReplicas:t,clearExistingRules:a},n){if(!e)throw new Error("Parameter `indexName` is required when calling `saveRules`.");if(!r)throw new Error("Parameter `rules` is required when calling `saveRules`.");const s="/1/indexes/{indexName}/rules/batch".replace("{indexName}",encodeURIComponent(e)),i={};void 0!==t&&(i.forwardToReplicas=t.toString()),void 0!==a&&(i.clearExistingRules=a.toString());const c={method:"POST",path:s,queryParameters:i,headers:{},data:r};return o.request(c,n)},saveSynonym({indexName:e,objectID:r,synonymHit:t,forwardToReplicas:a},n){if(!e)throw new Error("Parameter `indexName` is required when calling `saveSynonym`.");if(!r)throw new Error("Parameter `objectID` is required when calling `saveSynonym`.");if(!t)throw new Error("Parameter `synonymHit` is required when calling `saveSynonym`.");if(!t.objectID)throw new Error("Parameter `synonymHit.objectID` is required when calling `saveSynonym`.");if(!t.type)throw new Error("Parameter `synonymHit.type` is required when calling `saveSynonym`.");const s="/1/indexes/{indexName}/synonyms/{objectID}".replace("{indexName}",encodeURIComponent(e)).replace("{objectID}",encodeURIComponent(r)),i={};void 0!==a&&(i.forwardToReplicas=a.toString());const c={method:"PUT",path:s,queryParameters:i,headers:{},data:t};return o.request(c,n)},saveSynonyms({indexName:e,synonymHit:r,forwardToReplicas:t,replaceExistingSynonyms:a},n){if(!e)throw new Error("Parameter `indexName` is required when calling `saveSynonyms`.");if(!r)throw new Error("Parameter `synonymHit` is required when calling `saveSynonyms`.");const s="/1/indexes/{indexName}/synonyms/batch".replace("{indexName}",encodeURIComponent(e)),i={};void 0!==t&&(i.forwardToReplicas=t.toString()),void 0!==a&&(i.replaceExistingSynonyms=a.toString());const c={method:"POST",path:s,queryParameters:i,headers:{},data:r};return o.request(c,n)},search(e,r){if(e&&Array.isArray(e)){const r={requests:e.map((({params:e,...r})=>"facet"===r.type?{...r,...e,type:"facet"}:{...r,...e,facet:void 0,maxFacetHits:void 0,facetQuery:void 0}))};e=r}if(!e)throw new Error("Parameter `searchMethodParams` is required when calling `search`.");if(!e.requests)throw new Error("Parameter `searchMethodParams.requests` is required when calling `search`.");const t={method:"POST",path:"/1/indexes/*/queries",queryParameters:{},headers:{},data:e,useReadTransporter:!0,cacheable:!0};return o.request(t,r)},searchDictionaryEntries({dictionaryName:e,searchDictionaryEntriesParams:r},t){if(!e)throw new Error("Parameter `dictionaryName` is required when calling `searchDictionaryEntries`.");if(!r)throw new Error("Parameter `searchDictionaryEntriesParams` is required when calling `searchDictionaryEntries`.");if(!r.query)throw new Error("Parameter `searchDictionaryEntriesParams.query` is required when calling `searchDictionaryEntries`.");const a={method:"POST",path:"/1/dictionaries/{dictionaryName}/search".replace("{dictionaryName}",encodeURIComponent(e)),queryParameters:{},headers:{},data:r,useReadTransporter:!0,cacheable:!0};return o.request(a,t)},searchForFacetValues({indexName:e,facetName:r,searchForFacetValuesRequest:t},a){if(!e)throw new Error("Parameter `indexName` is required when calling `searchForFacetValues`.");if(!r)throw new Error("Parameter `facetName` is required when calling `searchForFacetValues`.");const n={method:"POST",path:"/1/indexes/{indexName}/facets/{facetName}/query".replace("{indexName}",encodeURIComponent(e)).replace("{facetName}",encodeURIComponent(r)),queryParameters:{},headers:{},data:t||{},useReadTransporter:!0,cacheable:!0};return o.request(n,a)},searchRules({indexName:e,searchRulesParams:r},t){if(!e)throw new Error("Parameter `indexName` is required when calling `searchRules`.");const a={method:"POST",path:"/1/indexes/{indexName}/rules/search".replace("{indexName}",encodeURIComponent(e)),queryParameters:{},headers:{},data:r||{},useReadTransporter:!0,cacheable:!0};return o.request(a,t)},searchSingleIndex({indexName:e,searchParams:r},t){if(!e)throw new Error("Parameter `indexName` is required when calling `searchSingleIndex`.");const a={method:"POST",path:"/1/indexes/{indexName}/query".replace("{indexName}",encodeURIComponent(e)),queryParameters:{},headers:{},data:r||{},useReadTransporter:!0,cacheable:!0};return o.request(a,t)},searchSynonyms({indexName:e,searchSynonymsParams:r},t){if(!e)throw new Error("Parameter `indexName` is required when calling `searchSynonyms`.");const a={method:"POST",path:"/1/indexes/{indexName}/synonyms/search".replace("{indexName}",encodeURIComponent(e)),queryParameters:{},headers:{},data:r||{},useReadTransporter:!0,cacheable:!0};return o.request(a,t)},searchUserIds(e,r){if(!e)throw new Error("Parameter `searchUserIdsParams` is required when calling `searchUserIds`.");if(!e.query)throw new Error("Parameter `searchUserIdsParams.query` is required when calling `searchUserIds`.");const t={method:"POST",path:"/1/clusters/mapping/search",queryParameters:{},headers:{},data:e,useReadTransporter:!0,cacheable:!0};return o.request(t,r)},setDictionarySettings(e,r){if(!e)throw new Error("Parameter `dictionarySettingsParams` is required when calling `setDictionarySettings`.");if(!e.disableStandardEntries)throw new Error("Parameter `dictionarySettingsParams.disableStandardEntries` is required when calling `setDictionarySettings`.");const t={method:"PUT",path:"/1/dictionaries/*/settings",queryParameters:{},headers:{},data:e};return o.request(t,r)},setSettings({indexName:e,indexSettings:r,forwardToReplicas:t},a){if(!e)throw new Error("Parameter `indexName` is required when calling `setSettings`.");if(!r)throw new Error("Parameter `indexSettings` is required when calling `setSettings`.");const n="/1/indexes/{indexName}/settings".replace("{indexName}",encodeURIComponent(e)),s={};void 0!==t&&(s.forwardToReplicas=t.toString());const i={method:"PUT",path:n,queryParameters:s,headers:{},data:r};return o.request(i,a)},updateApiKey({key:e,apiKey:r},t){if(!e)throw new Error("Parameter `key` is required when calling `updateApiKey`.");if(!r)throw new Error("Parameter `apiKey` is required when calling `updateApiKey`.");if(!r.acl)throw new Error("Parameter `apiKey.acl` is required when calling `updateApiKey`.");const a={method:"PUT",path:"/1/keys/{key}".replace("{key}",encodeURIComponent(e)),queryParameters:{},headers:{},data:r};return o.request(a,t)}}}({appId:e,apiKey:s,timeouts:{connect:1e3,read:2e3,write:3e4},requester:{send:function(e){return new Promise((r=>{const t=new XMLHttpRequest;t.open(e.method,e.url,!0),Object.keys(e.headers).forEach((r=>t.setRequestHeader(r,e.headers[r])));const a=(e,a)=>setTimeout((()=>{t.abort(),r({status:0,content:a,isTimedOut:!0})}),e),n=a(e.connectTimeout,"Connection timeout");let s;t.onreadystatechange=()=>{t.readyState>t.OPENED&&void 0===s&&(clearTimeout(n),s=a(e.responseTimeout,"Socket timeout"))},t.onerror=()=>{0===t.status&&(clearTimeout(n),clearTimeout(s),r({content:t.responseText||"Network request failed",status:t.status,isTimedOut:!1}))},t.onload=()=>{clearTimeout(n),clearTimeout(s),r({content:t.responseText,status:t.status,isTimedOut:!1})},t.send(e.data)}))}},algoliaAgents:[{segment:"Browser"}],authMode:"WithinQueryParameters",responsesCache:n(),requestsCache:n({serializable:!1}),hostsCache:a({caches:[t({key:`${q}-${e}`}),n()]}),...i})}}));
/*! client-search.umd.js | 5.0.0-alpha.107 | © Algolia, inc. | https://github.com/algolia/algoliasearch-client-javascript */
!function(e,r){"object"==typeof exports&&"undefined"!=typeof module?r(exports):"function"==typeof define&&define.amd?define(["exports"],r):r((e="undefined"!=typeof globalThis?globalThis:e||self)["@algolia/client-search"]={})}(this,(function(e){"use strict";function r({func:e,validate:r,aggregator:t,error:a,timeout:n=(()=>0)}){const s=i=>new Promise(((o,c)=>{e(i).then((e=>(t&&t(e),r(e)?o(e):a&&a.validate(e)?c(new Error(a.message(e))):setTimeout((()=>{s(e).then(o).catch(c)}),n())))).catch((e=>{c(e)}))}));return s()}function t(e){let r;const t=`algolia-client-js-${e.key}`;function a(){return void 0===r&&(r=e.localStorage||window.localStorage),r}function n(){return JSON.parse(a().getItem(t)||"{}")}function s(e){a().setItem(t,JSON.stringify(e))}return{get:(r,t,a={miss:()=>Promise.resolve()})=>Promise.resolve().then((()=>(function(){const r=e.timeToLive?1e3*e.timeToLive:null,t=n(),a=Object.fromEntries(Object.entries(t).filter((([,e])=>void 0!==e.timestamp)));if(s(a),!r)return;s(Object.fromEntries(Object.entries(a).filter((([,e])=>{const t=(new Date).getTime();return!(e.timestamp+r<t)}))))}(),n()[JSON.stringify(r)]))).then((e=>Promise.all([e?e.value:t(),void 0!==e]))).then((([e,r])=>Promise.all([e,r||a.miss(e)]))).then((([e])=>e)),set:(e,r)=>Promise.resolve().then((()=>{const s=n();return s[JSON.stringify(e)]={timestamp:(new Date).getTime(),value:r},a().setItem(t,JSON.stringify(s)),r})),delete:e=>Promise.resolve().then((()=>{const r=n();delete r[JSON.stringify(e)],a().setItem(t,JSON.stringify(r))})),clear:()=>Promise.resolve().then((()=>{a().removeItem(t)}))}}function a(e){const r=[...e.caches],t=r.shift();return void 0===t?{get:(e,r,t={miss:()=>Promise.resolve()})=>r().then((e=>Promise.all([e,t.miss(e)]))).then((([e])=>e)),set:(e,r)=>Promise.resolve(r),delete:e=>Promise.resolve(),clear:()=>Promise.resolve()}:{get:(e,n,s={miss:()=>Promise.resolve()})=>t.get(e,n,s).catch((()=>a({caches:r}).get(e,n,s))),set:(e,n)=>t.set(e,n).catch((()=>a({caches:r}).set(e,n))),delete:e=>t.delete(e).catch((()=>a({caches:r}).delete(e))),clear:()=>t.clear().catch((()=>a({caches:r}).clear()))}}function n(e={serializable:!0}){let r={};return{get(t,a,n={miss:()=>Promise.resolve()}){const s=JSON.stringify(t);if(s in r)return Promise.resolve(e.serializable?JSON.parse(r[s]):r[s]);const i=a();return i.then((e=>n.miss(e))).then((()=>i))},set:(t,a)=>(r[JSON.stringify(t)]=e.serializable?JSON.stringify(a):a,Promise.resolve(a)),delete:e=>(delete r[JSON.stringify(e)],Promise.resolve()),clear:()=>(r={},Promise.resolve())}}const s=12e4;function i(e,r="up"){const t=Date.now();return{...e,status:r,lastUpdate:t,isUp:function(){return"up"===r||Date.now()-t>s},isTimedOut:function(){return"timed out"===r&&Date.now()-t<=s}}}function o(e){var r=function(e,r){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var a=t.call(e,r||"default");if("object"!=typeof a)return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===r?String:Number)(e)}(e,"string");return"symbol"==typeof r?r:String(r)}function c(e,r,t){return(r=o(r))in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}class d extends Error{constructor(e,r){super(e),c(this,"name","AlgoliaError"),r&&(this.name=r)}}class u extends d{constructor(e,r,t){super(e,t),c(this,"stackTrace",void 0),this.stackTrace=r}}class m extends u{constructor(e){super("Unreachable hosts - your application id may be incorrect. If the error persists, please create a ticket at https://support.algolia.com/ sharing steps we can use to reproduce the issue.",e,"RetryError")}}class h extends u{constructor(e,r,t,a="ApiError"){super(e,t,a),c(this,"status",void 0),this.status=r}}class l extends d{constructor(e,r){super(e,"DeserializationError"),c(this,"response",void 0),this.response=r}}class p extends h{constructor(e,r,t,a){super(e,r,a,"DetailedApiError"),c(this,"error",void 0),this.error=t}}function w(e,r,t){const a=function(e){const r=e=>"[object Object]"===Object.prototype.toString.call(e)||"[object Array]"===Object.prototype.toString.call(e);return Object.keys(e).map((t=>`${t}=${encodeURIComponent(r(e[t])?JSON.stringify(e[t]):e[t]).replaceAll("+","%20")}`)).join("&")}(t);let n=`${e.protocol}://${e.url}${e.port?`:${e.port}`:""}/${"/"===r.charAt(0)?r.substring(1):r}`;return a.length&&(n+=`?${a}`),n}function g(e){const r=e.request.headers["x-algolia-api-key"]?{"x-algolia-api-key":"*****"}:{};return{...e,request:{...e.request,headers:{...e.request.headers,...r}}}}function y({hosts:e,hostsCache:r,baseHeaders:t,baseQueryParameters:a,algoliaAgent:n,timeouts:s,requester:o,requestsCache:c,responsesCache:d}){async function u(c,d,u=!0){const y=[],P=function(e,r){if("GET"===e.method||void 0===e.data&&void 0===r.data)return;const t=Array.isArray(e.data)?e.data:{...e.data,...r.data};return JSON.stringify(t)}(c,d),q=function(e,r,t){const a={Accept:"application/json",...e,...r,...t},n={};return Object.keys(a).forEach((e=>{const r=a[e];n[e.toLowerCase()]=r})),n}(t,c.headers,d.headers),f="GET"===c.method?{...c.data,...d.data}:{},x={...a,...c.queryParameters,...f};if(n.value&&(x["x-algolia-agent"]=n.value),d&&d.queryParameters)for(const e of Object.keys(d.queryParameters))d.queryParameters[e]&&"[object Object]"!==Object.prototype.toString.call(d.queryParameters[e])?x[e]=d.queryParameters[e].toString():x[e]=d.queryParameters[e];let b=0;const E=async(e,t)=>{const a=e.pop();if(void 0===a)throw new m(function(e){return e.map((e=>g(e)))}(y));let n=d.timeout;void 0===n&&(n=u?s.read:s.write);const f={data:P,headers:q,method:c.method,url:w(a,c.path,x),connectTimeout:t(b,s.connect),responseTimeout:t(b,n)},I=r=>{const t={request:f,response:r,host:a,triesLeft:e.length};return y.push(t),t},N=await o.send(f);if(function({isTimedOut:e,status:r}){return e||function({isTimedOut:e,status:r}){return!e&&!~~r}({isTimedOut:e,status:r})||2!=~~(r/100)&&4!=~~(r/100)}(N)){const n=I(N);return N.isTimedOut&&b++,console.log("Retryable failure",g(n)),await r.set(a,i(a,N.isTimedOut?"timed out":"down")),E(e,t)}if(function({status:e}){return 2==~~(e/100)}(N))return function(e){try{return JSON.parse(e.content)}catch(r){throw new l(r.message,e)}}(N);throw I(N),function({content:e,status:r},t){try{const a=JSON.parse(e);return"error"in a?new p(a.message,r,a.error,t):new h(a.message,r,t)}catch(e){}return new h(e,r,t)}(N,y)},I=e.filter((e=>"readWrite"===e.accept||(u?"read"===e.accept:"write"===e.accept))),N=await async function(e){const t=await Promise.all(e.map((e=>r.get(e,(()=>Promise.resolve(i(e))))))),a=t.filter((e=>e.isUp())),n=t.filter((e=>e.isTimedOut())),s=[...a,...n];return{hosts:s.length>0?s:e,getTimeout:(e,r)=>(0===n.length&&0===e?1:n.length+3+e)*r}}(I);return E([...N.hosts].reverse(),N.getTimeout)}return{hostsCache:r,requester:o,timeouts:s,algoliaAgent:n,baseHeaders:t,baseQueryParameters:a,hosts:e,request:function(e,r={}){const n=e.useReadTransporter||"GET"===e.method;if(!n)return u(e,r,n);const s=()=>u(e,r);if(!0!==(r.cacheable||e.cacheable))return s();const i={request:e,requestOptions:r,transporter:{queryParameters:a,headers:t}};return d.get(i,(()=>c.get(i,(()=>c.set(i,s()).then((e=>Promise.all([c.delete(i),e])),(e=>Promise.all([c.delete(i),Promise.reject(e)]))).then((([e,r])=>r))))),{miss:e=>d.set(i,e)})},requestsCache:c,responsesCache:d}}function P({algoliaAgents:e,client:r,version:t}){const a=function(e){const r={value:`Algolia for JavaScript (${e})`,add(e){const t=`; ${e.segment}${void 0!==e.version?` (${e.version})`:""}`;return-1===r.value.indexOf(t)&&(r.value=`${r.value}${t}`),r}};return r}(t).add({segment:r,version:t});return e.forEach((e=>a.add(e))),a}const q="5.0.0-alpha.107";function f(e){return[{url:`${e}-dsn.algolia.net`,accept:"read",protocol:"https"},{url:`${e}.algolia.net`,accept:"write",protocol:"https"}].concat(function(e){const r=e;for(let t=e.length-1;t>0;t--){const a=Math.floor(Math.random()*(t+1)),n=e[t];r[t]=e[a],r[a]=n}return r}([{url:`${e}-1.algolianet.com`,accept:"readWrite",protocol:"https"},{url:`${e}-2.algolianet.com`,accept:"readWrite",protocol:"https"},{url:`${e}-3.algolianet.com`,accept:"readWrite",protocol:"https"}]))}e.apiClientVersion=q,e.searchClient=function(e,s,i){if(!e||"string"!=typeof e)throw new Error("`appId` is missing.");if(!s||"string"!=typeof s)throw new Error("`apiKey` is missing.");return function({appId:e,apiKey:t,authMode:a,algoliaAgents:n,...s}){const i=function(e,r,t="WithinHeaders"){const a={"x-algolia-api-key":r,"x-algolia-application-id":e};return{headers:()=>"WithinHeaders"===t?a:{},queryParameters:()=>"WithinQueryParameters"===t?a:{}}}(e,t,a),o=y({hosts:f(e),...s,algoliaAgent:P({algoliaAgents:n,client:"Search",version:q}),baseHeaders:{"content-type":"text/plain",...i.headers(),...s.baseHeaders},baseQueryParameters:{...i.queryParameters(),...s.baseQueryParameters}});return{transporter:o,appId:e,clearCache:()=>Promise.all([o.requestsCache.clear(),o.responsesCache.clear()]).then((()=>{})),get _ua(){return o.algoliaAgent.value},addAlgoliaAgent(e,r){o.algoliaAgent.add({segment:e,version:r})},waitForTask({indexName:e,taskID:t,maxRetries:a=50,timeout:n=(e=>Math.min(200*e,5e3))},s){let i=0;return r({func:()=>this.getTask({indexName:e,taskID:t},s),validate:e=>"published"===e.status,aggregator:()=>i+=1,error:{validate:()=>i>=a,message:()=>`The maximum number of retries exceeded. (${i}/${a})`},timeout:()=>n(i)})},waitForApiKey({operation:e,key:t,apiKey:a,maxRetries:n=50,timeout:s=(e=>Math.min(200*e,5e3))},i){let o=0;const c={aggregator:()=>o+=1,error:{validate:()=>o>=n,message:()=>`The maximum number of retries exceeded. (${o}/${n})`},timeout:()=>s(o)};if("update"===e){if(!a)throw new Error("`apiKey` is required when waiting for an `update` operation.");return r({...c,func:()=>this.getApiKey({key:t},i),validate:e=>{for(const r of Object.keys(a)){const t=a[r],n=e[r];if(Array.isArray(t)&&Array.isArray(n)){if(t.length!==n.length||t.some(((e,r)=>e!==n[r])))return!1}else if(t!==n)return!1}return!0}})}return r({...c,func:()=>this.getApiKey({key:t},i).catch((e=>e)),validate:r=>"add"===e?404!==r.status:404===r.status})},browseObjects({indexName:e,browseParams:t,...a},n){return r({func:r=>this.browse({indexName:e,browseParams:{cursor:r?r.cursor:void 0,...t}},n),validate:e=>void 0===e.cursor,...a})},browseRules({indexName:e,searchRulesParams:t,...a},n){const s={hitsPerPage:1e3,...t};return r({func:r=>this.searchRules({indexName:e,searchRulesParams:{...s,page:r?r.page+1:s.page||0}},n),validate:e=>e.nbHits<s.hitsPerPage,...a})},browseSynonyms({indexName:e,searchSynonymsParams:t,...a},n){const s={page:0,...t,hitsPerPage:1e3};return r({func:r=>{const t=this.searchSynonyms({indexName:e,searchSynonymsParams:{...s,page:s.page}},n);return s.page+=1,t},validate:e=>e.nbHits<s.hitsPerPage,...a})},searchForHits(e,r){return this.search(e,r)},searchForFacets(e,r){return this.search(e,r)},async chunkedBatch({indexName:e,objects:r,action:t="addObject",waitForTasks:a,batchSize:n=1e3},s){let i=[];const o=[];for(const[a,c]of r.entries())i.push({action:t,body:c}),a%n==0&&(o.push(await this.batch({indexName:e,batchWriteParams:{requests:i}},s)),i=[]);if(a)for(const r of o)await this.waitForTask({indexName:e,taskID:r.taskID});return o},async replaceAllObjects({indexName:e,objects:r,batchSize:t},a){const n=`${e}_tmp_${Math.random().toString(36).substring(7)}`,s=await this.operationIndex({indexName:e,operationIndexParams:{operation:"copy",destination:n,scope:["settings","rules","synonyms"]}},a);await this.waitForTask({indexName:e,taskID:s.taskID});const i=await this.chunkedBatch({indexName:n,objects:r,waitForTasks:!0,batchSize:t},a),o=await this.operationIndex({indexName:n,operationIndexParams:{operation:"move",destination:e}},a);return await this.waitForTask({indexName:e,taskID:o.taskID}),{copyOperationResponse:s,batchResponses:i,moveOperationResponse:o}},addApiKey(e,r){if(!e)throw new Error("Parameter `apiKey` is required when calling `addApiKey`.");if(!e.acl)throw new Error("Parameter `apiKey.acl` is required when calling `addApiKey`.");const t={method:"POST",path:"/1/keys",queryParameters:{},headers:{},data:e};return o.request(t,r)},addOrUpdateObject({indexName:e,objectID:r,body:t},a){if(!e)throw new Error("Parameter `indexName` is required when calling `addOrUpdateObject`.");if(!r)throw new Error("Parameter `objectID` is required when calling `addOrUpdateObject`.");if(!t)throw new Error("Parameter `body` is required when calling `addOrUpdateObject`.");const n={method:"PUT",path:"/1/indexes/{indexName}/{objectID}".replace("{indexName}",encodeURIComponent(e)).replace("{objectID}",encodeURIComponent(r)),queryParameters:{},headers:{},data:t};return o.request(n,a)},appendSource(e,r){if(!e)throw new Error("Parameter `source` is required when calling `appendSource`.");if(!e.source)throw new Error("Parameter `source.source` is required when calling `appendSource`.");const t={method:"POST",path:"/1/security/sources/append",queryParameters:{},headers:{},data:e};return o.request(t,r)},assignUserId({xAlgoliaUserID:e,assignUserIdParams:r},t){if(!e)throw new Error("Parameter `xAlgoliaUserID` is required when calling `assignUserId`.");if(!r)throw new Error("Parameter `assignUserIdParams` is required when calling `assignUserId`.");if(!r.cluster)throw new Error("Parameter `assignUserIdParams.cluster` is required when calling `assignUserId`.");const a={};void 0!==e&&(a["X-Algolia-User-ID"]=e.toString());const n={method:"POST",path:"/1/clusters/mapping",queryParameters:{},headers:a,data:r};return o.request(n,t)},batch({indexName:e,batchWriteParams:r},t){if(!e)throw new Error("Parameter `indexName` is required when calling `batch`.");if(!r)throw new Error("Parameter `batchWriteParams` is required when calling `batch`.");if(!r.requests)throw new Error("Parameter `batchWriteParams.requests` is required when calling `batch`.");const a={method:"POST",path:"/1/indexes/{indexName}/batch".replace("{indexName}",encodeURIComponent(e)),queryParameters:{},headers:{},data:r};return o.request(a,t)},batchAssignUserIds({xAlgoliaUserID:e,batchAssignUserIdsParams:r},t){if(!e)throw new Error("Parameter `xAlgoliaUserID` is required when calling `batchAssignUserIds`.");if(!r)throw new Error("Parameter `batchAssignUserIdsParams` is required when calling `batchAssignUserIds`.");if(!r.cluster)throw new Error("Parameter `batchAssignUserIdsParams.cluster` is required when calling `batchAssignUserIds`.");if(!r.users)throw new Error("Parameter `batchAssignUserIdsParams.users` is required when calling `batchAssignUserIds`.");const a={};void 0!==e&&(a["X-Algolia-User-ID"]=e.toString());const n={method:"POST",path:"/1/clusters/mapping/batch",queryParameters:{},headers:a,data:r};return o.request(n,t)},batchDictionaryEntries({dictionaryName:e,batchDictionaryEntriesParams:r},t){if(!e)throw new Error("Parameter `dictionaryName` is required when calling `batchDictionaryEntries`.");if(!r)throw new Error("Parameter `batchDictionaryEntriesParams` is required when calling `batchDictionaryEntries`.");if(!r.requests)throw new Error("Parameter `batchDictionaryEntriesParams.requests` is required when calling `batchDictionaryEntries`.");const a={method:"POST",path:"/1/dictionaries/{dictionaryName}/batch".replace("{dictionaryName}",encodeURIComponent(e)),queryParameters:{},headers:{},data:r};return o.request(a,t)},browse({indexName:e,browseParams:r},t){if(!e)throw new Error("Parameter `indexName` is required when calling `browse`.");const a={method:"POST",path:"/1/indexes/{indexName}/browse".replace("{indexName}",encodeURIComponent(e)),queryParameters:{},headers:{},data:r||{}};return o.request(a,t)},clearObjects({indexName:e},r){if(!e)throw new Error("Parameter `indexName` is required when calling `clearObjects`.");const t={method:"POST",path:"/1/indexes/{indexName}/clear".replace("{indexName}",encodeURIComponent(e)),queryParameters:{},headers:{}};return o.request(t,r)},clearRules({indexName:e,forwardToReplicas:r},t){if(!e)throw new Error("Parameter `indexName` is required when calling `clearRules`.");const a="/1/indexes/{indexName}/rules/clear".replace("{indexName}",encodeURIComponent(e)),n={};void 0!==r&&(n.forwardToReplicas=r.toString());const s={method:"POST",path:a,queryParameters:n,headers:{}};return o.request(s,t)},clearSynonyms({indexName:e,forwardToReplicas:r},t){if(!e)throw new Error("Parameter `indexName` is required when calling `clearSynonyms`.");const a="/1/indexes/{indexName}/synonyms/clear".replace("{indexName}",encodeURIComponent(e)),n={};void 0!==r&&(n.forwardToReplicas=r.toString());const s={method:"POST",path:a,queryParameters:n,headers:{}};return o.request(s,t)},customDelete({path:e,parameters:r},t){if(!e)throw new Error("Parameter `path` is required when calling `customDelete`.");const a={method:"DELETE",path:"/1{path}".replace("{path}",e),queryParameters:r||{},headers:{}};return o.request(a,t)},customGet({path:e,parameters:r},t){if(!e)throw new Error("Parameter `path` is required when calling `customGet`.");const a={method:"GET",path:"/1{path}".replace("{path}",e),queryParameters:r||{},headers:{}};return o.request(a,t)},customPost({path:e,parameters:r,body:t},a){if(!e)throw new Error("Parameter `path` is required when calling `customPost`.");const n={method:"POST",path:"/1{path}".replace("{path}",e),queryParameters:r||{},headers:{},data:t||{}};return o.request(n,a)},customPut({path:e,parameters:r,body:t},a){if(!e)throw new Error("Parameter `path` is required when calling `customPut`.");const n={method:"PUT",path:"/1{path}".replace("{path}",e),queryParameters:r||{},headers:{},data:t||{}};return o.request(n,a)},deleteApiKey({key:e},r){if(!e)throw new Error("Parameter `key` is required when calling `deleteApiKey`.");const t={method:"DELETE",path:"/1/keys/{key}".replace("{key}",encodeURIComponent(e)),queryParameters:{},headers:{}};return o.request(t,r)},deleteBy({indexName:e,deleteByParams:r},t){if(!e)throw new Error("Parameter `indexName` is required when calling `deleteBy`.");if(!r)throw new Error("Parameter `deleteByParams` is required when calling `deleteBy`.");const a={method:"POST",path:"/1/indexes/{indexName}/deleteByQuery".replace("{indexName}",encodeURIComponent(e)),queryParameters:{},headers:{},data:r};return o.request(a,t)},deleteIndex({indexName:e},r){if(!e)throw new Error("Parameter `indexName` is required when calling `deleteIndex`.");const t={method:"DELETE",path:"/1/indexes/{indexName}".replace("{indexName}",encodeURIComponent(e)),queryParameters:{},headers:{}};return o.request(t,r)},deleteObject({indexName:e,objectID:r},t){if(!e)throw new Error("Parameter `indexName` is required when calling `deleteObject`.");if(!r)throw new Error("Parameter `objectID` is required when calling `deleteObject`.");const a={method:"DELETE",path:"/1/indexes/{indexName}/{objectID}".replace("{indexName}",encodeURIComponent(e)).replace("{objectID}",encodeURIComponent(r)),queryParameters:{},headers:{}};return o.request(a,t)},deleteRule({indexName:e,objectID:r,forwardToReplicas:t},a){if(!e)throw new Error("Parameter `indexName` is required when calling `deleteRule`.");if(!r)throw new Error("Parameter `objectID` is required when calling `deleteRule`.");const n="/1/indexes/{indexName}/rules/{objectID}".replace("{indexName}",encodeURIComponent(e)).replace("{objectID}",encodeURIComponent(r)),s={};void 0!==t&&(s.forwardToReplicas=t.toString());const i={method:"DELETE",path:n,queryParameters:s,headers:{}};return o.request(i,a)},deleteSource({source:e},r){if(!e)throw new Error("Parameter `source` is required when calling `deleteSource`.");const t={method:"DELETE",path:"/1/security/sources/{source}".replace("{source}",encodeURIComponent(e)),queryParameters:{},headers:{}};return o.request(t,r)},deleteSynonym({indexName:e,objectID:r,forwardToReplicas:t},a){if(!e)throw new Error("Parameter `indexName` is required when calling `deleteSynonym`.");if(!r)throw new Error("Parameter `objectID` is required when calling `deleteSynonym`.");const n="/1/indexes/{indexName}/synonyms/{objectID}".replace("{indexName}",encodeURIComponent(e)).replace("{objectID}",encodeURIComponent(r)),s={};void 0!==t&&(s.forwardToReplicas=t.toString());const i={method:"DELETE",path:n,queryParameters:s,headers:{}};return o.request(i,a)},getApiKey({key:e},r){if(!e)throw new Error("Parameter `key` is required when calling `getApiKey`.");const t={method:"GET",path:"/1/keys/{key}".replace("{key}",encodeURIComponent(e)),queryParameters:{},headers:{}};return o.request(t,r)},getDictionaryLanguages(e){const r={method:"GET",path:"/1/dictionaries/*/languages",queryParameters:{},headers:{}};return o.request(r,e)},getDictionarySettings(e){const r={method:"GET",path:"/1/dictionaries/*/settings",queryParameters:{},headers:{}};return o.request(r,e)},getLogs({offset:e,length:r,indexName:t,type:a}={},n=void 0){const s={};void 0!==e&&(s.offset=e.toString()),void 0!==r&&(s.length=r.toString()),void 0!==t&&(s.indexName=t.toString()),void 0!==a&&(s.type=a.toString());const i={method:"GET",path:"/1/logs",queryParameters:s,headers:{}};return o.request(i,n)},getObject({indexName:e,objectID:r,attributesToRetrieve:t},a){if(!e)throw new Error("Parameter `indexName` is required when calling `getObject`.");if(!r)throw new Error("Parameter `objectID` is required when calling `getObject`.");const n="/1/indexes/{indexName}/{objectID}".replace("{indexName}",encodeURIComponent(e)).replace("{objectID}",encodeURIComponent(r)),s={};void 0!==t&&(s.attributesToRetrieve=t.toString());const i={method:"GET",path:n,queryParameters:s,headers:{}};return o.request(i,a)},getObjects(e,r){if(!e)throw new Error("Parameter `getObjectsParams` is required when calling `getObjects`.");if(!e.requests)throw new Error("Parameter `getObjectsParams.requests` is required when calling `getObjects`.");const t={method:"POST",path:"/1/indexes/*/objects",queryParameters:{},headers:{},data:e,useReadTransporter:!0,cacheable:!0};return o.request(t,r)},getRule({indexName:e,objectID:r},t){if(!e)throw new Error("Parameter `indexName` is required when calling `getRule`.");if(!r)throw new Error("Parameter `objectID` is required when calling `getRule`.");const a={method:"GET",path:"/1/indexes/{indexName}/rules/{objectID}".replace("{indexName}",encodeURIComponent(e)).replace("{objectID}",encodeURIComponent(r)),queryParameters:{},headers:{}};return o.request(a,t)},getSettings({indexName:e},r){if(!e)throw new Error("Parameter `indexName` is required when calling `getSettings`.");const t={method:"GET",path:"/1/indexes/{indexName}/settings".replace("{indexName}",encodeURIComponent(e)),queryParameters:{},headers:{}};return o.request(t,r)},getSources(e){const r={method:"GET",path:"/1/security/sources",queryParameters:{},headers:{}};return o.request(r,e)},getSynonym({indexName:e,objectID:r},t){if(!e)throw new Error("Parameter `indexName` is required when calling `getSynonym`.");if(!r)throw new Error("Parameter `objectID` is required when calling `getSynonym`.");const a={method:"GET",path:"/1/indexes/{indexName}/synonyms/{objectID}".replace("{indexName}",encodeURIComponent(e)).replace("{objectID}",encodeURIComponent(r)),queryParameters:{},headers:{}};return o.request(a,t)},getTask({indexName:e,taskID:r},t){if(!e)throw new Error("Parameter `indexName` is required when calling `getTask`.");if(!r)throw new Error("Parameter `taskID` is required when calling `getTask`.");const a={method:"GET",path:"/1/indexes/{indexName}/task/{taskID}".replace("{indexName}",encodeURIComponent(e)).replace("{taskID}",encodeURIComponent(r)),queryParameters:{},headers:{}};return o.request(a,t)},getTopUserIds(e){const r={method:"GET",path:"/1/clusters/mapping/top",queryParameters:{},headers:{}};return o.request(r,e)},getUserId({userID:e},r){if(!e)throw new Error("Parameter `userID` is required when calling `getUserId`.");const t={method:"GET",path:"/1/clusters/mapping/{userID}".replace("{userID}",encodeURIComponent(e)),queryParameters:{},headers:{}};return o.request(t,r)},hasPendingMappings({getClusters:e}={},r=void 0){const t={};void 0!==e&&(t.getClusters=e.toString());const a={method:"GET",path:"/1/clusters/mapping/pending",queryParameters:t,headers:{}};return o.request(a,r)},listApiKeys(e){const r={method:"GET",path:"/1/keys",queryParameters:{},headers:{}};return o.request(r,e)},listClusters(e){const r={method:"GET",path:"/1/clusters",queryParameters:{},headers:{}};return o.request(r,e)},listIndices({page:e,hitsPerPage:r}={},t=void 0){const a={};void 0!==e&&(a.page=e.toString()),void 0!==r&&(a.hitsPerPage=r.toString());const n={method:"GET",path:"/1/indexes",queryParameters:a,headers:{}};return o.request(n,t)},listUserIds({page:e,hitsPerPage:r}={},t=void 0){const a={};void 0!==e&&(a.page=e.toString()),void 0!==r&&(a.hitsPerPage=r.toString());const n={method:"GET",path:"/1/clusters/mapping",queryParameters:a,headers:{}};return o.request(n,t)},multipleBatch(e,r){if(!e)throw new Error("Parameter `batchParams` is required when calling `multipleBatch`.");if(!e.requests)throw new Error("Parameter `batchParams.requests` is required when calling `multipleBatch`.");const t={method:"POST",path:"/1/indexes/*/batch",queryParameters:{},headers:{},data:e};return o.request(t,r)},operationIndex({indexName:e,operationIndexParams:r},t){if(!e)throw new Error("Parameter `indexName` is required when calling `operationIndex`.");if(!r)throw new Error("Parameter `operationIndexParams` is required when calling `operationIndex`.");if(!r.operation)throw new Error("Parameter `operationIndexParams.operation` is required when calling `operationIndex`.");if(!r.destination)throw new Error("Parameter `operationIndexParams.destination` is required when calling `operationIndex`.");const a={method:"POST",path:"/1/indexes/{indexName}/operation".replace("{indexName}",encodeURIComponent(e)),queryParameters:{},headers:{},data:r};return o.request(a,t)},partialUpdateObject({indexName:e,objectID:r,attributesToUpdate:t,createIfNotExists:a},n){if(!e)throw new Error("Parameter `indexName` is required when calling `partialUpdateObject`.");if(!r)throw new Error("Parameter `objectID` is required when calling `partialUpdateObject`.");if(!t)throw new Error("Parameter `attributesToUpdate` is required when calling `partialUpdateObject`.");const s="/1/indexes/{indexName}/{objectID}/partial".replace("{indexName}",encodeURIComponent(e)).replace("{objectID}",encodeURIComponent(r)),i={};void 0!==a&&(i.createIfNotExists=a.toString());const c={method:"POST",path:s,queryParameters:i,headers:{},data:t};return o.request(c,n)},removeUserId({userID:e},r){if(!e)throw new Error("Parameter `userID` is required when calling `removeUserId`.");const t={method:"DELETE",path:"/1/clusters/mapping/{userID}".replace("{userID}",encodeURIComponent(e)),queryParameters:{},headers:{}};return o.request(t,r)},replaceSources({source:e},r){if(!e)throw new Error("Parameter `source` is required when calling `replaceSources`.");const t={method:"PUT",path:"/1/security/sources",queryParameters:{},headers:{},data:e};return o.request(t,r)},restoreApiKey({key:e},r){if(!e)throw new Error("Parameter `key` is required when calling `restoreApiKey`.");const t={method:"POST",path:"/1/keys/{key}/restore".replace("{key}",encodeURIComponent(e)),queryParameters:{},headers:{}};return o.request(t,r)},saveObject({indexName:e,body:r},t){if(!e)throw new Error("Parameter `indexName` is required when calling `saveObject`.");if(!r)throw new Error("Parameter `body` is required when calling `saveObject`.");const a={method:"POST",path:"/1/indexes/{indexName}".replace("{indexName}",encodeURIComponent(e)),queryParameters:{},headers:{},data:r};return o.request(a,t)},saveRule({indexName:e,objectID:r,rule:t,forwardToReplicas:a},n){if(!e)throw new Error("Parameter `indexName` is required when calling `saveRule`.");if(!r)throw new Error("Parameter `objectID` is required when calling `saveRule`.");if(!t)throw new Error("Parameter `rule` is required when calling `saveRule`.");if(!t.objectID)throw new Error("Parameter `rule.objectID` is required when calling `saveRule`.");const s="/1/indexes/{indexName}/rules/{objectID}".replace("{indexName}",encodeURIComponent(e)).replace("{objectID}",encodeURIComponent(r)),i={};void 0!==a&&(i.forwardToReplicas=a.toString());const c={method:"PUT",path:s,queryParameters:i,headers:{},data:t};return o.request(c,n)},saveRules({indexName:e,rules:r,forwardToReplicas:t,clearExistingRules:a},n){if(!e)throw new Error("Parameter `indexName` is required when calling `saveRules`.");if(!r)throw new Error("Parameter `rules` is required when calling `saveRules`.");const s="/1/indexes/{indexName}/rules/batch".replace("{indexName}",encodeURIComponent(e)),i={};void 0!==t&&(i.forwardToReplicas=t.toString()),void 0!==a&&(i.clearExistingRules=a.toString());const c={method:"POST",path:s,queryParameters:i,headers:{},data:r};return o.request(c,n)},saveSynonym({indexName:e,objectID:r,synonymHit:t,forwardToReplicas:a},n){if(!e)throw new Error("Parameter `indexName` is required when calling `saveSynonym`.");if(!r)throw new Error("Parameter `objectID` is required when calling `saveSynonym`.");if(!t)throw new Error("Parameter `synonymHit` is required when calling `saveSynonym`.");if(!t.objectID)throw new Error("Parameter `synonymHit.objectID` is required when calling `saveSynonym`.");if(!t.type)throw new Error("Parameter `synonymHit.type` is required when calling `saveSynonym`.");const s="/1/indexes/{indexName}/synonyms/{objectID}".replace("{indexName}",encodeURIComponent(e)).replace("{objectID}",encodeURIComponent(r)),i={};void 0!==a&&(i.forwardToReplicas=a.toString());const c={method:"PUT",path:s,queryParameters:i,headers:{},data:t};return o.request(c,n)},saveSynonyms({indexName:e,synonymHit:r,forwardToReplicas:t,replaceExistingSynonyms:a},n){if(!e)throw new Error("Parameter `indexName` is required when calling `saveSynonyms`.");if(!r)throw new Error("Parameter `synonymHit` is required when calling `saveSynonyms`.");const s="/1/indexes/{indexName}/synonyms/batch".replace("{indexName}",encodeURIComponent(e)),i={};void 0!==t&&(i.forwardToReplicas=t.toString()),void 0!==a&&(i.replaceExistingSynonyms=a.toString());const c={method:"POST",path:s,queryParameters:i,headers:{},data:r};return o.request(c,n)},search(e,r){if(e&&Array.isArray(e)){const r={requests:e.map((({params:e,...r})=>"facet"===r.type?{...r,...e,type:"facet"}:{...r,...e,facet:void 0,maxFacetHits:void 0,facetQuery:void 0}))};e=r}if(!e)throw new Error("Parameter `searchMethodParams` is required when calling `search`.");if(!e.requests)throw new Error("Parameter `searchMethodParams.requests` is required when calling `search`.");const t={method:"POST",path:"/1/indexes/*/queries",queryParameters:{},headers:{},data:e,useReadTransporter:!0,cacheable:!0};return o.request(t,r)},searchDictionaryEntries({dictionaryName:e,searchDictionaryEntriesParams:r},t){if(!e)throw new Error("Parameter `dictionaryName` is required when calling `searchDictionaryEntries`.");if(!r)throw new Error("Parameter `searchDictionaryEntriesParams` is required when calling `searchDictionaryEntries`.");if(!r.query)throw new Error("Parameter `searchDictionaryEntriesParams.query` is required when calling `searchDictionaryEntries`.");const a={method:"POST",path:"/1/dictionaries/{dictionaryName}/search".replace("{dictionaryName}",encodeURIComponent(e)),queryParameters:{},headers:{},data:r,useReadTransporter:!0,cacheable:!0};return o.request(a,t)},searchForFacetValues({indexName:e,facetName:r,searchForFacetValuesRequest:t},a){if(!e)throw new Error("Parameter `indexName` is required when calling `searchForFacetValues`.");if(!r)throw new Error("Parameter `facetName` is required when calling `searchForFacetValues`.");const n={method:"POST",path:"/1/indexes/{indexName}/facets/{facetName}/query".replace("{indexName}",encodeURIComponent(e)).replace("{facetName}",encodeURIComponent(r)),queryParameters:{},headers:{},data:t||{},useReadTransporter:!0,cacheable:!0};return o.request(n,a)},searchRules({indexName:e,searchRulesParams:r},t){if(!e)throw new Error("Parameter `indexName` is required when calling `searchRules`.");const a={method:"POST",path:"/1/indexes/{indexName}/rules/search".replace("{indexName}",encodeURIComponent(e)),queryParameters:{},headers:{},data:r||{},useReadTransporter:!0,cacheable:!0};return o.request(a,t)},searchSingleIndex({indexName:e,searchParams:r},t){if(!e)throw new Error("Parameter `indexName` is required when calling `searchSingleIndex`.");const a={method:"POST",path:"/1/indexes/{indexName}/query".replace("{indexName}",encodeURIComponent(e)),queryParameters:{},headers:{},data:r||{},useReadTransporter:!0,cacheable:!0};return o.request(a,t)},searchSynonyms({indexName:e,searchSynonymsParams:r},t){if(!e)throw new Error("Parameter `indexName` is required when calling `searchSynonyms`.");const a={method:"POST",path:"/1/indexes/{indexName}/synonyms/search".replace("{indexName}",encodeURIComponent(e)),queryParameters:{},headers:{},data:r||{},useReadTransporter:!0,cacheable:!0};return o.request(a,t)},searchUserIds(e,r){if(!e)throw new Error("Parameter `searchUserIdsParams` is required when calling `searchUserIds`.");if(!e.query)throw new Error("Parameter `searchUserIdsParams.query` is required when calling `searchUserIds`.");const t={method:"POST",path:"/1/clusters/mapping/search",queryParameters:{},headers:{},data:e,useReadTransporter:!0,cacheable:!0};return o.request(t,r)},setDictionarySettings(e,r){if(!e)throw new Error("Parameter `dictionarySettingsParams` is required when calling `setDictionarySettings`.");if(!e.disableStandardEntries)throw new Error("Parameter `dictionarySettingsParams.disableStandardEntries` is required when calling `setDictionarySettings`.");const t={method:"PUT",path:"/1/dictionaries/*/settings",queryParameters:{},headers:{},data:e};return o.request(t,r)},setSettings({indexName:e,indexSettings:r,forwardToReplicas:t},a){if(!e)throw new Error("Parameter `indexName` is required when calling `setSettings`.");if(!r)throw new Error("Parameter `indexSettings` is required when calling `setSettings`.");const n="/1/indexes/{indexName}/settings".replace("{indexName}",encodeURIComponent(e)),s={};void 0!==t&&(s.forwardToReplicas=t.toString());const i={method:"PUT",path:n,queryParameters:s,headers:{},data:r};return o.request(i,a)},updateApiKey({key:e,apiKey:r},t){if(!e)throw new Error("Parameter `key` is required when calling `updateApiKey`.");if(!r)throw new Error("Parameter `apiKey` is required when calling `updateApiKey`.");if(!r.acl)throw new Error("Parameter `apiKey.acl` is required when calling `updateApiKey`.");const a={method:"PUT",path:"/1/keys/{key}".replace("{key}",encodeURIComponent(e)),queryParameters:{},headers:{},data:r};return o.request(a,t)}}}({appId:e,apiKey:s,timeouts:{connect:1e3,read:2e3,write:3e4},requester:{send:function(e){return new Promise((r=>{const t=new XMLHttpRequest;t.open(e.method,e.url,!0),Object.keys(e.headers).forEach((r=>t.setRequestHeader(r,e.headers[r])));const a=(e,a)=>setTimeout((()=>{t.abort(),r({status:0,content:a,isTimedOut:!0})}),e),n=a(e.connectTimeout,"Connection timeout");let s;t.onreadystatechange=()=>{t.readyState>t.OPENED&&void 0===s&&(clearTimeout(n),s=a(e.responseTimeout,"Socket timeout"))},t.onerror=()=>{0===t.status&&(clearTimeout(n),clearTimeout(s),r({content:t.responseText||"Network request failed",status:t.status,isTimedOut:!1}))},t.onload=()=>{clearTimeout(n),clearTimeout(s),r({content:t.responseText,status:t.status,isTimedOut:!1})},t.send(e.data)}))}},algoliaAgents:[{segment:"Browser"}],authMode:"WithinQueryParameters",responsesCache:n(),requestsCache:n({serializable:!1}),hostsCache:a({caches:[t({key:`${q}-${e}`}),n()]}),...i})}}));
/**
* API key permissions: `addObject`: required to add or update records, copy or move an index. `analytics`: required to access the Analytics API. `browse`: required to view records `deleteIndex`: required to delete indices. `deleteObject`: required to delete records. `editSettings`: required to change index settings. `inference`: required to access the Inference API. `listIndexes`: required to list indices. `logs`: required to access logs of search and indexing operations. `recommendation`: required to access the Personalization and Recommend APIs. `search`: required to search records `seeUnretrievableAttributes`: required to retrieve [`unretrievableAttributes`](https://www.algolia.com/doc/api-reference/api-parameters/unretrievableAttributes/) for all operations that return records. `settings`: required to examine index settings.
* Access control list permissions.
*/
export type Acl = 'addObject' | 'analytics' | 'browse' | 'deleteIndex' | 'deleteObject' | 'editSettings' | 'inference' | 'listIndexes' | 'logs' | 'personalization' | 'recommendation' | 'search' | 'seeUnretrievableAttributes' | 'settings' | 'usage';
//# sourceMappingURL=acl.d.ts.map
/**
* Type of batch operation.
* Type of indexing operation.
*/
export type Action = 'addObject' | 'clear' | 'delete' | 'deleteObject' | 'partialUpdateObject' | 'partialUpdateObjectNoCreate' | 'updateObject';
//# sourceMappingURL=action.d.ts.map

@@ -7,3 +7,3 @@ export type AddApiKeyResponse = {

/**
* Timestamp of creation in [ISO-8601](https://wikipedia.org/wiki/ISO_8601) format.
* Timestamp of creation in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format.
*/

@@ -10,0 +10,0 @@ createdAt: string;

/**
* Whether the pattern parameter matches the beginning (`startsWith`) or end (`endsWith`) of the query string, is an exact match (`is`), or a partial match (`contains`).
* Which part of the search query the pattern should match: - `startsWith`. The pattern must match the begginning of the query. - `endsWith`. The pattern must match the end of the query. - `is`. The pattern must match the query exactly. - `contains`. The pattern must match anywhere in the query. Empty queries are only allowed as pattern with `anchoring: is`.
*/
export type Anchoring = 'contains' | 'endsWith' | 'is' | 'startsWith';
//# sourceMappingURL=anchoring.d.ts.map

@@ -7,31 +7,31 @@ import type { Acl } from './acl';

/**
* [Permissions](https://www.algolia.com/doc/guides/security/api-keys/#access-control-list-acl) associated with the key.
* Permissions that determine the type of API requests this key can make. The required ACL is listed in each endpoint\'s reference. For more information, see [access control list](https://www.algolia.com/doc/guides/security/api-keys/#access-control-list-acl).
*/
acl: Acl[];
/**
* Description of an API key for you and your team members.
* Description of an API key to help you identify this API key.
*/
description?: string;
/**
* Restricts this API key to a list of indices or index patterns. If the list is empty, all indices are allowed. Specify either an exact index name or a pattern with a leading or trailing wildcard character (or both). For example: - `dev_*` matches all indices starting with \"dev_\" - `*_dev` matches all indices ending with \"_dev\" - `*_products_*` matches all indices containing \"_products_\".
* 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_\".
*/
indexes?: string[];
/**
* Maximum number of hits this API key can retrieve in one query. If zero, no limit is enforced. > **Note**: Use this parameter to protect you from third-party attempts to retrieve your entire content by massively querying the index.
* Maximum number of results this API key can retrieve in one query. By default, there\'s no limit.
*/
maxHitsPerQuery?: number;
/**
* Maximum number of API calls per hour allowed from a given IP address or [user token](https://www.algolia.com/doc/guides/sending-events/concepts/usertoken/). Each time an API call is performed with this key, a check is performed. If there were more than the specified number of calls within the last hour, the API returns an error with the status code `429` (Too Many Requests). > **Note**: Use this parameter to protect you from third-party attempts to retrieve your entire content by massively querying the index.
* 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.
*/
maxQueriesPerIPPerHour?: number;
/**
* Force some [query parameters](https://www.algolia.com/doc/api-reference/api-parameters/) to be applied for each query made with this API key. It\'s a URL-encoded query string.
* 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 that\'s outside the restricted range.
*/
queryParameters?: string;
/**
* Restrict this API key to specific [referrers](https://www.algolia.com/doc/guides/security/api-keys/in-depth/api-key-restrictions/#http-referrers). If empty, all referrers are allowed. For example: - `https://algolia.com/_*` matches all referrers starting with \"https://algolia.com/\" - `*.algolia.com` matches all referrers ending with \".algolia.com\" - `*algolia.com*` allows everything in the domain \"algolia.com\".
* 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).
*/
referers?: string[];
/**
* Validity duration of a key (in seconds). The key will automatically be removed after this time has expired. The default value of 0 never expires. Short-lived API keys are useful to grant temporary access to your data. For example, in mobile apps, you can\'t [control when users update your app](https://www.algolia.com/doc/guides/security/security-best-practices/#use-secured-api-keys-in-mobile-apps). So instead of encoding keys into your app as you would for a web app, you should dynamically fetch them from your mobile app\'s backend.
* Duration (in seconds) after which the API key expires. By default, API keys don\'t expire.
*/

@@ -38,0 +38,0 @@ validity?: number;

import type { AroundPrecisionFromValueInner } from './aroundPrecisionFromValueInner';
/**
* Precision of a geographical search (in meters), to [group results that are more or less the same distance from a central point](https://www.algolia.com/doc/guides/managing-results/refine-results/geolocation/in-depth/geo-ranking-precision/).
* Precision of a coordinate-based search in meters to group results with similar distances. The Geo ranking criterion considers all matches within the same range of distances to be equal.
*/
export type AroundPrecision = AroundPrecisionFromValueInner[] | number;
//# sourceMappingURL=aroundPrecision.d.ts.map

@@ -0,5 +1,14 @@

/**
* Range object with lower and upper values in meters to define custom ranges.
*/
export type AroundPrecisionFromValueInner = {
/**
* Lower boundary of a range in meters. The Geo ranking criterion considers all records within the range to be equal.
*/
from?: number;
/**
* Upper boundary of a range in meters. The Geo ranking criterion considers all records within the range to be equal.
*/
value?: number;
};
//# sourceMappingURL=aroundPrecisionFromValueInner.d.ts.map
import type { AroundRadiusAll } from './aroundRadiusAll';
/**
* [Maximum radius](https://www.algolia.com/doc/guides/managing-results/refine-results/geolocation/#increase-the-search-radius) for a geographical search (in meters).
* Maximum radius for a search around a central location. This parameter works in combination with the `aroundLatLng` and `aroundLatLngViaIP` parameters. By default, the search radius is determined automatically from the density of hits around the central location. The search radius is small if there are many hits close to the central coordinates.
*/
export type AroundRadius = AroundRadiusAll | number;
//# sourceMappingURL=aroundRadius.d.ts.map

@@ -0,2 +1,5 @@

/**
* Return all records with a valid `_geoloc` attribute. Don\'t filter by distance.
*/
export type AroundRadiusAll = 'all';
//# sourceMappingURL=aroundRadiusAll.d.ts.map
/**
* Automatic facet Filter.
* Filter or optional filter to be applied to the search.
*/
export type AutomaticFacetFilter = {
/**
* Attribute to filter on. This must match a facet placeholder in the Rule\'s pattern.
* Facet name to be applied as filter. The name must match placeholders in the `pattern` parameter. For example, with `pattern: {facet:genre}`, `automaticFacetFilters` must be `genre`.
*/
facet: string;
/**
* Score for the filter. Typically used for optional or disjunctive filters.
* Filter scores to give different weights to individual filters.
*/
score?: number;
/**
* Whether the filter is disjunctive (true) or conjunctive (false).
* 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.
*/

@@ -16,0 +16,0 @@ disjunctive?: boolean;

import type { AutomaticFacetFilter } from './automaticFacetFilter';
/**
* Names of facets to which automatic filtering must be applied; they must match the facet name of a facet value placeholder in the query pattern.
* Filter to be applied to the search. You can use this to respond to search queries that match a facet value. For example, if users search for \"comedy\", which matches a facet value of the \"genre\" facet, you can filter the results to show the top-ranked comedy movies.
*/
export type AutomaticFacetFilters = AutomaticFacetFilter[] | string[];
//# sourceMappingURL=automaticFacetFilters.d.ts.map
export type BaseIndexSettings = {
/**
* Creates [replicas](https://www.algolia.com/doc/guides/managing-results/refine-results/sorting/in-depth/replicas/), which are copies of a primary index with the same records but different settings.
* Attributes used for [faceting](https://www.algolia.com/doc/guides/managing-results/refine-results/faceting/). Facets are ways to categorize search results based on attributes. Facets can be used to let user filter search results. By default, no attribute is used for faceting. **Modifiers** <dl> <dt><code>filterOnly(\"ATTRIBUTE\")</code></dt> <dd>Allows using this attribute as a filter, but doesn\'t evalue the facet values.</dd> <dt><code>searchable(\"ATTRIBUTE\")</code></dt> <dd>Allows searching for facet values.</dd> <dt><code>afterDistinct(\"ATTRIBUTE\")</code></dt> <dd> Evaluates the facet count _after_ deduplication with `distinct`. This ensures accurate facet counts. You can apply this modifier to searchable facets: `afterDistinct(searchable(ATTRIBUTE))`. </dd> </dl> Without modifiers, the attribute is used as a regular facet.
*/
attributesForFaceting?: string[];
/**
* 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 by synced with the primary index. **Modifier** <dl> <dt><code>virtual(\"REPLICA\")</code></dt> <dd> 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/). </dd> </dl> Without modifier, a standard replica is created, which duplicates your record count and is used for strict, or [exhaustive sorting](https://www.algolia.com/doc/guides/managing-results/refine-results/sorting/in-depth/exhaustive-sort/).
*/
replicas?: string[];
/**
* Maximum number of hits accessible through pagination.
* 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.
*/
paginationLimitedTo?: number;
/**
* Attributes that can\'t be retrieved at query time.
* 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.
*/
unretrievableAttributes?: string[];
/**
* Words for which you want to turn off [typo tolerance](https://www.algolia.com/doc/guides/managing-results/optimize-search-results/typo-tolerance/).
* Words for which you want to turn off [typo tolerance](https://www.algolia.com/doc/guides/managing-results/optimize-search-results/typo-tolerance/). 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.
*/
disableTypoToleranceOnWords?: string[];
/**
* Attributes in your index to which [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) applies. This will ensure that words indexed in Katakana or Kanji can also be searched in Hiragana.
* 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.
*/
attributesToTransliterate?: string[];
/**
* Attributes on which to split [camel case](https://wikipedia.org/wiki/Camel_case) words.
* Attributes for which to split [camel case](https://wikipedia.org/wiki/Camel_case) words.
*/
camelCaseAttributes?: string[];
/**
* Attributes in your index to which [word segmentation](https://www.algolia.com/doc/guides/managing-results/optimize-search-results/handling-natural-languages-nlp/how-to/customize-segmentation/) (decompounding) applies.
* 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). 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`).
*/
decompoundedAttributes?: Record<string, any>;
/**
* Set the languages of your index, for language-specific processing steps such as [tokenization](https://www.algolia.com/doc/guides/managing-results/optimize-search-results/handling-natural-languages-nlp/in-depth/tokenization/) and [normalization](https://www.algolia.com/doc/guides/managing-results/optimize-search-results/handling-natural-languages-nlp/in-depth/normalization/).
* [ISO code](https://en.wikipedia.org/wiki/List_of_ISO_639_language_codes) for a language 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/).
*/
indexLanguages?: string[];
/**
* 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).
* 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).
*/
disablePrefixOnAttributes?: string[];
/**
* Incidates whether the engine compresses arrays with exclusively non-negative integers. When enabled, the compressed arrays may be reordered.
* Whether arrays with exclusively non-negative integers should be compressed for better performance. If true, the compressed arrays may be reordered.
*/
allowCompressionOfIntegerArray?: boolean;
/**
* 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).
* 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). By default, all numeric attributes are available as numerical filters. For faster indexing, reduce the number of numeric attributes. If you want to turn off filtering for all numeric attributes, specifiy an attribute that doesn\'t exist in your index, such as `NO_NUMERIC_FILTERING`. **Modifier** <dl> <dt><code>equalOnly(\"ATTRIBUTE\")</code></dt> <dd> Support only filtering based on equality comparisons `=` and `!=`. </dd> </dl> Without modifier, all numeric comparisons are supported.
*/
numericAttributesForFiltering?: string[];
/**
* Controls which separators are added to an Algolia index as part of [normalization](https://www.algolia.com/doc/guides/managing-results/optimize-search-results/handling-natural-languages-nlp/#what-does-normalization-mean). Separators are all non-letter characters except spaces and currency characters, such as $€£¥.
* Controls which separators are indexed. Separators are all non-letter characters except spaces and currency characters, such as $€£¥. By default, separator characters aren\'t indexed. With `separatorsToIndex`, Algolia treats separator characters as separate words. For example, a search for `C#` would report two matches.
*/
separatorsToIndex?: string;
/**
* [Attributes used for searching](https://www.algolia.com/doc/guides/managing-results/must-do/searchable-attributes/), including determining [if matches at the beginning of a word are important (ordered) or not (unordered)](https://www.algolia.com/doc/guides/managing-results/must-do/searchable-attributes/how-to/configuring-searchable-attributes-the-right-way/#understanding-word-position).
* Attributes used for searching. 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** <dl> <dt><code>unordered(\"ATTRIBUTE\")</code></dt> <dd> Ignore the position of a match within the attribute. </dd> </dl> Without modifier, matches at the beginning of an attribute rank higer than matches at the end.
*/
searchableAttributes?: string[];
/**
* Lets you store custom data in your indices.
* An object with custom data. You can store up to 32&nbsp;kB as custom data.
*/
userData?: any | null;
/**
* A list of characters and their normalized replacements to override Algolia\'s default [normalization](https://www.algolia.com/doc/guides/managing-results/optimize-search-results/handling-natural-languages-nlp/in-depth/normalization/).
* 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/).
*/
customNormalization?: Record<string, Record<string, string>>;
/**
* Name of the deduplication attribute to be used with Algolia\'s [_distinct_ feature](https://www.algolia.com/doc/guides/managing-results/refine-results/grouping/#introducing-algolias-distinct-feature).
* Attribute that should be used to establish groups of results. 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.
*/

@@ -65,0 +69,0 @@ attributeForDistinct?: string;

@@ -9,7 +9,7 @@ import type { AroundPrecision } from './aroundPrecision';

/**
* Overrides the query parameter and performs a more generic search.
* 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.
*/
similarQuery?: string;
/**
* [Filter](https://www.algolia.com/doc/guides/managing-results/refine-results/filtering/) the query with numeric, facet, or tag filters.
* Filter the search so that only records with matching values are included in the results. These filters are supported: - **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/).
*/

@@ -22,35 +22,35 @@ filters?: string;

/**
* Determines how to calculate [filter scores](https://www.algolia.com/doc/guides/managing-results/refine-results/filtering/in-depth/filter-scoring/#accumulating-scores-with-sumorfiltersscores). If `false`, maximum score is kept. If `true`, score is summed.
* 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).
*/
sumOrFiltersScores?: boolean;
/**
* Restricts a query to only look at a subset of your [searchable attributes](https://www.algolia.com/doc/guides/managing-results/must-do/searchable-attributes/).
* Restricts a search to a subset of your searchable attributes.
*/
restrictSearchableAttributes?: string[];
/**
* Returns [facets](https://www.algolia.com/doc/guides/managing-results/refine-results/faceting/#contextual-facet-values-and-counts), their facet values, and the number of matching facet values.
* 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).
*/
facets?: string[];
/**
* Forces faceting to be applied after [de-duplication](https://www.algolia.com/doc/guides/managing-results/refine-results/grouping/) (with the distinct feature). Alternatively, the `afterDistinct` [modifier](https://www.algolia.com/doc/api-reference/api-parameters/attributesForFaceting/#modifiers) of `attributesForFaceting` allows for more granular control.
* 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`.
*/
facetingAfterDistinct?: boolean;
/**
* Page to retrieve (the first page is `0`, not `1`).
* Page of search results to retrieve.
*/
page?: number;
/**
* Specifies the offset of the first hit to return. > **Note**: Using `page` and `hitsPerPage` is the recommended method for [paging results](https://www.algolia.com/doc/guides/building-search-ui/ui-and-ux-patterns/pagination/js/). However, you can use `offset` and `length` to implement [an alternative approach to paging](https://www.algolia.com/doc/guides/building-search-ui/ui-and-ux-patterns/pagination/js/#retrieving-a-subset-of-records-with-offset-and-length).
* Position of the first hit to retrieve.
*/
offset?: number;
/**
* Sets the number of hits to retrieve (for use with `offset`). > **Note**: Using `page` and `hitsPerPage` is the recommended method for [paging results](https://www.algolia.com/doc/guides/building-search-ui/ui-and-ux-patterns/pagination/js/). However, you can use `offset` and `length` to implement [an alternative approach to paging](https://www.algolia.com/doc/guides/building-search-ui/ui-and-ux-patterns/pagination/js/#retrieving-a-subset-of-records-with-offset-and-length).
* Number of hits to retrieve (used in combination with `offset`).
*/
length?: number;
/**
* Search for entries [around a central location](https://www.algolia.com/doc/guides/managing-results/refine-results/geolocation/#filter-around-a-central-point), enabling a geographical search within a circular area.
* Coordinates for the center of a circle, expressed as a comma-separated string of latitude and longitude. Only records included within 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`.
*/
aroundLatLng?: string;
/**
* Search for entries around a location. The location is automatically computed from the requester\'s IP address.
* Whether to obtain the coordinates from the request\'s IP address.
*/

@@ -61,47 +61,43 @@ aroundLatLngViaIP?: boolean;

/**
* Minimum radius (in meters) used for a geographical search when `aroundRadius` isn\'t set.
* Minimum radius (in meters) for a search around a location when `aroundRadius` isn\'t set.
*/
minimumAroundRadius?: number;
/**
* Search inside a [rectangular area](https://www.algolia.com/doc/guides/managing-results/refine-results/geolocation/#filtering-inside-rectangular-or-polygonal-areas) (in geographical coordinates).
* Coordinates for a rectangular area in which to search. Each bounding box is defined by the two opposite points of its diagonal, and expressed as latitude and longitude pair: `[p1 lat, p1 long, p2 lat, p2 long]`. Provide multiple bounding boxes as nested arrays. For more information, see [rectangular area](https://www.algolia.com/doc/guides/managing-results/refine-results/geolocation/#filtering-inside-rectangular-or-polygonal-areas).
*/
insideBoundingBox?: number[][];
/**
* Search inside a [polygon](https://www.algolia.com/doc/guides/managing-results/refine-results/geolocation/#filtering-inside-rectangular-or-polygonal-areas) (in geographical coordinates).
* 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`.
*/
insidePolygon?: number[][];
/**
* Changes the default values of parameters that work best for a natural language query, such as `ignorePlurals`, `removeStopWords`, `removeWordsIfNoResults`, `analyticsTags`, and `ruleContexts`. These parameters work well together when the query consists of fuller natural language strings instead of keywords, for example when processing voice search queries.
* 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`.
*/
naturalLanguages?: string[];
/**
* Assigns [rule contexts](https://www.algolia.com/doc/guides/managing-results/rules/rules-overview/how-to/customize-search-results-by-platform/#whats-a-context) to search queries.
* 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.
*/
ruleContexts?: string[];
/**
* Defines how much [Personalization affects results](https://www.algolia.com/doc/guides/personalization/personalizing-results/in-depth/configuring-personalization/#understanding-personalization-impact).
* 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).
*/
personalizationImpact?: number;
/**
* Associates a [user token](https://www.algolia.com/doc/guides/sending-events/concepts/usertoken/) with the current search.
* 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/).
*/
userToken?: string;
/**
* Incidates whether the search response includes [detailed ranking information](https://www.algolia.com/doc/guides/building-search-ui/going-further/backend-search/in-depth/understanding-the-api-response/#ranking-information).
* Whether the search response should include detailed ranking information.
*/
getRankingInfo?: boolean;
/**
* Enriches the API\'s response with information about how the query was processed.
* Whether to take into account an index\'s synonyms for this search.
*/
explain?: string[];
/**
* Whether to take into account an index\'s synonyms for a particular search.
*/
synonyms?: boolean;
/**
* Indicates whether a query ID parameter is included in the search response. This is required for [tracking click and conversion events](https://www.algolia.com/doc/guides/sending-events/concepts/event-types/#events-related-to-algolia-requests).
* 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/).
*/
clickAnalytics?: boolean;
/**
* Indicates whether this query will be included in [analytics](https://www.algolia.com/doc/guides/search-analytics/guides/exclude-queries/).
* Whether this search will be included in Analytics.
*/

@@ -114,7 +110,7 @@ analytics?: boolean;

/**
* Whether to include or exclude a query from the processing-time percentile computation.
* Whether to include this search when calculating processing-time percentiles.
*/
percentileComputation?: boolean;
/**
* Incidates whether this search will be considered in A/B testing.
* Whether to enable A/B testing for this search.
*/

@@ -121,0 +117,0 @@ enableABTest?: boolean;

@@ -19,3 +19,3 @@ import type { Exhaustive } from './exhaustive';

/**
* Automatically-computed radius.
* Distance from a central coordinate provided by `aroundLatLng`.
*/

@@ -37,3 +37,3 @@ automaticRadius?: string;

/**
* Mapping of each facet name to the corresponding facet counts.
* Facet counts.
*/

@@ -62,7 +62,7 @@ facets?: Record<string, Record<string, number>>;

/**
* Number of hits the search query matched.
* Number of results (hits).
*/
nbHits: number;
/**
* Number of pages of results for the current query.
* Number of pages of results.
*/

@@ -75,3 +75,3 @@ nbPages: number;

/**
* Page to retrieve (the first page is `0`, not `1`).
* Page of search results to retrieve.
*/

@@ -106,3 +106,3 @@ page: number;

/**
* Lets you store custom data in your indices.
* An object with custom data. You can store up to 32&nbsp;kB as custom data.
*/

@@ -109,0 +109,0 @@ userData?: any | null;

import type { BatchDictionaryEntriesRequest } from './batchDictionaryEntriesRequest';
/**
* `batchDictionaryEntries` parameters.
* Request body for updating dictionary entries.
*/
export type BatchDictionaryEntriesParams = {
/**
* Incidates whether to replace all custom entries in the dictionary with the ones sent with this request.
* Whether to replace all custom entries in the dictionary with the ones sent with this request.
*/
clearExistingDictionaryEntries?: boolean;
/**
* Operations to batch.
* List of additions and deletions to your dictionaries.
*/

@@ -13,0 +13,0 @@ requests: BatchDictionaryEntriesRequest[];

export type BatchResponse = {
/**
* Unique identifier of a task. A successful API response means that a task was added to a queue. It might not run immediately. You can check the task\'s progress with the `task` operation and this `taskID`.
* Unique identifier of a task. A successful API response means that a task was added to a queue. It might not run immediately. You can check the task\'s progress with the [`task` operation](#tag/Indices/operation/getTask) and this `taskID`.
*/
taskID: number;
/**
* Unique object (record) identifiers.
* Unique record identifiers.
*/

@@ -9,0 +9,0 @@ objectIDs: string[];

import type { BuiltInOperationType } from './builtInOperationType';
/**
* To update an attribute without pushing the entire record, you can use these built-in operations.
* Update to perform on the attribute.
*/

@@ -8,3 +8,3 @@ export type BuiltInOperation = {

/**
* Value that corresponds to the operation, for example an `Increment` or `Decrement` step, `Add` or `Remove` value.
* Value that corresponds to the operation, for example an `Increment` or `Decrement` step, or an `Add` or `Remove` value.
*/

@@ -11,0 +11,0 @@ value: string;

/**
* Operation to apply to the attribute.
* How to change the attribute.
*/
export type BuiltInOperationType = 'Add' | 'AddUnique' | 'Decrement' | 'Increment' | 'IncrementFrom' | 'IncrementSet' | 'Remove';
//# sourceMappingURL=builtInOperationType.d.ts.map

@@ -35,11 +35,11 @@ import type { CreateIterablePromise } from '@algolia/client-common';

/**
* Index on which to perform the request.
* Name of the index on which to perform the operation.
*/
indexName: string;
/**
* Unique record (object) identifier.
* Unique record identifier.
*/
objectID: string;
/**
* Algolia record.
* The record, a schemaless object with attributes that are useful in the context of search and discovery.
*/

@@ -53,3 +53,3 @@ body: Record<string, any>;

/**
* UserID to assign.
* User ID to assign.
*/

@@ -64,3 +64,3 @@ xAlgoliaUserID: string;

/**
* Index on which to perform the request.
* Name of the index on which to perform the operation.
*/

@@ -75,3 +75,3 @@ indexName: string;

/**
* UserID to assign.
* User ID to assign.
*/

@@ -86,3 +86,3 @@ xAlgoliaUserID: string;

/**
* Dictionary to search in.
* Dictionary type in which to search.
*/

@@ -97,3 +97,3 @@ dictionaryName: DictionaryType;

/**
* Index on which to perform the request.
* Name of the index on which to perform the operation.
*/

@@ -108,3 +108,3 @@ indexName: string;

/**
* Index on which to perform the request.
* Name of the index on which to perform the operation.
*/

@@ -118,7 +118,7 @@ indexName: string;

/**
* Index on which to perform the request.
* Name of the index on which to perform the operation.
*/
indexName: string;
/**
* Indicates whether changed index settings are forwarded to the replica indices.
* Whether changes are applied to replica indices.
*/

@@ -132,7 +132,7 @@ forwardToReplicas?: boolean;

/**
* Index on which to perform the request.
* Name of the index on which to perform the operation.
*/
indexName: string;
/**
* Indicates whether changed index settings are forwarded to the replica indices.
* Whether changes are applied to replica indices.
*/

@@ -215,3 +215,3 @@ forwardToReplicas?: boolean;

/**
* Index on which to perform the request.
* Name of the index on which to perform the operation.
*/

@@ -226,3 +226,3 @@ indexName: string;

/**
* Index on which to perform the request.
* Name of the index on which to perform the operation.
*/

@@ -236,7 +236,7 @@ indexName: string;

/**
* Index on which to perform the request.
* Name of the index on which to perform the operation.
*/
indexName: string;
/**
* Unique record (object) identifier.
* Unique record identifier.
*/

@@ -250,3 +250,3 @@ objectID: string;

/**
* Index on which to perform the request.
* Name of the index on which to perform the operation.
*/

@@ -259,3 +259,3 @@ indexName: string;

/**
* Indicates whether changed index settings are forwarded to the replica indices.
* Whether changes are applied to replica indices.
*/

@@ -278,3 +278,3 @@ forwardToReplicas?: boolean;

/**
* Index on which to perform the request.
* Name of the index on which to perform the operation.
*/

@@ -287,3 +287,3 @@ indexName: string;

/**
* Indicates whether changed index settings are forwarded to the replica indices.
* Whether changes are applied to replica indices.
*/

@@ -306,3 +306,3 @@ forwardToReplicas?: boolean;

/**
* First log entry to retrieve. Sorted by decreasing date with 0 being the most recent.
* First log entry to retrieve. The most recent entries are listed first.
*/

@@ -315,7 +315,7 @@ offset?: number;

/**
* Index for which log entries should be retrieved. When omitted, log entries are retrieved for all indices.
* Index for which to retrieve log entries. By default, log entries are retrieved for all indices.
*/
indexName?: string;
/**
* Type of log entries to retrieve. When omitted, all log entries are retrieved.
* Type of log entries to retrieve. By default, all log entries are retrieved.
*/

@@ -329,11 +329,11 @@ type?: LogType;

/**
* Index on which to perform the request.
* Name of the index on which to perform the operation.
*/
indexName: string;
/**
* Unique record (object) identifier.
* Unique record identifier.
*/
objectID: string;
/**
* Attributes to include with the records in the response. This is useful to reduce the size of the API response. By default, all retrievable attributes are returned. `objectID` is always retrieved, even when not specified. [`unretrievableAttributes`](https://www.algolia.com/doc/api-reference/api-parameters/unretrievableAttributes/) won\'t be retrieved unless the request is authenticated with the admin API key.
* Attributes to include with the records in the response. This is useful to reduce the size of the API response. By default, all retrievable attributes are returned. `objectID` is always retrieved. Attributes included in `unretrievableAttributes` won\'t be retrieved unless the request is authenticated with the admin API key.
*/

@@ -347,3 +347,3 @@ attributesToRetrieve?: string[];

/**
* Index on which to perform the request.
* Name of the index on which to perform the operation.
*/

@@ -361,3 +361,3 @@ indexName: string;

/**
* Index on which to perform the request.
* Name of the index on which to perform the operation.
*/

@@ -371,3 +371,3 @@ indexName: string;

/**
* Index on which to perform the request.
* Name of the index on which to perform the operation.
*/

@@ -385,3 +385,3 @@ indexName: string;

/**
* Index on which to perform the request.
* Name of the index on which to perform the operation.
*/

@@ -399,3 +399,3 @@ indexName: string;

/**
* UserID to assign.
* User ID to assign.
*/

@@ -409,3 +409,3 @@ userID: string;

/**
* Indicates whether to include the cluster\'s pending mapping state in the response.
* Whether to include the cluster\'s pending mapping state in the response.
*/

@@ -419,7 +419,7 @@ getClusters?: boolean;

/**
* Returns the requested page number. The page size is determined by the `hitsPerPage` parameter. You can see the number of available pages in the `nbPages` response attribute. When `page` is null, the API response is not paginated.
* Requested page of the API response. If `null`, the API response is not paginated.
*/
page?: number;
/**
* Maximum number of hits per page.
* Number of hits per page.
*/

@@ -433,7 +433,7 @@ hitsPerPage?: number;

/**
* Returns the requested page number. The page size is determined by the `hitsPerPage` parameter. You can see the number of available pages in the `nbPages` response attribute. When `page` is null, the API response is not paginated.
* Requested page of the API response. If `null`, the API response is not paginated.
*/
page?: number;
/**
* Maximum number of hits per page.
* Number of hits per page.
*/

@@ -447,3 +447,3 @@ hitsPerPage?: number;

/**
* Index on which to perform the request.
* Name of the index on which to perform the operation.
*/

@@ -458,15 +458,15 @@ indexName: string;

/**
* Index on which to perform the request.
* Name of the index on which to perform the operation.
*/
indexName: string;
/**
* Unique record (object) identifier.
* Unique record identifier.
*/
objectID: string;
/**
* Object with attributes to update.
* Attributes with their values.
*/
attributesToUpdate: Record<string, AttributeToUpdate>;
/**
* Indicates whether to create a new record if it doesn\'t exist yet.
* Whether to create a new record if it doesn\'t exist.
*/

@@ -480,3 +480,3 @@ createIfNotExists?: boolean;

/**
* UserID to assign.
* User ID to assign.
*/

@@ -508,7 +508,7 @@ userID: string;

/**
* Index on which to perform the request.
* Name of the index on which to perform the operation.
*/
indexName: string;
/**
* The Algolia record.
* The record, a schemaless object with attributes that are useful in the context of search and discovery.
*/

@@ -522,3 +522,3 @@ body: Record<string, any>;

/**
* Index on which to perform the request.
* Name of the index on which to perform the operation.
*/

@@ -532,3 +532,3 @@ indexName: string;

/**
* Indicates whether changed index settings are forwarded to the replica indices.
* Whether changes are applied to replica indices.
*/

@@ -542,3 +542,3 @@ forwardToReplicas?: boolean;

/**
* Index on which to perform the request.
* Name of the index on which to perform the operation.
*/

@@ -548,7 +548,7 @@ indexName: string;

/**
* Indicates whether changed index settings are forwarded to the replica indices.
* Whether changes are applied to replica indices.
*/
forwardToReplicas?: boolean;
/**
* Indicates whether existing rules should be deleted before adding this batch.
* Whether existing rules should be deleted before adding this batch.
*/

@@ -562,3 +562,3 @@ clearExistingRules?: boolean;

/**
* Index on which to perform the request.
* Name of the index on which to perform the operation.
*/

@@ -572,3 +572,3 @@ indexName: string;

/**
* Indicates whether changed index settings are forwarded to the replica indices.
* Whether changes are applied to replica indices.
*/

@@ -582,3 +582,3 @@ forwardToReplicas?: boolean;

/**
* Index on which to perform the request.
* Name of the index on which to perform the operation.
*/

@@ -588,7 +588,7 @@ indexName: string;

/**
* Indicates whether changed index settings are forwarded to the replica indices.
* Whether changes are applied to replica indices.
*/
forwardToReplicas?: boolean;
/**
* Indicates whether to replace all synonyms in the index with the ones sent with this request.
* Whether to replace all synonyms in the index with the ones sent with this request.
*/

@@ -629,3 +629,3 @@ replaceExistingSynonyms?: boolean;

/**
* Dictionary to search in.
* Dictionary type in which to search.
*/

@@ -640,7 +640,7 @@ dictionaryName: DictionaryType;

/**
* Index on which to perform the request.
* Name of the index on which to perform the operation.
*/
indexName: string;
/**
* Facet name.
* Facet attribute in which to search for values. This attribute must be included in the `attributesForFaceting` index setting with the `searchable()` modifier.
*/

@@ -655,3 +655,3 @@ facetName: string;

/**
* Index on which to perform the request.
* Name of the index on which to perform the operation.
*/

@@ -666,3 +666,3 @@ indexName: string;

/**
* Index on which to perform the request.
* Name of the index on which to perform the operation.
*/

@@ -677,3 +677,3 @@ indexName: string;

/**
* Index on which to perform the request.
* Name of the index on which to perform the operation.
*/

@@ -691,3 +691,3 @@ indexName: string;

/**
* Index on which to perform the request.
* Name of the index on which to perform the operation.
*/

@@ -697,3 +697,3 @@ indexName: string;

/**
* Indicates whether changed index settings are forwarded to the replica indices.
* Whether changes are applied to replica indices.
*/

@@ -700,0 +700,0 @@ forwardToReplicas?: boolean;

import type { Anchoring } from './anchoring';
export type Condition = {
/**
* Query pattern syntax.
* Query pattern that triggers the rule. You can use either a literal string, or a special pattern `{facet:ATTRIBUTE}`, where `ATTRIBUTE` is a facet name. The rule is triggered if the query matches the literal string or a value of the specified facet. For example, with `pattern: {facet:genre}`, the rule is triggered when users search for a genre, such as \"comedy\".
*/

@@ -9,10 +9,14 @@ pattern?: string;

/**
* Whether the pattern matches on plurals, synonyms, and typos.
* Whether the pattern should match plurals, synonyms, and typos.
*/
alternatives?: boolean;
/**
* Rule context format: [A-Za-z0-9_-]+).
* 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.
*/
context?: string;
/**
* Filters that trigger the rule. You can add add filters using the syntax `facet:value` so that the rule is triggered, when the specific filter is selected. You can use `filters` on its own or combine it with the `pattern` parameter.
*/
filters?: string;
};
//# sourceMappingURL=condition.d.ts.map

@@ -5,3 +5,3 @@ import type { ConsequenceHide } from './consequenceHide';

/**
* [Consequences](https://www.algolia.com/doc/guides/managing-results/rules/rules-overview/#consequences) of a rule.
* Effect of the rule. For more information, see [Consequences](https://www.algolia.com/doc/guides/managing-results/rules/rules-overview/#consequences).
*/

@@ -11,15 +11,15 @@ export type Consequence = {

/**
* Records to promote.
* Records you want to pin to a specific position in the search results. You can promote up to 300 records, either individually, or as groups of up to 100 records each.
*/
promote?: Promote[];
/**
* Only use in combination with the `promote` consequence. When `true`, promoted results will be restricted to match the filters of the current search. When `false`, the promoted results will show up regardless of the filters.
* Whether promoted records must match an active filter for the consequence to be applied. This ensures that user actions (filtering the search) are given a higher precendence. For example, if you promote a record with the `color: red` attribute, and the user filters the search for `color: blue`, the \"red\" record won\'t be shown.
*/
filterPromotes?: boolean;
/**
* Records to hide. By default, you can hide up to 50 records per rule.
* Records you want to hide from the search results.
*/
hide?: ConsequenceHide[];
/**
* Custom JSON object that will be appended to the userData array in the response. This object isn\'t interpreted by the API. It\'s limited to 1kB of minified JSON.
* A JSON object with custom data that will be appended to the `userData` array in the response. This object isn\'t interpreted by the API and is limited to 1&nbsp;kB of minified JSON.
*/

@@ -26,0 +26,0 @@ userData?: any | null;

/**
* Unique identifier of the record to hide.
* Object ID of the record to hide.
*/
export type ConsequenceHide = {
/**
* Unique object identifier.
* Unique record identifier.
*/

@@ -8,0 +8,0 @@ objectID: string;

import type { ConsequenceQueryObject } from './consequenceQueryObject';
/**
* When providing a string, it replaces the entire query string. When providing an object, it describes incremental edits to be made to the query string (but you can\'t do both).
* Replace or edit the search query. If `consequenceQuery` is a string, the entire search query is replaced with that string. If `consequenceQuery` is an object, it describes incremental edits made to the query.
*/
export type ConsequenceQuery = ConsequenceQueryObject | string;
//# sourceMappingURL=consequenceQuery.d.ts.map
import type { Edit } from './edit';
export type ConsequenceQueryObject = {
/**
* Words to remove.
* Words to remove from the search query.
*/
remove?: string[];
/**
* Edits to apply.
* Changes to make to the search query.
*/

@@ -10,0 +10,0 @@ edits?: Edit[];

@@ -6,3 +6,3 @@ /**

/**
* Timestamp of creation in [ISO-8601](https://wikipedia.org/wiki/ISO_8601) format.
* Timestamp of creation in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format.
*/

@@ -9,0 +9,0 @@ createdAt: string;

export type Cursor = {
/**
* Cursor indicating the location to resume browsing from. Must match the value returned by the previous call. Pass this value to the subsequent browse call to get the next page of results. When the end of the index has been reached, `cursor` is absent from the response.
* 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.
*/

@@ -5,0 +5,0 @@ cursor?: string;

@@ -8,3 +8,3 @@ import type { AroundRadius } from './aroundRadius';

/**
* [Filter](https://www.algolia.com/doc/guides/managing-results/refine-results/filtering/) the query with numeric, facet, or tag filters.
* Filter the search so that only records with matching values are included in the results. These filters are supported: - **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/).
*/

@@ -15,3 +15,3 @@ filters?: string;

/**
* Search for entries [around a central location](https://www.algolia.com/doc/guides/managing-results/refine-results/geolocation/#filter-around-a-central-point), enabling a geographical search within a circular area.
* Coordinates for the center of a circle, expressed as a comma-separated string of latitude and longitude. Only records included within 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`.
*/

@@ -21,7 +21,7 @@ aroundLatLng?: string;

/**
* Search inside a [rectangular area](https://www.algolia.com/doc/guides/managing-results/refine-results/geolocation/#filtering-inside-rectangular-or-polygonal-areas) (in geographical coordinates).
* Coordinates for a rectangular area in which to search. Each bounding box is defined by the two opposite points of its diagonal, and expressed as latitude and longitude pair: `[p1 lat, p1 long, p2 lat, p2 long]`. Provide multiple bounding boxes as nested arrays. For more information, see [rectangular area](https://www.algolia.com/doc/guides/managing-results/refine-results/geolocation/#filtering-inside-rectangular-or-polygonal-areas).
*/
insideBoundingBox?: number[][];
/**
* Search inside a [polygon](https://www.algolia.com/doc/guides/managing-results/refine-results/geolocation/#filtering-inside-rectangular-or-polygonal-areas) (in geographical coordinates).
* 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`.
*/

@@ -28,0 +28,0 @@ insidePolygon?: number[][];

@@ -6,3 +6,3 @@ /**

/**
* Unique identifier of a task. A successful API response means that a task was added to a queue. It might not run immediately. You can check the task\'s progress with the `task` operation and this `taskID`.
* Unique identifier of a task. A successful API response means that a task was added to a queue. It might not run immediately. You can check the task\'s progress with the [`task` operation](#tag/Indices/operation/getTask) and this `taskID`.
*/

@@ -9,0 +9,0 @@ taskID: number;

@@ -7,19 +7,19 @@ import type { DictionaryEntryState } from './dictionaryEntryState';

/**
* Unique identifier for a dictionary object.
* Unique identifier for the dictionary entry.
*/
objectID: string;
/**
* [Supported language ISO code](https://www.algolia.com/doc/guides/managing-results/optimize-search-results/handling-natural-languages-nlp/in-depth/supported-languages/).
* ISO code of a [supported language](https://www.algolia.com/doc/guides/managing-results/optimize-search-results/handling-natural-languages-nlp/in-depth/supported-languages/).
*/
language: string;
/**
* Dictionary entry word. Usage depends on the type of dictionary entry. **`stopwordEntry`** The stop word you want to add or update. If the entry already exists in Algolia\'s standard dictionary, you can override its behavior by adding it to the custom dictionary and setting its `state` to `disabled`. **`compoundEntry`** When `decomposition` is empty: adds `word` as a compound atom. For example, atom “kino” decomposes the query “kopfkino” into \"kopf\" and \"kino\". When `decomposition` isn\'t empty: creates a decomposition exception. For example, when decomposition is set to the [\"hund\", \"hutte\"] exception, \"hundehutte\" decomposes into “hund” and “hutte”, discarding the linking \"e\".
* Matching dictionary word for `stopwords` and `compounds` dictionaries.
*/
word?: string;
/**
* Compound dictionary [word declensions](https://www.algolia.com/doc/guides/managing-results/optimize-search-results/handling-natural-languages-nlp/how-to/customize-plurals-and-other-declensions/). If the entry already exists in Algolia\'s standard dictionary, you can override its behavior by adding it to the custom dictionary and setting its `state` to `disabled`.
* Matching words in the `plurals` dictionary including declensions.
*/
words?: string[];
/**
* For compound entries, governs the behavior of the `word` parameter.
* Invividual components of a compound word in the `compounds` dictionary.
*/

@@ -26,0 +26,0 @@ decomposition?: string[];

/**
* Indicates whether a dictionary entry is active (`enabled`) or inactive (`disabled`).
* Whether a dictionary entry is active.
*/
export type DictionaryEntryState = 'disabled' | 'enabled';
//# sourceMappingURL=dictionaryEntryState.d.ts.map
/**
* Custom entries for a dictionary.
* Dictionary type. If `null`, this dictionary type isn\'t supported for the language.
*/
export type DictionaryLanguage = {
/**
* If `0`, the dictionary hasn\'t been customized and only contains standard entries provided by Algolia. If `null`, that feature isn\'t available or isn\'t supported for that language.
* Number of custom dictionary entries.
*/

@@ -8,0 +8,0 @@ nbCustomEntries?: number;

import type { StandardEntries } from './standardEntries';
/**
* Enable or turn off the built-in Algolia stop words for a specific language.
* Turn on or off the built-in Algolia stop words for a specific language.
*/

@@ -5,0 +5,0 @@ export type DictionarySettingsParams = {

/**
* Enables [deduplication or grouping of results (Algolia\'s _distinct_ feature](https://www.algolia.com/doc/guides/managing-results/refine-results/grouping/#introducing-algolias-distinct-feature)).
* Determines how many records of a group are included in the search results. Records with the same value for the `attributeForDistinct` attribute are considered a group. The `distinct` setting controls how many members of the group are returned. This is useful for [deduplication and grouping](https://www.algolia.com/doc/guides/managing-results/refine-results/grouping/#introducing-algolias-distinct-feature). The `distinct` setting is ignored if `attributeForDistinct` is not set.
*/
export type Distinct = boolean | number;
//# sourceMappingURL=distinct.d.ts.map

@@ -9,3 +9,3 @@ import type { EditType } from './editType';

/**
* Text that should be inserted in place of the removed text inside the query string.
* Text to be added in place of the deleted text inside the query string.
*/

@@ -12,0 +12,0 @@ insert?: string;

/**
* Determines how 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) is computed when the query contains only one word.
* Determines how 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) is computed when the search query has only one word. <dl> <dt><code>attribute</code></dt> <dd> The Exact ranking criterion is 1 if the query word and attribute value are the same. For example, a search for \"road\" will match the value \"road\", but not \"road trip\". </dd> <dt><code>none</code></dt> <dd> The Exact ranking criterion is ignored on single-word searches. </dd> <dt><code>word</code></dt> <dd> The Exact ranking criterion is 1 if the query word is found in the attribute value. The query word must have at least 3 characters and must not be a stop word. </dd> </dl> If `exactOnSingleWordQuery` is `word`, only exact matches will be highlighted, partial and prefix matches won\'t.
*/
export type ExactOnSingleWordQuery = 'attribute' | 'none' | 'word';
//# sourceMappingURL=exactOnSingleWordQuery.d.ts.map
import type { MixedSearchFilters } from './mixedSearchFilters';
/**
* [Filter hits by facet value](https://www.algolia.com/doc/api-reference/api-parameters/facetFilters/).
* Filter the search by facet values, so that only records with the same facet values are retrieved. **Prefer using the `filters` parameter, which supports all filter types and combinations with boolean operators.** - `[filter1, filter2]` is interpreted as `filter1 AND filter2`. - `[[filter1, filter2], filter3]` is interpreted as `filter1 OR filter2 AND filter3`. - `facet:-value` is interpreted as `NOT facet:value`. While it\'s best to avoid attributes that start with a `-`, you can still filter them by escaping with a backslash: `facet:\\-value`.
*/
export type FacetFilters = MixedSearchFilters[] | string;
//# sourceMappingURL=facetFilters.d.ts.map

@@ -7,7 +7,7 @@ export type FacetHits = {

/**
* Markup text with `facetQuery` matches highlighted.
* Highlighted attribute value, including HTML tags.
*/
highlighted: string;
/**
* Number of records containing this facet value. This takes into account the extra search parameters specified in the query. Like for a regular search query, the [counts may not be exhaustive](https://support.algolia.com/hc/en-us/articles/4406975248145-Why-are-my-facet-and-hit-counts-not-accurate-).
* Number of records with this facet value. [The count may be approximated](https://support.algolia.com/hc/en-us/articles/4406975248145-Why-are-my-facet-and-hit-counts-not-accurate-).
*/

@@ -14,0 +14,0 @@ count: number;

import type { Facets } from './facets';
import type { Value } from './value';
/**
* Defines the ordering of facets (widgets).
* Order of facet names and facet values in your UI.
*/

@@ -9,3 +9,3 @@ export type FacetOrdering = {

/**
* Ordering of facet values within an individual facet.
* Order of facet values. One object for each facet.
*/

@@ -12,0 +12,0 @@ values?: Record<string, Value>;

/**
* Ordering of facets (widgets).
* Order of facet names.
*/
export type Facets = {
/**
* Pinned order of facet lists.
* Explicit order of facets or facet values. This setting lets you always show specific facets or facet values at the top of the list.
*/

@@ -8,0 +8,0 @@ order?: string[];

/**
* Record retrieval operation.
* Request body for retrieving records.
*/

@@ -10,7 +10,7 @@ export type GetObjectsRequest = {

/**
* Record\'s objectID.
* Object ID for the record to retrieve.
*/
objectID: string;
/**
* Name of the index containing the required records.
* Index from which to retrieve the records.
*/

@@ -17,0 +17,0 @@ indexName: string;

export type GetObjectsResponse<T = Record<string, any>> = {
/**
* Retrieved results.
* Retrieved records.
*/

@@ -5,0 +5,0 @@ results: T[];

export type HasPendingMappingsResponse = {
/**
* Indicates whether there are clusters undergoing migration, creation, or deletion.
* Whether there are clusters undergoing migration, creation, or deletion.
*/

@@ -5,0 +5,0 @@ pending: boolean;

import type { MatchLevel } from './matchLevel';
/**
* Show highlighted section and words matched on a query.
* Surround words that match the query with HTML tags for highlighting.
*/
export type HighlightResultOption = {
/**
* Markup text with `facetQuery` matches highlighted.
* Highlighted attribute value, including HTML tags.
*/

@@ -12,3 +12,3 @@ value: string;

/**
* List of words from the query that matched the object.
* List of matched words from the search query.
*/

@@ -15,0 +15,0 @@ matchedWords: string[];

@@ -5,15 +5,15 @@ import type { HighlightResult } from './highlightResult';

/**
* A single hit.
* Search result. A hit is a record from your index, augmented with special attributes for highlighting, snippeting, and ranking.
*/
export type Hit<T = Record<string, any>> = T & {
/**
* Unique object identifier.
* Unique record identifier.
*/
objectID: string;
/**
* Show highlighted section and words matched on a query.
* Surround words that match the query with HTML tags for highlighting.
*/
_highlightResult?: Record<string, HighlightResult>;
/**
* Snippeted attributes show parts of the matched attributes. Only returned when attributesToSnippet is non-empty.
* Snippets that show the context around a matching search query.
*/

@@ -20,0 +20,0 @@ _snippetResult?: Record<string, SnippetResult>;

/**
* Treats singular, plurals, and other forms of declensions as matching terms. `ignorePlurals` is used in conjunction with the `queryLanguages` setting. _list_: language ISO codes for which ignoring plurals should be enabled. This list will override any values that you may have set in `queryLanguages`. _true_: enables the ignore plurals feature, where singulars and plurals are considered equivalent (\"foot\" = \"feet\"). The languages supported here are either [every language](https://www.algolia.com/doc/guides/managing-results/optimize-search-results/handling-natural-languages-nlp/in-depth/supported-languages/) (this is the default) or those set by `queryLanguages`. _false_: turns off the ignore plurals feature, so that singulars and plurals aren\'t considered to be the same (\"foot\" will not find \"feet\").
* Treat singular, plurals, and other forms of declensions as equivalent. You should only use this feature for the languages used in your index.
*/
export type IgnorePlurals = string[] | boolean;
//# sourceMappingURL=ignorePlurals.d.ts.map

@@ -118,2 +118,3 @@ export * from './acl';

export * from './searchDictionaryEntriesParams';
export * from './searchDictionaryEntriesResponse';
export * from './searchForFacetValuesRequest';

@@ -120,0 +121,0 @@ export * from './searchForFacetValuesResponse';

import type { BaseIndexSettings } from './baseIndexSettings';
import type { IndexSettingsAsSearchParams } from './indexSettingsAsSearchParams';
/**
* Algolia index settings.
* Index settings.
*/
export type IndexSettings = BaseIndexSettings & IndexSettingsAsSearchParams;
//# sourceMappingURL=indexSettings.d.ts.map

@@ -16,35 +16,31 @@ import type { AdvancedSyntaxFeatures } from './advancedSyntaxFeatures';

/**
* Attributes used for [faceting](https://www.algolia.com/doc/guides/managing-results/refine-results/faceting/) and the [modifiers](https://www.algolia.com/doc/api-reference/api-parameters/attributesForFaceting/#modifiers) that can be applied: `filterOnly`, `searchable`, and `afterDistinct`.
* Attributes to include in the API response. To reduce the size of your response, you can retrieve only some of the attributes. - `*` 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.
*/
attributesForFaceting?: string[];
/**
* Attributes to include in the API response. To reduce the size of your response, you can retrieve only some of the attributes. By default, the response includes all attributes.
*/
attributesToRetrieve?: string[];
/**
* Determines the order in which Algolia [returns your results](https://www.algolia.com/doc/guides/managing-results/relevance-overview/in-depth/ranking-criteria/).
* 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** <dl> <dt><code>asc(\"ATTRIBUTE\")</code></dt> <dd>Sort the index by the values of an attribute, in ascending order.</dd> <dt><code>desc(\"ATTRIBUTE\")</code></dt> <dd>Sort the index by the values of an attribute, in descending order.</dd> </dl> 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/).
*/
ranking?: string[];
/**
* Specifies the [Custom ranking criterion](https://www.algolia.com/doc/guides/managing-results/must-do/custom-ranking/). Use the `asc` and `desc` modifiers to specify the ranking order: ascending or descending.
* Attributes to use as [custom ranking](https://www.algolia.com/doc/guides/managing-results/must-do/custom-ranking/). 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** <dl> <dt><code>asc(\"ATTRIBUTE\")</code></dt> <dd>Sort the index by the values of an attribute, in ascending order.</dd> <dt><code>desc(\"ATTRIBUTE\")</code></dt> <dd>Sort the index by the values of an attribute, in descending order.</dd> </dl> 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.
*/
customRanking?: string[];
/**
* Relevancy threshold below which less relevant results aren\'t included in the results.
* 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.
*/
relevancyStrictness?: number;
/**
* Attributes to highlight. Strings that match the search query in the attributes are highlighted by surrounding them with HTML tags (`highlightPreTag` and `highlightPostTag`).
* Attributes to highlight. By default, all searchable attributes are highlighted. Use `*` to highlight all attributes or use an empty array `[]` to turn off highlighting. 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/).
*/
attributesToHighlight?: string[];
/**
* Attributes to _snippet_. \'Snippeting\' is shortening the attribute to a certain number of words. If not specified, the attribute is shortened to the 10 words around the matching string but you can specify the number. For example: `body:20`.
* Attributes for which to enable snippets. 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.
*/
attributesToSnippet?: string[];
/**
* HTML string to insert before the highlighted parts in all highlight and snippet results.
* HTML tag to insert before the highlighted parts in all highlighted results and snippets.
*/
highlightPreTag?: string;
/**
* HTML string to insert after the highlighted parts in all highlight and snippet results.
* HTML tag to insert after the highlighted parts in all highlighted results and snippets.
*/

@@ -57,3 +53,3 @@ highlightPostTag?: string;

/**
* Restrict highlighting and snippeting to items that matched the query.
* Whether to restrict highlighting and snippeting to items that at least partially matched the search query. By default, all items are highlighted and snippeted.
*/

@@ -66,7 +62,7 @@ restrictHighlightAndSnippetArrays?: boolean;

/**
* Minimum number of characters a word in the query string 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).
* 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).
*/
minWordSizefor1Typo?: number;
/**
* Minimum number of characters a word in the query string 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).
* 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).
*/

@@ -76,7 +72,7 @@ minWordSizefor2Typos?: number;

/**
* Whether to allow typos on numbers (\"numeric tokens\") in the query string.
* 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.
*/
allowTyposOnNumericTokens?: boolean;
/**
* Attributes for which you want to turn off [typo tolerance](https://www.algolia.com/doc/guides/managing-results/optimize-search-results/typo-tolerance/).
* Attributes for which you want to turn off [typo tolerance](https://www.algolia.com/doc/guides/managing-results/optimize-search-results/typo-tolerance/). 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.
*/

@@ -87,19 +83,19 @@ disableTypoToleranceOnAttributes?: string[];

/**
* Characters that the engine shouldn\'t automatically [normalize](https://www.algolia.com/doc/guides/managing-results/optimize-search-results/handling-natural-languages-nlp/in-depth/normalization/).
* 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.
*/
keepDiacriticsOnCharacters?: string;
/**
* Sets your user\'s search language. This adjusts language-specific settings and features such as `ignorePlurals`, `removeStopWords`, and [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) word detection.
* [ISO code](https://en.wikipedia.org/wiki/List_of_ISO_639_language_codes) for language-specific settings such as plurals, stop words, 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/).
*/
queryLanguages?: string[];
/**
* [Splits compound words](https://www.algolia.com/doc/guides/managing-results/optimize-search-results/handling-natural-languages-nlp/in-depth/language-specific-configurations/#splitting-compound-words) into their component word parts in the query.
* Whether to split compound words 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.
*/
decompoundQuery?: boolean;
/**
* Incidates whether [Rules](https://www.algolia.com/doc/guides/managing-results/rules/rules-overview/) are enabled.
* Whether to enable rules.
*/
enableRules?: boolean;
/**
* Incidates whether [Personalization](https://www.algolia.com/doc/guides/personalization/what-is-personalization/) is enabled.
* Whether to enable Personalization.
*/

@@ -112,11 +108,11 @@ enablePersonalization?: boolean;

/**
* Enables the [advanced query syntax](https://www.algolia.com/doc/guides/managing-results/optimize-search-results/override-search-engine-defaults/#advanced-syntax).
* Whether to support phrase matching and excluding words from search queries. Use the `advancedSyntaxFeatures` parameter to control which feature is supported.
*/
advancedSyntax?: boolean;
/**
* Words which should be considered [optional](https://www.algolia.com/doc/guides/managing-results/optimize-search-results/empty-or-insufficient-results/#creating-a-list-of-optional-words) when found in a query.
* Words that should be considered optional when found in the query. By default, records must match all words in the search query to be included in the search results. Adding optional words can help to increase the number of search results by running an additional search query that doesn\'t include the optional words. For example, if the search query is \"action video\" and \"video\" is an optional word, the search engine runs two queries. One for \"action video\" and one for \"action\". Records that match all words are ranked higher. For a search query with 4 or more words **and** all its words are optional, the number of matched words required for a record to be included in the search results increases for every 1,000 records: - If `optionalWords` has less than 10 words, the required number of matched words increases by 1: results 1 to 1,000 require 1 matched word, results 1,001 to 2000 need 2 matched words. - If `optionalWords` has 10 or more words, the number of required matched words increases by the number of optional words dividied by 5 (rounded down). For example, with 18 optional words: results 1 to 1,000 require 1 matched word, results 1,001 to 2000 need 4 matched words. For more information, see [Optional words](https://www.algolia.com/doc/guides/managing-results/optimize-search-results/empty-or-insufficient-results/#creating-a-list-of-optional-words).
*/
optionalWords?: string[];
/**
* 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).
* 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). This can be useful for attributes with long values, where the likelyhood 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.
*/

@@ -126,7 +122,7 @@ disableExactOnAttributes?: string[];

/**
* Alternatives that should be considered an exact match by [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).
* Alternatives of query words that should be considered as exact matches by the Exact ranking criterion. <dl> <dt><code>ignorePlurals</code></dt> <dd> Plurals and similar declensions added by the `ignorePlurals` setting are considered exact matches. </dd> <dt><code>singleWordSynonym</code></dt> <dd> Single-word synonyms, such as \"NY/NYC\" are considered exact matches. </dd> <dt><code>multiWordsSynonym</code></dt> <dd> Multi-word synonyms, such as \"NY/New York\" are considered exact matches. </dd> </dl>.
*/
alternativesAsExact?: AlternativesAsExact[];
/**
* Allows you to specify which advanced syntax features are active when `advancedSyntax` is enabled.
* Advanced search syntax features you want to support. <dl> <dt><code>exactPhrase</code></dt> <dd> Phrases in quotes must match exactly. For example, `sparkly blue \"iPhone case\"` only returns records with the exact string \"iPhone case\". </dd> <dt><code>excludeWords</code></dt> <dd> Query words prefixed with a `-` must not occur in a record. For example, `search -engine` matches records that contain \"search\" but not \"engine\". </dd> </dl> This setting only has an effect if `advancedSyntax` is true.
*/

@@ -136,15 +132,15 @@ advancedSyntaxFeatures?: AdvancedSyntaxFeatures[];

/**
* Whether to highlight and snippet the original word that matches the synonym or the synonym itself.
* 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 occurences of \"house\" are replaced by \"home\" in the highlighted response.
*/
replaceSynonymsInHighlight?: boolean;
/**
* Precision of the [proximity ranking criterion](https://www.algolia.com/doc/guides/managing-results/relevance-overview/in-depth/ranking-criteria/#proximity).
* 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.
*/
minProximity?: number;
/**
* Attributes to include in the API response for search and browse queries.
* 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 attributes should be included. You can\'t exclude these properties: `message`, `warning`, `cursor`, `serverUsed`, `indexUsed`, `abTestVariantID`, `parsedQuery`, or any property triggered by the `getRankingInfo` parameter. Don\'t exclude properties that you might need in your search UI.
*/
responseFields?: string[];
/**
* Maximum number of facet hits to return when [searching for facet values](https://www.algolia.com/doc/guides/managing-results/refine-results/faceting/#search-for-facet-values).
* 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).
*/

@@ -157,7 +153,7 @@ maxFacetHits?: number;

/**
* Controls how facet values are fetched.
* Order in which to retrieve facet values. <dl> <dt><code>count</code></dt> <dd> Facet values are retrieved by decreasing count. The count is the number of matching records containing this facet value. </dd> <dt><code>alpha</code></dt> <dd>Retrieve facet values alphabetically.</dd> </dl> 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/).
*/
sortFacetValuesBy?: string;
/**
* When the [Attribute criterion is ranked above Proximity](https://www.algolia.com/doc/guides/managing-results/relevance-overview/in-depth/ranking-criteria/#attribute-and-proximity-combinations) in your ranking formula, Proximity is used to select which searchable attribute is matched in the Attribute ranking stage.
* 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.
*/

@@ -167,3 +163,3 @@ attributeCriteriaComputedByMinProximity?: boolean;

/**
* Indicates whether this search will use [Dynamic Re-Ranking](https://www.algolia.com/doc/guides/algolia-ai/re-ranking/).
* 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.
*/

@@ -170,0 +166,0 @@ enableReRanking?: boolean;

import type { LogQuery } from './logQuery';
export type Log = {
/**
* Timestamp in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format.
* Timestamp of the API request in ISO 8601 format.
*/
timestamp: string;
/**
* HTTP method of the performed request.
* HTTP method of the request.
*/
method: string;
/**
* HTTP response code.
* HTTP status code of the response.
*/
answer_code: string;
/**
* Request body. Truncated after 1,000 characters.
* Request body.
*/
query_body: string;
/**
* Answer body. Truncated after 1,000 characters.
* Response body.
*/
answer: string;
/**
* Request URL.
* URL of the API endpoint.
*/

@@ -32,3 +32,3 @@ url: string;

/**
* Request headers (API key is obfuscated).
* Request headers (API keys are obfuscated).
*/

@@ -41,7 +41,7 @@ query_headers: string;

/**
* Number of API calls.
* Number of API requests.
*/
nb_api_calls: string;
/**
* Processing time for the query. Doesn\'t include network time.
* Processing time for the query in milliseconds. This doesn\'t include latency due to the network.
*/

@@ -58,7 +58,7 @@ processing_time_ms: string;

/**
* Number of hits returned for the query.
* Number of search results (hits) returned for the query.
*/
query_nb_hits?: string;
/**
* Performed queries for the given request.
* Queries performed for the given request.
*/

@@ -65,0 +65,0 @@ inner_queries?: LogQuery[];

@@ -7,3 +7,3 @@ export type LogQuery = {

/**
* User identifier.
* A user identifier.
*/

@@ -10,0 +10,0 @@ user_token?: string;

/**
* Indicates how well the attribute matched the search query.
* Whether the whole query string matches or only a part.
*/
export type MatchLevel = 'full' | 'none' | 'partial';
//# sourceMappingURL=matchLevel.d.ts.map
/**
* Search mode the index will use to query for results.
* Search mode the index will use to query for results. This setting only applies to indices, for which Algolia enabled NeuralSearch for you.
*/
export type Mode = 'keywordSearch' | 'neuralSearch';
//# sourceMappingURL=mode.d.ts.map
export type MultipleBatchResponse = {
/**
* TaskIDs per index.
* Task IDs. One for each index.
*/
taskID: Record<string, number>;
/**
* Unique object (record) identifiers.
* Unique record identifiers.
*/

@@ -9,0 +9,0 @@ objectIDs: string[];

import type { MixedSearchFilters } from './mixedSearchFilters';
/**
* [Filter on numeric attributes](https://www.algolia.com/doc/api-reference/api-parameters/numericFilters/).
* Filter by numeric facets. **Prefer using the `filters` parameter, which supports all filter types and combinations with boolean operators.** You can use numeric comparison operators: `<`, `<=`, `=`, `!=`, `>`, `>=`. Comparsions are precise up to 3 decimals. You can also provide ranges: `facet:<lower> TO <upper>`. The range includes the lower and upper boundaries. The same combination rules apply as for `facetFilters`.
*/
export type NumericFilters = MixedSearchFilters[] | string;
//# sourceMappingURL=numericFilters.d.ts.map

@@ -6,7 +6,7 @@ import type { OperationType } from './operationType';

/**
* Algolia index name.
* Index name.
*/
destination: string;
/**
* **This only applies to the _copy_ operation.** If you omit `scope`, the copy command copies all records, settings, synonyms, and rules. If you specify `scope`, only the specified scopes are copied.
* **Only for copying.** If you specify a scope, only the selected scopes are copied. Records and the other scopes are left unchanged. If you omit the `scope` parameter, everything is copied: records, settings, synonyms, and rules.
*/

@@ -13,0 +13,0 @@ scope?: ScopeType[];

/**
* Operation to perform (_move_ or _copy_).
* Operation to perform on the index.
*/
export type OperationType = 'copy' | 'move';
//# sourceMappingURL=operationType.d.ts.map
import type { MixedSearchFilters } from './mixedSearchFilters';
/**
* Create filters to boost or demote records. Records that match the filter are ranked higher for positive and lower for negative optional filters. In contrast to regular filters, records that don\'t match the optional filter are still included in the results, only their ranking is affected.
* 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. If you\'re using a negative filter `facet:-value`, matching records rank after records that don\'t match. - Optional filters don\'t work on virtual replicas. - Optional filters are applied _after_ sort-by attributes. - Optional filters don\'t work with numeric attributes.
*/
export type OptionalFilters = MixedSearchFilters[] | string;
//# sourceMappingURL=optionalFilters.d.ts.map

@@ -5,3 +5,3 @@ import type { AutomaticFacetFilters } from './automaticFacetFilters';

/**
* Additional search parameters.
* Parameters to apply to this search. You can use all search parameters, plus special `automaticFacetFilters`, `automaticOptionalFacetFilters`, and `query`.
*/

@@ -8,0 +8,0 @@ export type Params = {

@@ -6,7 +6,7 @@ /**

/**
* Unique identifier of the record to promote.
* Unique record identifier.
*/
objectID: string;
/**
* The position to promote the records to. If you pass objectIDs, the records are placed at this position as a group. For example, if you pronmote four objectIDs to position 0, the records take the first four positions.
* Position in the search results where you want to show the promoted records.
*/

@@ -13,0 +13,0 @@ position: number;

@@ -6,7 +6,7 @@ /**

/**
* Unique identifiers of the records to promote.
* Object IDs of the records you want to promote. The records are placed as a group at the `position`. For example, if you want to promote four records to position `0`, they will be the first four search results.
*/
objectIDs: string[];
/**
* The position to promote the records to. If you pass objectIDs, the records are placed at this position as a group. For example, if you pronmote four objectIDs to position 0, the records take the first four positions.
* Position in the search results where you want to show the promoted records.
*/

@@ -13,0 +13,0 @@ position: number;

/**
* Determines how query words are [interpreted as prefixes](https://www.algolia.com/doc/guides/managing-results/optimize-search-results/override-search-engine-defaults/in-depth/prefix-searching/).
* Determines if and how query words are interpreted as prefixes. By default, only the last query word is treated as prefix (`prefixLast`). To turn off prefix search, use `prefixNone`. Avoid `prefixAll`, which treats all query words as prefixes. This might lead to counterintuitive results and makes your search slower. For more information, see [Prefix searching](https://www.algolia.com/doc/guides/managing-results/optimize-search-results/override-search-engine-defaults/in-depth/prefix-searching/).
*/
export type QueryType = 'prefixAll' | 'prefixLast' | 'prefixNone';
//# sourceMappingURL=queryType.d.ts.map
import type { MatchedGeoLocation } from './matchedGeoLocation';
import type { Personalization } from './personalization';
/**
* Object with detailed information about the record\'s ranking.
*/
export type RankingInfo = {
/**
* This field is reserved for advanced usage.
* Whether a filter matched the query.
*/
filters: number;
/**
* Position of the most important matched attribute in the attributes to index list.
* Position of the first matched word in the best matching attribute of the record.
*/

@@ -31,19 +34,19 @@ firstMatchedWord: number;

/**
* Present and set to true if a Rule promoted the hit.
* Whether the record was promoted by a rule.
*/
promoted: boolean;
/**
* When the query contains more than one word, the sum of the distances between matched words (in meters).
* Number of words between multiple matches in the query plus 1. For single word queries, `proximityDistance` is 0.
*/
proximityDistance?: number;
/**
* Custom ranking for the object, expressed as a single integer value.
* Overall ranking of the record, expressed as a single integer. This attribute is internal.
*/
userScore: number;
/**
* Number of matched words, including prefixes and typos.
* Number of matched words.
*/
words: number;
/**
* Wether the record are promoted by the re-ranking strategy.
* Whether the record is re-ranked.
*/

@@ -50,0 +53,0 @@ promotedByReRanking?: boolean;

/**
* Removes stop (common) words from the query before executing it. `removeStopWords` is used in conjunction with the `queryLanguages` setting. _list_: language ISO codes for which stop words should be enabled. This list will override any values that you may have set in `queryLanguages`. _true_: enables the stop words feature, ensuring that stop words are removed from consideration in a search. The languages supported here are either [every language](https://www.algolia.com/doc/guides/managing-results/optimize-search-results/handling-natural-languages-nlp/in-depth/supported-languages/) (this is the default) or those set by `queryLanguages`. _false_: turns off the stop words feature, allowing stop words to be taken into account in a search.
* Removes stop words from the search query. Stop words are common words like articles, conjunctions, prepositions, or pronouns that have little or no meaning on their own. In English, \"the\", \"a\", or \"and\" are stop words. You should only use this feature for the languages used in your index.
*/
export type RemoveStopWords = string[] | boolean;
//# sourceMappingURL=removeStopWords.d.ts.map
/**
* Strategy to [remove words](https://www.algolia.com/doc/guides/managing-results/optimize-search-results/empty-or-insufficient-results/in-depth/why-use-remove-words-if-no-results/) from the query when it doesn\'t match any hits.
* Strategy for removing words from the query when it doesn\'t return any results. This helps to avoid returning empty search results. <dl> <dt><code>none</code></dt> <dd>No words are removed when a query doesn\'t return results.</dd> <dt><code>lastWords</code></dt> <dd>Treat the last (then second to last, then third to last) word as optional, until there are results or at most 5 words have been removed.</dd> <dt><code>firstWords</code></dt> <dd>Treat the first (then second, then third) word as optional, until there are results or at most 5 words have been removed.</dd> <dt><code>allOptional</code></dt> <dd>Treat all words as optional.</dd> </dl> For more information, see [Remove words to improve results](https://www.algolia.com/doc/guides/managing-results/optimize-search-results/empty-or-insufficient-results/in-depth/why-use-remove-words-if-no-results/).
*/
export type RemoveWordsIfNoResults = 'allOptional' | 'firstWords' | 'lastWords' | 'none';
//# sourceMappingURL=removeWordsIfNoResults.d.ts.map
import type { FacetOrdering } from './facetOrdering';
/**
* Extra content for the search UI, for example, to control the [ordering and display of facets](https://www.algolia.com/doc/guides/managing-results/rules/merchandising-and-promoting/how-to/merchandising-facets/#merchandise-facets-and-their-values-in-the-manual-editor). You can set a default value and dynamically override it with [Rules](https://www.algolia.com/doc/guides/managing-results/rules/rules-overview/).
* 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.
*/

@@ -5,0 +5,0 @@ export type RenderingContent = {

import type { MixedSearchFilters } from './mixedSearchFilters';
/**
* When [Dynamic Re-Ranking](https://www.algolia.com/doc/guides/algolia-ai/re-ranking/) is enabled, only records that match these filters will be affected by Dynamic Re-Ranking.
* Restrict [Dynamic Re-ranking](https://www.algolia.com/doc/guides/algolia-ai/re-ranking/) to records that match these filters.
*/
export type ReRankingApplyFilter = MixedSearchFilters[] | string;
//# sourceMappingURL=reRankingApplyFilter.d.ts.map

@@ -9,7 +9,7 @@ import type { Condition } from './condition';

/**
* Unique identifier for a rule object.
* Unique identifier of a rule object.
*/
objectID: string;
/**
* [Conditions](https://www.algolia.com/doc/guides/managing-results/rules/rules-overview/#conditions) required to activate a rule. You can use up to 25 conditions per rule.
* Conditions that trigger a rule. Some consequences require specific conditions or don\'t require any condition. For more information, see [Conditions](https://www.algolia.com/doc/guides/managing-results/rules/rules-overview/#conditions).
*/

@@ -19,11 +19,11 @@ conditions?: Condition[];

/**
* Description of the rule\'s purpose. This can be helpful for display in the Algolia dashboard.
* Description of the rule\'s purpose to help you distinguish between different rules.
*/
description?: string;
/**
* Indicates whether to enable the rule. If it isn\'t enabled, it isn\'t applied at query time.
* Whether the rule is active.
*/
enabled?: boolean;
/**
* If you specify a validity period, the rule _only_ applies only during that period. If specified, the array must not be empty.
* Time periods when the rule is active.
*/

@@ -30,0 +30,0 @@ validity?: TimeRange[];

export type SaveObjectResponse = {
/**
* Date of creation (ISO-8601 format).
* Timestamp when the record was added, in ISO 8601 format.
*/
createdAt: string;
/**
* Unique identifier of a task. A successful API response means that a task was added to a queue. It might not run immediately. You can check the task\'s progress with the `task` operation and this `taskID`.
* Unique identifier of a task. A successful API response means that a task was added to a queue. It might not run immediately. You can check the task\'s progress with the [`task` operation](#tag/Indices/operation/getTask) and this `taskID`.
*/
taskID: number;
/**
* Unique object identifier.
* Unique record identifier.
*/

@@ -13,0 +13,0 @@ objectID?: string;

export type SaveSynonymResponse = {
/**
* Unique identifier of a task. A successful API response means that a task was added to a queue. It might not run immediately. You can check the task\'s progress with the `task` operation and this `taskID`.
* Unique identifier of a task. A successful API response means that a task was added to a queue. It might not run immediately. You can check the task\'s progress with the [`task` operation](#tag/Indices/operation/getTask) and this `taskID`.
*/

@@ -5,0 +5,0 @@ taskID: number;

/**
* `searchDictionaryEntries` parameters.
* Search parameter.
*/
export type SearchDictionaryEntriesParams = {
/**
* Text to search for in an index.
* Search query.
*/
query: string;
/**
* Page to retrieve (the first page is `0`, not `1`).
* Page of search results to retrieve.
*/

@@ -18,3 +18,3 @@ page?: number;

/**
* [Supported language ISO code](https://www.algolia.com/doc/guides/managing-results/optimize-search-results/handling-natural-languages-nlp/in-depth/supported-languages/).
* ISO code of a [supported language](https://www.algolia.com/doc/guides/managing-results/optimize-search-results/handling-natural-languages-nlp/in-depth/supported-languages/).
*/

@@ -21,0 +21,0 @@ language?: string;

@@ -8,3 +8,3 @@ import type { SearchTypeFacet } from './searchTypeFacet';

/**
* Algolia index name.
* Index name.
*/

@@ -17,3 +17,3 @@ indexName: string;

/**
* Maximum number of facet hits to return when [searching for facet values](https://www.algolia.com/doc/guides/managing-results/refine-results/faceting/#search-for-facet-values).
* 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).
*/

@@ -20,0 +20,0 @@ maxFacetHits?: number;

@@ -11,3 +11,3 @@ export type SearchForFacetValuesRequest = {

/**
* Maximum number of facet hits to return when [searching for facet values](https://www.algolia.com/doc/guides/managing-results/refine-results/faceting/#search-for-facet-values).
* 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).
*/

@@ -14,0 +14,0 @@ maxFacetHits?: number;

import type { FacetHits } from './facetHits';
export type SearchForFacetValuesResponse = {
/**
* Matching facet values.
*/
facetHits: FacetHits[];

@@ -4,0 +7,0 @@ /**

import type { SearchTypeDefault } from './searchTypeDefault';
export type SearchForHitsOptions = {
/**
* Algolia index name.
* Index name.
*/

@@ -6,0 +6,0 @@ indexName: string;

import type { Hit } from './hit';
export type SearchHits<T = Record<string, any>> = Record<string, any> & {
/**
* Search results (hits). Hits are records from your index that match the search criteria, augmented with additional attributes, such as, for highlighting.
*/
hits: Array<Hit<T>>;
/**
* Text to search for in an index.
* Search query.
*/

@@ -7,0 +10,0 @@ query: string;

export type SearchParamsQuery = {
/**
* Text to search for in an index.
* Search query.
*/

@@ -5,0 +5,0 @@ query?: string;

@@ -7,3 +7,3 @@ import type { Anchoring } from './anchoring';

/**
* Rule object query.
* Search query for rules.
*/

@@ -13,7 +13,7 @@ query?: string;

/**
* Restricts responses to the specified [contextual rule](https://www.algolia.com/doc/guides/managing-results/rules/rules-overview/how-to/customize-search-results-by-platform/#creating-contextual-rules).
* Only return rules that match the context (exact match).
*/
context?: string;
/**
* Requested page (the first page is page 0).
* Requested page of the API response.
*/

@@ -26,10 +26,6 @@ page?: number;

/**
* Restricts responses to enabled rules. When not specified (default), _all_ rules are retrieved.
* If `true`, return only enabled rules. If `false`, return only inactive rules. By default, _all_ rules are returned.
*/
enabled?: boolean | null;
/**
* Request options to send with the API call.
*/
requestOptions?: Array<Record<string, any>>;
};
//# sourceMappingURL=searchRulesParams.d.ts.map
import type { Rule } from './rule';
export type SearchRulesResponse = {
/**
* Fetched rules.
* Rules that matched the search criteria.
*/
hits: Rule[];
/**
* Number of fetched rules.
* Number of rules that matched the search criteria.
*/

@@ -10,0 +10,0 @@ nbHits: number;

/**
* - `none`: executes all queries. - `stopIfEnoughMatches`: executes queries one by one, stopping further query execution as soon as a query matches at least the `hitsPerPage` number of results.
* Strategy for multiple search queries: - `none`. Run all queries. - `stopIfEnoughMatches`. Run the queries one by one, stopping as soon as a query matches at least the `hitsPerPage` number of results.
*/
export type SearchStrategy = 'none' | 'stopIfEnoughMatches';
//# sourceMappingURL=searchStrategy.d.ts.map
import type { SynonymType } from './synonymType';
export type SearchSynonymsParams = {
/**
* Text to search for in an index.
* Search query.
*/

@@ -9,3 +9,3 @@ query?: string;

/**
* Page to retrieve (the first page is `0`, not `1`).
* Page of search results to retrieve.
*/

@@ -12,0 +12,0 @@ page?: number;

import type { SynonymHit } from './synonymHit';
export type SearchSynonymsResponse = Record<string, any> & {
/**
* Synonym objects.
* Matching synonyms.
*/
hits: SynonymHit[];
/**
* Number of hits the search query matched.
* Number of results (hits).
*/

@@ -10,0 +10,0 @@ nbHits: number;

@@ -14,3 +14,3 @@ /**

/**
* Page to retrieve (the first page is `0`, not `1`).
* Page of search results to retrieve.
*/

@@ -17,0 +17,0 @@ page?: number;

@@ -11,7 +11,7 @@ import type { UserHit } from './userHit';

/**
* Number of hits the search query matched.
* Number of results (hits).
*/
nbHits: number;
/**
* Page to retrieve (the first page is `0`, not `1`).
* Page of search results to retrieve.
*/

@@ -18,0 +18,0 @@ page: number;

@@ -5,19 +5,19 @@ import type { SearchParamsObject } from './searchParamsObject';

/**
* Filters that apply to every search made with the secured API key. You can add extra filters at search time with the filters query parameter. For example, if you set the filter group:admin on your generated API key, and you add groups:press OR groups:visitors with the filters query parameter, your final search filter is equivalent to groups:admin AND (groups:press OR groups:visitors).
* Filters that apply to every search made with the secured API key. Extra filters added at search time will be combined with `AND`. For example, if you set `group:admin` as fixed filter on your generated API key, and add `groups:visitors` to the search query, the complete set of filters will be `group:admin AND groups:visitors`.
*/
filters?: string;
/**
* Unix timestamp used to set the expiration date of the API key.
* Timestamp in [Unix epoch time](https://en.wikipedia.org/wiki/Unix_time) when the API key should expire.
*/
validUntil?: number;
/**
* Index names that can be queried.
* 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_\".
*/
restrictIndices?: string[];
/**
* IPv4 network allowed to use the generated key. Use this to protect against API key leaking and reuse. You can only provide a single source, but you can specify a range of IPs (for example, 192.168.1.0/24).
* IP network that are allowed to use this key. You can only add a single source, but you can provide a range of IP addresses. Use this to protect against API key leaking and reuse.
*/
restrictSources?: string;
/**
* Unique user IP address. This can be useful when you want to impose a rate limit on specific users. By default, rate limits are set based on the IP address. This can become an issue when several users search from the same IP address. To avoid this, you can set a unique userToken for each user when generating their API key. This lets you restrict each user to a maximum number of API calls per hour, even if they share their IP with another user. Specifying the userToken in a secured API key is also a good security practice as it ensures users don\'t change it. Many features like Analytics, Personalization, and Dynamic Re-ranking rely on the authenticity of user identifiers. Setting the userToken at the API key level ensures that downstream services work as expected and prevents abuse.
* Pseudonymous user identifier to restrict usage of this API key to specific users. By default, rate limits are set based on IP addresses. This can be an issue if many users search from the same IP address. To avoid this, add a user token to each generated API key.
*/

@@ -24,0 +24,0 @@ userToken?: string;

/**
* Settings for the semantic search part of NeuralSearch. Only used when `mode` is _neuralSearch_.
* Settings for the semantic search part of NeuralSearch. Only used when `mode` is `neuralSearch`.
*/
export type SemanticSearch = {
/**
* Indices from which to collect click and conversion events. If null, the current index and replica group will be used as the event source.
* Indices from which to collect click and conversion events. If null, the current index and all its replicas are used.
*/

@@ -8,0 +8,0 @@ eventSources?: string[] | null;

import type { MatchLevel } from './matchLevel';
/**
* Snippeted attributes show parts of the matched attributes. Only returned when attributesToSnippet is non-empty.
* Snippets that show the context around a matching search query.
*/
export type SnippetResultOption = {
/**
* Markup text with `facetQuery` matches highlighted.
* Highlighted attribute value, including HTML tags.
*/

@@ -9,0 +9,0 @@ value: string;

/**
* How to display the remaining items: - `count`: facet count (descending). - `alpha`: alphabetical (ascending). - `hidden`: show only pinned values.
* Order of facet values that aren\'t explicitly positioned with the `order` setting. <dl> <dt><code>count</code></dt> <dd> Order remaining facet values by decreasing count. The count is the number of matching records containing this facet value. </dd> <dt><code>alpha</code></dt> <dd>Sort facet values alphabetically.</dd> <dt><code>hidden</code></dt> <dd>Don\'t show facet values that aren\'t explicitly positioned.</dd> </dl>.
*/
export type SortRemainingBy = 'alpha' | 'count' | 'hidden';
//# sourceMappingURL=sortRemainingBy.d.ts.map
import type { MixedSearchFilters } from './mixedSearchFilters';
/**
* [Filter hits by tags](https://www.algolia.com/doc/api-reference/api-parameters/tagFilters/).
* Filter the search by values of the special `_tags` attribute. **Prefer using the `filters` parameter, which supports all filter types and combinations with boolean operators.** Different from regular facets, `_tags` can only be used for filtering (including or excluding records). You won\'t get a facet count. The same combination and escaping rules apply as for `facetFilters`.
*/
export type TagFilters = MixedSearchFilters[] | string;
//# sourceMappingURL=tagFilters.d.ts.map
/**
* _published_ if the task has been processed, _notPublished_ otherwise.
* Task status, `published` if the task is completed, `notPublished` otherwise.
*/
export type TaskStatus = 'notPublished' | 'published';
//# sourceMappingURL=taskStatus.d.ts.map
export type TimeRange = {
/**
* Lower bound of the time range (Unix timestamp).
* When the rule should start to be active, in Unix epoch time.
*/
from: number;
/**
* Upper bound of the time range (Unix timestamp).
* When the rule should stop to be active, in Unix epoch time.
*/

@@ -9,0 +9,0 @@ until: number;

import type { TypoToleranceEnum } from './typoToleranceEnum';
/**
* Controls whether [typo tolerance](https://www.algolia.com/doc/guides/managing-results/optimize-search-results/typo-tolerance/) is enabled and how it is applied.
* Whether [typo tolerance](https://www.algolia.com/doc/guides/managing-results/optimize-search-results/typo-tolerance/) is enabled and how it is applied. If typo tolerance is true, `min`, or `strict`, [word splitting and concetenation](https://www.algolia.com/doc/guides/managing-results/optimize-search-results/handling-natural-languages-nlp/in-depth/splitting-and-concatenation/) is also active.
*/
export type TypoTolerance = TypoToleranceEnum | boolean;
//# sourceMappingURL=typoTolerance.d.ts.map

@@ -0,2 +1,5 @@

/**
* - `min`. Return matches with the lowest number of typos. For example, if you have matches without typos, only include those. But if there are no matches without typos (with 1 typo), include matches with 1 typo (2 typos). - `strict`. Return matches with the two lowest numbers of typos. With `strict`, the Typo ranking criterion is applied first in the `ranking` setting.
*/
export type TypoToleranceEnum = 'min' | 'strict';
//# sourceMappingURL=typoToleranceEnum.d.ts.map

@@ -6,3 +6,3 @@ /**

/**
* Unique identifier of a task. A successful API response means that a task was added to a queue. It might not run immediately. You can check the task\'s progress with the `task` operation and this `taskID`.
* Unique identifier of a task. A successful API response means that a task was added to a queue. It might not run immediately. You can check the task\'s progress with the [`task` operation](#tag/Indices/operation/getTask) and this `taskID`.
*/

@@ -9,0 +9,0 @@ taskID: number;

@@ -6,3 +6,3 @@ /**

/**
* Unique identifier of a task. A successful API response means that a task was added to a queue. It might not run immediately. You can check the task\'s progress with the `task` operation and this `taskID`.
* Unique identifier of a task. A successful API response means that a task was added to a queue. It might not run immediately. You can check the task\'s progress with the [`task` operation](#tag/Indices/operation/getTask) and this `taskID`.
*/

@@ -15,3 +15,3 @@ taskID?: number;

/**
* Unique object identifier.
* Unique record identifier.
*/

@@ -18,0 +18,0 @@ objectID?: string;

export type UpdatedRuleResponse = {
/**
* Unique object identifier.
* Unique identifier of a rule object.
*/

@@ -11,3 +11,3 @@ objectID: string;

/**
* Unique identifier of a task. A successful API response means that a task was added to a queue. It might not run immediately. You can check the task\'s progress with the `task` operation and this `taskID`.
* Unique identifier of a task. A successful API response means that a task was added to a queue. It might not run immediately. You can check the task\'s progress with the [`task` operation](#tag/Indices/operation/getTask) and this `taskID`.
*/

@@ -14,0 +14,0 @@ taskID: number;

import type { UserHighlightResult } from './userHighlightResult';
export type UserHit = {
/**
* UserID of the user.
* User ID.
*/

@@ -6,0 +6,0 @@ userID: string;

@@ -6,3 +6,3 @@ /**

/**
* UserID of the user.
* User ID.
*/

@@ -9,0 +9,0 @@ userID: string;

import type { SortRemainingBy } from './sortRemainingBy';
export type Value = {
/**
* Pinned order of facet lists.
* Explicit order of facets or facet values. This setting lets you always show specific facets or facet values at the top of the list.
*/

@@ -6,0 +6,0 @@ order?: string[];

@@ -33,2 +33,3 @@ import type { CreateClientOptions, RequestOptions, ApiError } from '@algolia/client-common';

import type { SaveSynonymResponse } from '../model/saveSynonymResponse';
import type { SearchDictionaryEntriesResponse } from '../model/searchDictionaryEntriesResponse';
import type { SearchForFacetValuesResponse } from '../model/searchForFacetValuesResponse';

@@ -49,3 +50,3 @@ import type { SearchMethodParams } from '../model/searchMethodParams';

import type { UserId } from '../model/userId';
export declare const apiClientVersion = "5.0.0-alpha.106";
export declare const apiClientVersion = "5.0.0-alpha.107";
export declare function createSearchClient({ appId: appIdOption, apiKey: apiKeyOption, authMode, algoliaAgents, ...options }: CreateClientOptions): {

@@ -108,3 +109,3 @@ transporter: import("@algolia/client-common").Transporter;

*/
browseObjects<T>({ indexName, browseParams, ...browseObjectsOptions }: Partial<Pick<import("@algolia/client-common").CreateIterablePromise<BrowseResponse<T>>, "validate">> & Required<Pick<import("@algolia/client-common").CreateIterablePromise<BrowseResponse<T>>, "aggregator">> & BrowseProps, requestOptions?: RequestOptions): Promise<BrowseResponse<T>>;
browseObjects<T>({ indexName, browseParams, ...browseObjectsOptions }: BrowseOptions<BrowseResponse<T>> & BrowseProps, requestOptions?: RequestOptions): Promise<BrowseResponse<T>>;
/**

@@ -181,3 +182,3 @@ * Helper: Iterate on the `searchRules` method of the client to allow aggregating rules of an index.

/**
* Add a new API key with specific permissions and restrictions. The request must be authenticated with the admin API key. The response returns an API key string.
* Creates a new API key with specific permissions and restrictions.
*

@@ -192,3 +193,3 @@ * Required API Key ACLs:

/**
* If you use an existing `objectID`, the existing record will be replaced with the new one. To update only some attributes of an existing record, use the [`partial` operation](#tag/Records/operation/partialUpdateObject) instead. To add multiple records to your index in a single API request, use the [`batch` operation](#tag/Records/operation/batch).
* If a record with the specified object ID exists, the existing record is replaced. Otherwise, a new record is added to the index. To update _some_ attributes of an existing record, use the [`partial` operation](#tag/Records/operation/partialUpdateObject) instead. To add, update, or replace multiple records, use the [`batch` operation](#tag/Records/operation/batch).
*

@@ -199,5 +200,5 @@ * Required API Key ACLs:

* @param addOrUpdateObject - The addOrUpdateObject object.
* @param addOrUpdateObject.indexName - Index on which to perform the request.
* @param addOrUpdateObject.objectID - Unique record (object) identifier.
* @param addOrUpdateObject.body - Algolia record.
* @param addOrUpdateObject.indexName - Name of the index on which to perform the operation.
* @param addOrUpdateObject.objectID - Unique record identifier.
* @param addOrUpdateObject.body - The record, a schemaless object with attributes that are useful in the context of search and discovery.
* @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.

@@ -207,3 +208,3 @@ */

/**
* Add a source to the list of allowed sources.
* Adds a source to the list of allowed sources.
*

@@ -218,3 +219,3 @@ * Required API Key ACLs:

/**
* Assign or move a user ID to a cluster. The time it takes to move a user is proportional to the amount of data linked to the user ID.
* Assigns or moves a user ID to a cluster. The time it takes to move a user is proportional to the amount of data linked to the user ID.
*

@@ -225,3 +226,3 @@ * Required API Key ACLs:

* @param assignUserId - The assignUserId object.
* @param assignUserId.xAlgoliaUserID - UserID to assign.
* @param assignUserId.xAlgoliaUserID - User ID to assign.
* @param assignUserId.assignUserIdParams - The assignUserIdParams object.

@@ -232,6 +233,6 @@ * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.

/**
* To reduce the time spent on network round trips, you can perform several write actions in a single API call. Actions are applied in the order they are specified. The supported `action`s are equivalent to the individual operations of the same name.
* Adds, updates, or deletes records in one index with a single API request. Batching index updates reduces latency and increases data integrity. - Actions are applied in the order they\'re specified. - Actions are equivalent to the individual API requests of the same name.
*
* @param batch - The batch object.
* @param batch.indexName - Index on which to perform the request.
* @param batch.indexName - Name of the index on which to perform the operation.
* @param batch.batchWriteParams - The batchWriteParams object.

@@ -242,3 +243,3 @@ * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.

/**
* Assign multiple user IDs to a cluster. **You can\'t _move_ users with this operation.**.
* Assigns multiple user IDs to a cluster. **You can\'t move users with this operation**.
*

@@ -249,3 +250,3 @@ * Required API Key ACLs:

* @param batchAssignUserIds - The batchAssignUserIds object.
* @param batchAssignUserIds.xAlgoliaUserID - UserID to assign.
* @param batchAssignUserIds.xAlgoliaUserID - User ID to assign.
* @param batchAssignUserIds.batchAssignUserIdsParams - The batchAssignUserIdsParams object.

@@ -256,3 +257,3 @@ * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.

/**
* Add or remove a batch of dictionary entries.
* Adds or deletes multiple entries from your plurals, segmentation, or stop word dictionaries.
*

@@ -263,3 +264,3 @@ * Required API Key ACLs:

* @param batchDictionaryEntries - The batchDictionaryEntries object.
* @param batchDictionaryEntries.dictionaryName - Dictionary to search in.
* @param batchDictionaryEntries.dictionaryName - Dictionary type in which to search.
* @param batchDictionaryEntries.batchDictionaryEntriesParams - The batchDictionaryEntriesParams object.

@@ -270,3 +271,3 @@ * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.

/**
* Retrieve up to 1,000 records per call. Supports full-text search and filters. For better performance, it doesn\'t support: - The `distinct` query parameter - Sorting by typos, proximity, words, or geographical distance.
* Retrieves records from an index, up to 1,000 per request. While searching retrieves _hits_ (records augmented with attributes for highlighting and ranking details), browsing _just_ returns matching records. This can be useful if you want to export your indices. - The Analytics API doesn\'t collect data when using `browse`. - Records are ranked by attributes and custom ranking. - Deduplication (`distinct`) is turned off. - There\'s no ranking for: typo-tolerance, number of matched words, proximity, geo distance.
*

@@ -277,3 +278,3 @@ * Required API Key ACLs:

* @param browse - The browse object.
* @param browse.indexName - Index on which to perform the request.
* @param browse.indexName - Name of the index on which to perform the operation.
* @param browse.browseParams - The browseParams object.

@@ -284,3 +285,3 @@ * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.

/**
* Delete the records but leave settings and index-specific API keys untouched.
* Deletes only the records from an index while keeping settings, synonyms, and rules.
*

@@ -291,3 +292,3 @@ * Required API Key ACLs:

* @param clearObjects - The clearObjects object.
* @param clearObjects.indexName - Index on which to perform the request.
* @param clearObjects.indexName - Name of the index on which to perform the operation.
* @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.

@@ -297,3 +298,3 @@ */

/**
* Delete all rules in the index.
* Deletes all rules from the index.
*

@@ -304,4 +305,4 @@ * Required API Key ACLs:

* @param clearRules - The clearRules object.
* @param clearRules.indexName - Index on which to perform the request.
* @param clearRules.forwardToReplicas - Indicates whether changed index settings are forwarded to the replica indices.
* @param clearRules.indexName - Name of the index on which to perform the operation.
* @param clearRules.forwardToReplicas - Whether changes are applied to replica indices.
* @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.

@@ -311,3 +312,3 @@ */

/**
* Delete all synonyms in the index.
* Deletes all synonyms from the index.
*

@@ -318,4 +319,4 @@ * Required API Key ACLs:

* @param clearSynonyms - The clearSynonyms object.
* @param clearSynonyms.indexName - Index on which to perform the request.
* @param clearSynonyms.forwardToReplicas - Indicates whether changed index settings are forwarded to the replica indices.
* @param clearSynonyms.indexName - Name of the index on which to perform the operation.
* @param clearSynonyms.forwardToReplicas - Whether changes are applied to replica indices.
* @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.

@@ -363,3 +364,3 @@ */

/**
* Delete an existing API key. The request must be authenticated with the admin API key.
* Deletes the API key.
*

@@ -375,3 +376,3 @@ * Required API Key ACLs:

/**
* This operation doesn\'t support all the query options, only its filters (numeric, facet, or tag) and geo queries. It doesn\'t accept empty filters or queries.
* This operation doesn\'t accept empty queries or filters. It\'s more efficient to get a list of object IDs with the [`browse` operation](#tag/Search/operation/browse), and then delete the records using the [`batch` operation](tag/Records/operation/batch).
*

@@ -382,3 +383,3 @@ * Required API Key ACLs:

* @param deleteBy - The deleteBy object.
* @param deleteBy.indexName - Index on which to perform the request.
* @param deleteBy.indexName - Name of the index on which to perform the operation.
* @param deleteBy.deleteByParams - The deleteByParams object.

@@ -389,3 +390,3 @@ * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.

/**
* Delete an existing index.
* Deletes an index and all its settings. - Deleting an index doesn\'t delete its analytics data. - If you try to delete a non-existing index, the operation is ignored without warning. - If the index you want to delete has replica indices, the replicas become independent indices. - If the index you want to delete is a replica index, you must first unlink it from its primary index before you can delete it. For more information, see [Delete replica indices](https://www.algolia.com/doc/guides/managing-results/refine-results/sorting/how-to/deleting-replicas/).
*

@@ -396,3 +397,3 @@ * Required API Key ACLs:

* @param deleteIndex - The deleteIndex object.
* @param deleteIndex.indexName - Index on which to perform the request.
* @param deleteIndex.indexName - Name of the index on which to perform the operation.
* @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.

@@ -402,3 +403,3 @@ */

/**
* To delete a set of records matching a query, use the [`deleteByQuery` operation](#tag/Records/operation/deleteBy) instead.
* Deletes a record by its object ID. To delete more than one record, use the [`batch` operation](#tag/Records/operation/batch). To delete records matching a query, use the [`deleteByQuery` operation](#tag/Records/operation/deleteBy).
*

@@ -409,4 +410,4 @@ * Required API Key ACLs:

* @param deleteObject - The deleteObject object.
* @param deleteObject.indexName - Index on which to perform the request.
* @param deleteObject.objectID - Unique record (object) identifier.
* @param deleteObject.indexName - Name of the index on which to perform the operation.
* @param deleteObject.objectID - Unique record identifier.
* @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.

@@ -416,3 +417,3 @@ */

/**
* Delete a rule by its `objectID`. To find the `objectID` for rules, use the [`search` operation](#tag/Rules/operation/searchRules).
* Deletes a rule by its ID. To find the object ID for rules, use the [`search` operation](#tag/Rules/operation/searchRules).
*

@@ -423,5 +424,5 @@ * Required API Key ACLs:

* @param deleteRule - The deleteRule object.
* @param deleteRule.indexName - Index on which to perform the request.
* @param deleteRule.indexName - Name of the index on which to perform the operation.
* @param deleteRule.objectID - Unique identifier of a rule object.
* @param deleteRule.forwardToReplicas - Indicates whether changed index settings are forwarded to the replica indices.
* @param deleteRule.forwardToReplicas - Whether changes are applied to replica indices.
* @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.

@@ -431,3 +432,3 @@ */

/**
* Remove a source from the list of allowed sources.
* Deletes a source from the list of allowed sources.
*

@@ -443,3 +444,3 @@ * Required API Key ACLs:

/**
* Delete a synonym by its `objectID`. To find the object IDs of your synonyms, use the [`search` operation](#tag/Synonyms/operation/searchSynonyms).
* Deletes a synonym by its ID. To find the object IDs of your synonyms, use the [`search` operation](#tag/Synonyms/operation/searchSynonyms).
*

@@ -450,5 +451,5 @@ * Required API Key ACLs:

* @param deleteSynonym - The deleteSynonym object.
* @param deleteSynonym.indexName - Index on which to perform the request.
* @param deleteSynonym.indexName - Name of the index on which to perform the operation.
* @param deleteSynonym.objectID - Unique identifier of a synonym object.
* @param deleteSynonym.forwardToReplicas - Indicates whether changed index settings are forwarded to the replica indices.
* @param deleteSynonym.forwardToReplicas - Whether changes are applied to replica indices.
* @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.

@@ -458,3 +459,3 @@ */

/**
* Get the permissions and restrictions of a specific API key. When authenticating with the admin API key, you can request information for any of your application\'s keys. When authenticating with other API keys, you can only retrieve information for that key.
* Gets the permissions and restrictions of an API key. When authenticating with the admin API key, you can request information for any of your application\'s keys. When authenticating with other API keys, you can only retrieve information for that key.
*

@@ -467,3 +468,3 @@ * @param getApiKey - The getApiKey object.

/**
* Lists Algolia\'s [supported languages](https://www.algolia.com/doc/guides/managing-results/optimize-search-results/handling-natural-languages-nlp/in-depth/supported-languages/) and any customizations applied to each language\'s [stop word](https://www.algolia.com/doc/guides/managing-results/optimize-search-results/handling-natural-languages-nlp/how-to/customize-stop-words/), [plural](https://www.algolia.com/doc/guides/managing-results/optimize-search-results/handling-natural-languages-nlp/how-to/customize-plurals-and-other-declensions/), and [segmentation (compound)](https://www.algolia.com/doc/guides/managing-results/optimize-search-results/handling-natural-languages-nlp/how-to/customize-segmentation/) features.
* Lists supported languages with their supported dictionary types and number of custom entries.
*

@@ -477,3 +478,3 @@ * Required API Key ACLs:

/**
* Get the languages for which [stop words are turned off](#tag/Dictionaries/operation/setDictionarySettings).
* Retrieves the languages for which standard dictionary entries are turned off.
*

@@ -487,3 +488,3 @@ * Required API Key ACLs:

/**
* The request must be authenticated by an API key with the [`logs` ACL](https://www.algolia.com/doc/guides/security/api-keys/#access-control-list-acl). Logs are held for the last seven days. There\'s also a logging limit of 1,000 API calls per server. This request counts towards your [operations quota](https://support.algolia.com/hc/en-us/articles/4406981829777-How-does-Algolia-count-records-and-operations-) but doesn\'t appear in the logs itself. > **Note**: To fetch the logs for a Distributed Search Network (DSN) cluster, target the [DSN\'s endpoint](https://www.algolia.com/doc/guides/scaling/distributed-search-network-dsn/#accessing-dsn-servers).
* The request must be authenticated by an API key with the [`logs` ACL](https://www.algolia.com/doc/guides/security/api-keys/#access-control-list-acl). - Logs are held for the last seven days. - Up to 1,000 API requests per server are logged. - This request counts towards your [operations quota](https://support.algolia.com/hc/en-us/articles/4406981829777-How-does-Algolia-count-records-and-operations-) but doesn\'t appear in the logs itself.
*

@@ -494,6 +495,6 @@ * Required API Key ACLs:

* @param getLogs - The getLogs object.
* @param getLogs.offset - First log entry to retrieve. Sorted by decreasing date with 0 being the most recent.
* @param getLogs.offset - First log entry to retrieve. The most recent entries are listed first.
* @param getLogs.length - Maximum number of entries to retrieve.
* @param getLogs.indexName - Index for which log entries should be retrieved. When omitted, log entries are retrieved for all indices.
* @param getLogs.type - Type of log entries to retrieve. When omitted, all log entries are retrieved.
* @param getLogs.indexName - Index for which to retrieve log entries. By default, log entries are retrieved for all indices.
* @param getLogs.type - Type of log entries to retrieve. By default, all log entries are retrieved.
* @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.

@@ -503,3 +504,3 @@ */

/**
* To get more than one record, use the [`objects` operation](#tag/Records/operation/getObjects).
* Retrieves one record by its object ID. To retrieve more than one record, use the [`objects` operation](#tag/Records/operation/getObjects).
*

@@ -510,5 +511,5 @@ * Required API Key ACLs:

* @param getObject - The getObject object.
* @param getObject.indexName - Index on which to perform the request.
* @param getObject.objectID - Unique record (object) identifier.
* @param getObject.attributesToRetrieve - Attributes to include with the records in the response. This is useful to reduce the size of the API response. By default, all retrievable attributes are returned. `objectID` is always retrieved, even when not specified. [`unretrievableAttributes`](https://www.algolia.com/doc/api-reference/api-parameters/unretrievableAttributes/) won\'t be retrieved unless the request is authenticated with the admin API key.
* @param getObject.indexName - Name of the index on which to perform the operation.
* @param getObject.objectID - Unique record identifier.
* @param getObject.attributesToRetrieve - Attributes to include with the records in the response. This is useful to reduce the size of the API response. By default, all retrievable attributes are returned. `objectID` is always retrieved. Attributes included in `unretrievableAttributes` won\'t be retrieved unless the request is authenticated with the admin API key.
* @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.

@@ -518,3 +519,3 @@ */

/**
* Retrieve one or more records, potentially from different indices, in a single API operation. Results will be received in the same order as the requests.
* Retrieves one or more records, potentially from different indices. Records are returned in the same order as the requests.
*

@@ -529,3 +530,3 @@ * Required API Key ACLs:

/**
* Get a rule by its `objectID`. To find the `objectID` for rules, use the [`search` operation](#tag/Rules/operation/searchRules).
* Retrieves a rule by its ID. To find the object ID of rules, use the [`search` operation](#tag/Rules/operation/searchRules).
*

@@ -536,3 +537,3 @@ * Required API Key ACLs:

* @param getRule - The getRule object.
* @param getRule.indexName - Index on which to perform the request.
* @param getRule.indexName - Name of the index on which to perform the operation.
* @param getRule.objectID - Unique identifier of a rule object.

@@ -543,3 +544,3 @@ * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.

/**
* Return an object containing an index\'s [configuration settings](https://www.algolia.com/doc/api-reference/settings-api-parameters/).
* Retrieves an object with non-null index settings.
*

@@ -550,3 +551,3 @@ * Required API Key ACLs:

* @param getSettings - The getSettings object.
* @param getSettings.indexName - Index on which to perform the request.
* @param getSettings.indexName - Name of the index on which to perform the operation.
* @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.

@@ -556,3 +557,3 @@ */

/**
* Get all allowed sources (IP addresses).
* Retrieves all allowed IP addresses with access to your application.
*

@@ -566,3 +567,3 @@ * Required API Key ACLs:

/**
* Get a syonym by its `objectID`. To find the object IDs for your synonyms, use the [`search` operation](#tag/Synonyms/operation/searchSynonyms).
* Retrieves a syonym by its ID. To find the object IDs for your synonyms, use the [`search` operation](#tag/Synonyms/operation/searchSynonyms).
*

@@ -573,3 +574,3 @@ * Required API Key ACLs:

* @param getSynonym - The getSynonym object.
* @param getSynonym.indexName - Index on which to perform the request.
* @param getSynonym.indexName - Name of the index on which to perform the operation.
* @param getSynonym.objectID - Unique identifier of a synonym object.

@@ -580,3 +581,3 @@ * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.

/**
* Some operations, such as copying an index, will respond with a `taskID` value. Use this value here to check the status of that task.
* Checks the status of a given task. Indexing tasks are asynchronous. When you add, update, or delete records or indices, a task is created on a queue and completed depending on the load on the server. The indexing tasks\' responses include a task ID that you can use to check the status.
*

@@ -587,3 +588,3 @@ * Required API Key ACLs:

* @param getTask - The getTask object.
* @param getTask.indexName - Index on which to perform the request.
* @param getTask.indexName - Name of the index on which to perform the operation.
* @param getTask.taskID - Unique task identifier.

@@ -594,3 +595,3 @@ * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.

/**
* Get the IDs of the 10 users with the highest number of records per cluster. Since it can take up to a few seconds to get the data from the different clusters, the response isn\'t real-time.
* Get the IDs of the 10 users with the highest number of records per cluster. Since it can take a few seconds to get the data from the different clusters, the response isn\'t real-time.
*

@@ -604,3 +605,3 @@ * Required API Key ACLs:

/**
* Returns the userID data stored in the mapping. Since it can take up to a few seconds to get the data from the different clusters, the response isn\'t real-time.
* Returns the user ID data stored in the mapping. Since it can take a few seconds to get the data from the different clusters, the response isn\'t real-time.
*

@@ -611,3 +612,3 @@ * Required API Key ACLs:

* @param getUserId - The getUserId object.
* @param getUserId.userID - UserID to assign.
* @param getUserId.userID - User ID to assign.
* @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.

@@ -623,3 +624,3 @@ */

* @param hasPendingMappings - The hasPendingMappings object.
* @param hasPendingMappings.getClusters - Indicates whether to include the cluster\'s pending mapping state in the response.
* @param hasPendingMappings.getClusters - Whether to include the cluster\'s pending mapping state in the response.
* @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.

@@ -629,3 +630,3 @@ */

/**
* List all API keys associated with your Algolia application, including their permissions and restrictions.
* Lists all API keys associated with your Algolia application, including their permissions and restrictions.
*

@@ -639,3 +640,3 @@ * Required API Key ACLs:

/**
* List the available clusters in a multi-cluster setup.
* Lists the available clusters in a multi-cluster setup.
*

@@ -649,3 +650,3 @@ * Required API Key ACLs:

/**
* List indices in an Algolia application.
* Lists all indices in the current Algolia application. The request follows any index restrictions of the API key you use to make the request.
*

@@ -656,4 +657,4 @@ * Required API Key ACLs:

* @param listIndices - The listIndices object.
* @param listIndices.page - Returns the requested page number. The page size is determined by the `hitsPerPage` parameter. You can see the number of available pages in the `nbPages` response attribute. When `page` is null, the API response is not paginated.
* @param listIndices.hitsPerPage - Maximum number of hits per page.
* @param listIndices.page - Requested page of the API response. If `null`, the API response is not paginated.
* @param listIndices.hitsPerPage - Number of hits per page.
* @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.

@@ -663,3 +664,3 @@ */

/**
* List the userIDs assigned to a multi-cluster application. Since it can take up to a few seconds to get the data from the different clusters, the response isn\'t real-time.
* Lists the userIDs assigned to a multi-cluster application. Since it can take a few seconds to get the data from the different clusters, the response isn\'t real-time.
*

@@ -670,4 +671,4 @@ * Required API Key ACLs:

* @param listUserIds - The listUserIds object.
* @param listUserIds.page - Returns the requested page number. The page size is determined by the `hitsPerPage` parameter. You can see the number of available pages in the `nbPages` response attribute. When `page` is null, the API response is not paginated.
* @param listUserIds.hitsPerPage - Maximum number of hits per page.
* @param listUserIds.page - Requested page of the API response. If `null`, the API response is not paginated.
* @param listUserIds.hitsPerPage - Number of hits per page.
* @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.

@@ -677,3 +678,3 @@ */

/**
* To reduce the time spent on network round trips, you can perform several write actions in a single request. It\'s a multi-index version of the [`batch` operation](#tag/Records/operation/batch). Actions are applied in the order they are specified. The supported actions are equivalent to the individual operations of the same name.
* Adds, updates, or deletes records in multiple indices with a single API request. - Actions are applied in the order they are specified. - Actions are equivalent to the individual API requests of the same name.
*

@@ -685,3 +686,3 @@ * @param batchParams - The batchParams object.

/**
* This `operation`, _copy_ or _move_, will copy or move a source index\'s (`IndexName`) records, settings, synonyms, and rules to a `destination` index. If the destination index exists, it will be replaced, except for index-specific API keys and analytics data. If the destination index doesn\'t exist, it will be created. The choice between moving or copying an index depends on your needs. Choose: - **Move** to rename an index. - **Copy** to create a new index with the same records and configuration as an existing one. > **Note**: When considering copying or moving, be aware of the [rate limitations](https://www.algolia.com/doc/guides/scaling/algolia-service-limits/#application-record-and-index-limits) on these processes and the [impact on your analytics data](https://www.algolia.com/doc/guides/sending-and-managing-data/manage-indices-and-apps/manage-indices/concepts/indices-analytics/).
* Copies or moves (renames) an index within the same Algolia application. - Existing destination indices are overwritten, except for index-specific API keys and analytics data. - If the destination index doesn\'t exist yet, it\'ll be created. **Copy** - Copying a source index that doesn\'t exist creates a new index with 0 records and default settings. - The API keys of the source index are merged with the existing keys in the destination index. - You can\'t copy the `enableReRanking`, `mode`, and `replicas` settings. - You can\'t copy to a destination index that already has replicas. - Be aware of the [size limits](https://www.algolia.com/doc/guides/scaling/algolia-service-limits/#application-record-and-index-limits). - Related guide: [Copy indices](https://www.algolia.com/doc/guides/sending-and-managing-data/manage-indices-and-apps/manage-indices/how-to/copy-indices/) **Move** - Moving a source index that doesn\'t exist is ignored without returning an error. - When moving an index, the analytics data keep their original name and a new set of analytics data is started for the new name. To access the original analytics in the dashboard, create an index with the original name. - If the destination index has replicas, moving will overwrite the existing index and copy the data to the replica indices. - Related guide: [Move indices](https://www.algolia.com/doc/guides/sending-and-managing-data/manage-indices-and-apps/manage-indices/how-to/move-indices/).
*

@@ -692,3 +693,3 @@ * Required API Key ACLs:

* @param operationIndex - The operationIndex object.
* @param operationIndex.indexName - Index on which to perform the request.
* @param operationIndex.indexName - Name of the index on which to perform the operation.
* @param operationIndex.operationIndexParams - The operationIndexParams object.

@@ -699,3 +700,3 @@ * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.

/**
* Add new attributes or update current ones in an existing record. You can use any first-level attribute but not nested attributes. If you specify a [nested attribute](https://www.algolia.com/doc/guides/sending-and-managing-data/prepare-your-data/how-to/creating-and-using-nested-attributes/), the engine treats it as a replacement for its first-level ancestor.
* Adds new attributes to a record, or update existing ones. - If a record with the specified object ID doesn\'t exist, a new record is added to the index **if** `createIfNotExists` is true. - If the index doesn\'t exist yet, this method creates a new index. - You can use any first-level attribute but not nested attributes. If you specify a nested attribute, the engine treats it as a replacement for its first-level ancestor.
*

@@ -706,6 +707,6 @@ * Required API Key ACLs:

* @param partialUpdateObject - The partialUpdateObject object.
* @param partialUpdateObject.indexName - Index on which to perform the request.
* @param partialUpdateObject.objectID - Unique record (object) identifier.
* @param partialUpdateObject.attributesToUpdate - Object with attributes to update.
* @param partialUpdateObject.createIfNotExists - Indicates whether to create a new record if it doesn\'t exist yet.
* @param partialUpdateObject.indexName - Name of the index on which to perform the operation.
* @param partialUpdateObject.objectID - Unique record identifier.
* @param partialUpdateObject.attributesToUpdate - Attributes with their values.
* @param partialUpdateObject.createIfNotExists - Whether to create a new record if it doesn\'t exist.
* @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.

@@ -715,3 +716,3 @@ */

/**
* Remove a userID and its associated data from the multi-clusters.
* Deletes a user ID and its associated data from the clusters.
*

@@ -722,3 +723,3 @@ * Required API Key ACLs:

* @param removeUserId - The removeUserId object.
* @param removeUserId.userID - UserID to assign.
* @param removeUserId.userID - User ID to assign.
* @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.

@@ -728,3 +729,3 @@ */

/**
* Replace all allowed sources.
* Replaces the list of allowed sources.
*

@@ -740,3 +741,3 @@ * Required API Key ACLs:

/**
* Restore a deleted API key, along with its associated permissions. The request must be authenticated with the admin API key.
* Restores a deleted API key. Restoring resets the `validity` attribute to `0`. Algolia stores up to 1,000 API keys per application. If you create more, the oldest API keys are deleted and can\'t be restored.
*

@@ -752,3 +753,3 @@ * Required API Key ACLs:

/**
* Add a record (object) to an index or replace it. If the record doesn\'t contain an `objectID`, Algolia automatically adds it. If you use an existing `objectID`, the existing record is replaced with the new one. To add multiple records to your index in a single API request, use the [`batch` operation](#tag/Records/operation/batch).
* Adds a record to an index or replace it. - If the record doesn\'t have an object ID, a new record with an auto-generated object ID is added to your index. - If a record with the specified object ID exists, the existing record is replaced. - If a record with the specified object ID doesn\'t exist, a new record is added to your index. - If you add a record to an index that doesn\'t exist yet, a new index is created. To update _some_ attributes of a record, use the [`partial` operation](#tag/Records/operation/partial). To add, update, or replace multiple records, use the [`batch` operation](#tag/Records/operation/batch).
*

@@ -759,4 +760,4 @@ * Required API Key ACLs:

* @param saveObject - The saveObject object.
* @param saveObject.indexName - Index on which to perform the request.
* @param saveObject.body - The Algolia record.
* @param saveObject.indexName - Name of the index on which to perform the operation.
* @param saveObject.body - The record, a schemaless object with attributes that are useful in the context of search and discovery.
* @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.

@@ -766,3 +767,3 @@ */

/**
* To create or update more than one rule, use the [`batch` operation](#tag/Rules/operation/saveRules).
* If a rule with the specified object ID doesn\'t exist, it\'s created. Otherwise, the existing rule is replaced. To create or update more than one rule, use the [`batch` operation](#tag/Rules/operation/saveRules).
*

@@ -773,6 +774,6 @@ * Required API Key ACLs:

* @param saveRule - The saveRule object.
* @param saveRule.indexName - Index on which to perform the request.
* @param saveRule.indexName - Name of the index on which to perform the operation.
* @param saveRule.objectID - Unique identifier of a rule object.
* @param saveRule.rule - The rule object.
* @param saveRule.forwardToReplicas - Indicates whether changed index settings are forwarded to the replica indices.
* @param saveRule.forwardToReplicas - Whether changes are applied to replica indices.
* @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.

@@ -782,3 +783,3 @@ */

/**
* Create or update multiple rules.
* Create or update multiple rules. If a rule with the specified object ID doesn\'t exist, Algolia creates a new one. Otherwise, existing rules are replaced.
*

@@ -789,6 +790,6 @@ * Required API Key ACLs:

* @param saveRules - The saveRules object.
* @param saveRules.indexName - Index on which to perform the request.
* @param saveRules.indexName - Name of the index on which to perform the operation.
* @param saveRules.rules - The rules object.
* @param saveRules.forwardToReplicas - Indicates whether changed index settings are forwarded to the replica indices.
* @param saveRules.clearExistingRules - Indicates whether existing rules should be deleted before adding this batch.
* @param saveRules.forwardToReplicas - Whether changes are applied to replica indices.
* @param saveRules.clearExistingRules - Whether existing rules should be deleted before adding this batch.
* @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.

@@ -798,3 +799,3 @@ */

/**
* Add a [synonym](https://www.algolia.com/doc/guides/managing-results/optimize-search-results/adding-synonyms/#the-different-types-of-synonyms) to an index or replace it. If the synonym `objectID` doesn\'t exist, Algolia adds a new one. If you use an existing synonym `objectID`, the existing synonym is replaced with the new one. To add multiple synonyms in a single API request, use the [`batch` operation](#tag/Synonyms/operation/saveSynonyms).
* If a synonym with the specified object ID doesn\'t exist, Algolia adds a new one. Otherwise, the existing synonym is replaced. To add multiple synonyms in a single API request, use the [`batch` operation](#tag/Synonyms/operation/saveSynonyms).
*

@@ -805,6 +806,6 @@ * Required API Key ACLs:

* @param saveSynonym - The saveSynonym object.
* @param saveSynonym.indexName - Index on which to perform the request.
* @param saveSynonym.indexName - Name of the index on which to perform the operation.
* @param saveSynonym.objectID - Unique identifier of a synonym object.
* @param saveSynonym.synonymHit - The synonymHit object.
* @param saveSynonym.forwardToReplicas - Indicates whether changed index settings are forwarded to the replica indices.
* @param saveSynonym.forwardToReplicas - Whether changes are applied to replica indices.
* @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.

@@ -814,3 +815,3 @@ */

/**
* Create or update multiple synonyms.
* If a synonym with the `objectID` doesn\'t exist, Algolia adds a new one. Otherwise, existing synonyms are replaced.
*

@@ -821,6 +822,6 @@ * Required API Key ACLs:

* @param saveSynonyms - The saveSynonyms object.
* @param saveSynonyms.indexName - Index on which to perform the request.
* @param saveSynonyms.indexName - Name of the index on which to perform the operation.
* @param saveSynonyms.synonymHit - The synonymHit object.
* @param saveSynonyms.forwardToReplicas - Indicates whether changed index settings are forwarded to the replica indices.
* @param saveSynonyms.replaceExistingSynonyms - Indicates whether to replace all synonyms in the index with the ones sent with this request.
* @param saveSynonyms.forwardToReplicas - Whether changes are applied to replica indices.
* @param saveSynonyms.replaceExistingSynonyms - Whether to replace all synonyms in the index with the ones sent with this request.
* @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.

@@ -830,3 +831,3 @@ */

/**
* Send multiple search queries to one or more indices.
* Sends multiple search request to one or more indices. This can be useful in these cases: - Different indices for different purposes, such as, one index for products, another one for marketing content. - Multiple searches to the same index—for example, with different filters.
*

@@ -836,3 +837,3 @@ * Required API Key ACLs:

*
* @param searchMethodParams - Query requests and strategies. Results will be received in the same order as the queries.
* @param searchMethodParams - Muli-search request body. Results are returned in the same order as the requests.
* @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.

@@ -842,3 +843,3 @@ */

/**
* Search for standard and [custom](https://www.algolia.com/doc/guides/managing-results/optimize-search-results/handling-natural-languages-nlp/how-to/customize-stop-words/) entries in the [stop words](https://www.algolia.com/doc/guides/managing-results/optimize-search-results/handling-natural-languages-nlp/how-to/customize-stop-words/), [plurals](https://www.algolia.com/doc/guides/managing-results/optimize-search-results/handling-natural-languages-nlp/how-to/customize-plurals-and-other-declensions/), or [segmentation (compounds)](https://www.algolia.com/doc/guides/managing-results/optimize-search-results/handling-natural-languages-nlp/how-to/customize-segmentation/) dictionaries.
* Searches for standard and custom dictionary entries.
*

@@ -849,9 +850,9 @@ * Required API Key ACLs:

* @param searchDictionaryEntries - The searchDictionaryEntries object.
* @param searchDictionaryEntries.dictionaryName - Dictionary to search in.
* @param searchDictionaryEntries.dictionaryName - Dictionary type in which to search.
* @param searchDictionaryEntries.searchDictionaryEntriesParams - The searchDictionaryEntriesParams object.
* @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.
*/
searchDictionaryEntries({ dictionaryName, searchDictionaryEntriesParams, }: SearchDictionaryEntriesProps, requestOptions?: RequestOptions): Promise<UpdatedAtResponse>;
searchDictionaryEntries({ dictionaryName, searchDictionaryEntriesParams, }: SearchDictionaryEntriesProps, requestOptions?: RequestOptions): Promise<SearchDictionaryEntriesResponse>;
/**
* [Search for a facet\'s values](https://www.algolia.com/doc/guides/managing-results/refine-results/faceting/#search-for-facet-values), optionally restricting the returned values to those contained in records matching other search criteria. > **Note**: Pagination isn\'t supported (`page` and `hitsPerPage` are ignored). By default, the engine returns a maximum of 10 values but you can adjust this with `maxFacetHits`.
* Searches for values of a specified facet attribute. - By default, facet values are sorted by decreasing count. You can adjust this with the `sortFacetValueBy` parameter. - Searching for facet values doesn\'t work if you have **more than 65 searchable facets and searchable attributes combined**.
*

@@ -862,4 +863,4 @@ * Required API Key ACLs:

* @param searchForFacetValues - The searchForFacetValues object.
* @param searchForFacetValues.indexName - Index on which to perform the request.
* @param searchForFacetValues.facetName - Facet name.
* @param searchForFacetValues.indexName - Name of the index on which to perform the operation.
* @param searchForFacetValues.facetName - Facet attribute in which to search for values. This attribute must be included in the `attributesForFaceting` index setting with the `searchable()` modifier.
* @param searchForFacetValues.searchForFacetValuesRequest - The searchForFacetValuesRequest object.

@@ -870,3 +871,3 @@ * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.

/**
* Search for rules in your index. You can control the search with parameters. To list all rules, send an empty request body.
* Searches for rules in your index.
*

@@ -877,3 +878,3 @@ * Required API Key ACLs:

* @param searchRules - The searchRules object.
* @param searchRules.indexName - Index on which to perform the request.
* @param searchRules.indexName - Name of the index on which to perform the operation.
* @param searchRules.searchRulesParams - The searchRulesParams object.

@@ -884,3 +885,3 @@ * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.

/**
* Return records that match the query.
* Searches a single index and return matching search results (_hits_). This method lets you retrieve up to 1,000 hits. If you need more, use the [`browse` operation](#tag/Search/operation/browse) or increase the `paginatedLimitedTo` index setting.
*

@@ -891,3 +892,3 @@ * Required API Key ACLs:

* @param searchSingleIndex - The searchSingleIndex object.
* @param searchSingleIndex.indexName - Index on which to perform the request.
* @param searchSingleIndex.indexName - Name of the index on which to perform the operation.
* @param searchSingleIndex.searchParams - The searchParams object.

@@ -898,3 +899,3 @@ * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.

/**
* Search for synonyms in your index. You can control and filter the search with parameters. To get all synonyms, send an empty request body.
* Searches for synonyms in your index.
*

@@ -905,3 +906,3 @@ * Required API Key ACLs:

* @param searchSynonyms - The searchSynonyms object.
* @param searchSynonyms.indexName - Index on which to perform the request.
* @param searchSynonyms.indexName - Name of the index on which to perform the operation.
* @param searchSynonyms.searchSynonymsParams - Body of the `searchSynonyms` operation.

@@ -912,3 +913,3 @@ * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.

/**
* Since it can take up to a few seconds to get the data from the different clusters, the response isn\'t real-time. To ensure rapid updates, the user IDs index isn\'t built at the same time as the mapping. Instead, it\'s built every 12 hours, at the same time as the update of user ID usage. For example, if you add or move a user ID, the search will show an old value until the next time the mapping is rebuilt (every 12 hours).
* Since it can take a few seconds to get the data from the different clusters, the response isn\'t real-time. To ensure rapid updates, the user IDs index isn\'t built at the same time as the mapping. Instead, it\'s built every 12 hours, at the same time as the update of user ID usage. For example, if you add or move a user ID, the search will show an old value until the next time the mapping is rebuilt (every 12 hours).
*

@@ -923,3 +924,3 @@ * Required API Key ACLs:

/**
* Set stop word settings for a specific language.
* Turns standard stop word dictionary entries on or off for a given language.
*

@@ -934,3 +935,3 @@ * Required API Key ACLs:

/**
* Update the specified [index settings](https://www.algolia.com/doc/api-reference/settings-api-parameters/). Specifying null for a setting resets it to its default value.
* Update the specified index settings. Index settings that you don\'t specify are left unchanged. Specify `null` to reset a setting to its default value. For best performance, update the index settings before you add new records to your index.
*

@@ -941,5 +942,5 @@ * Required API Key ACLs:

* @param setSettings - The setSettings object.
* @param setSettings.indexName - Index on which to perform the request.
* @param setSettings.indexName - Name of the index on which to perform the operation.
* @param setSettings.indexSettings - The indexSettings object.
* @param setSettings.forwardToReplicas - Indicates whether changed index settings are forwarded to the replica indices.
* @param setSettings.forwardToReplicas - Whether changes are applied to replica indices.
* @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.

@@ -949,3 +950,3 @@ */

/**
* Replace the permissions of an existing API key. Any unspecified parameter resets that permission to its default value. The request must be authenticated with the admin API key.
* Replaces the permissions of an existing API key. Any unspecified attribute resets that attribute to its default value.
*

@@ -952,0 +953,0 @@ * Required API Key ACLs:

// Code generated by OpenAPI Generator (https://openapi-generator.tech), manual changes will be lost - read more on https://github.com/algolia/api-clients-automation. DO NOT EDIT.
/**
* API key permissions: `addObject`: required to add or update records, copy or move an index. `analytics`: required to access the Analytics API. `browse`: required to view records `deleteIndex`: required to delete indices. `deleteObject`: required to delete records. `editSettings`: required to change index settings. `inference`: required to access the Inference API. `listIndexes`: required to list indices. `logs`: required to access logs of search and indexing operations. `recommendation`: required to access the Personalization and Recommend APIs. `search`: required to search records `seeUnretrievableAttributes`: required to retrieve [`unretrievableAttributes`](https://www.algolia.com/doc/api-reference/api-parameters/unretrievableAttributes/) for all operations that return records. `settings`: required to examine index settings.
* Access control list permissions.
*/

@@ -6,0 +6,0 @@ export type Acl =

// Code generated by OpenAPI Generator (https://openapi-generator.tech), manual changes will be lost - read more on https://github.com/algolia/api-clients-automation. DO NOT EDIT.
/**
* Type of batch operation.
* Type of indexing operation.
*/

@@ -6,0 +6,0 @@ export type Action =

@@ -10,5 +10,5 @@ // Code generated by OpenAPI Generator (https://openapi-generator.tech), manual changes will be lost - read more on https://github.com/algolia/api-clients-automation. DO NOT EDIT.

/**
* Timestamp of creation in [ISO-8601](https://wikipedia.org/wiki/ISO_8601) format.
* Timestamp of creation in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format.
*/
createdAt: string;
};
// Code generated by OpenAPI Generator (https://openapi-generator.tech), manual changes will be lost - read more on https://github.com/algolia/api-clients-automation. DO NOT EDIT.
/**
* Whether the pattern parameter matches the beginning (`startsWith`) or end (`endsWith`) of the query string, is an exact match (`is`), or a partial match (`contains`).
* Which part of the search query the pattern should match: - `startsWith`. The pattern must match the begginning of the query. - `endsWith`. The pattern must match the end of the query. - `is`. The pattern must match the query exactly. - `contains`. The pattern must match anywhere in the query. Empty queries are only allowed as pattern with `anchoring: is`.
*/
export type Anchoring = 'contains' | 'endsWith' | 'is' | 'startsWith';

@@ -10,3 +10,3 @@ // Code generated by OpenAPI Generator (https://openapi-generator.tech), manual changes will be lost - read more on https://github.com/algolia/api-clients-automation. DO NOT EDIT.

/**
* [Permissions](https://www.algolia.com/doc/guides/security/api-keys/#access-control-list-acl) associated with the key.
* Permissions that determine the type of API requests this key can make. The required ACL is listed in each endpoint\'s reference. For more information, see [access control list](https://www.algolia.com/doc/guides/security/api-keys/#access-control-list-acl).
*/

@@ -16,3 +16,3 @@ acl: Acl[];

/**
* Description of an API key for you and your team members.
* Description of an API key to help you identify this API key.
*/

@@ -22,3 +22,3 @@ description?: string;

/**
* Restricts this API key to a list of indices or index patterns. If the list is empty, all indices are allowed. Specify either an exact index name or a pattern with a leading or trailing wildcard character (or both). For example: - `dev_*` matches all indices starting with \"dev_\" - `*_dev` matches all indices ending with \"_dev\" - `*_products_*` matches all indices containing \"_products_\".
* 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_\".
*/

@@ -28,3 +28,3 @@ indexes?: string[];

/**
* Maximum number of hits this API key can retrieve in one query. If zero, no limit is enforced. > **Note**: Use this parameter to protect you from third-party attempts to retrieve your entire content by massively querying the index.
* Maximum number of results this API key can retrieve in one query. By default, there\'s no limit.
*/

@@ -34,3 +34,3 @@ maxHitsPerQuery?: number;

/**
* Maximum number of API calls per hour allowed from a given IP address or [user token](https://www.algolia.com/doc/guides/sending-events/concepts/usertoken/). Each time an API call is performed with this key, a check is performed. If there were more than the specified number of calls within the last hour, the API returns an error with the status code `429` (Too Many Requests). > **Note**: Use this parameter to protect you from third-party attempts to retrieve your entire content by massively querying the index.
* 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.
*/

@@ -40,3 +40,3 @@ maxQueriesPerIPPerHour?: number;

/**
* Force some [query parameters](https://www.algolia.com/doc/api-reference/api-parameters/) to be applied for each query made with this API key. It\'s a URL-encoded query string.
* 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 that\'s outside the restricted range.
*/

@@ -46,3 +46,3 @@ queryParameters?: string;

/**
* Restrict this API key to specific [referrers](https://www.algolia.com/doc/guides/security/api-keys/in-depth/api-key-restrictions/#http-referrers). If empty, all referrers are allowed. For example: - `https://algolia.com/_*` matches all referrers starting with \"https://algolia.com/\" - `*.algolia.com` matches all referrers ending with \".algolia.com\" - `*algolia.com*` allows everything in the domain \"algolia.com\".
* 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).
*/

@@ -52,5 +52,5 @@ referers?: string[];

/**
* Validity duration of a key (in seconds). The key will automatically be removed after this time has expired. The default value of 0 never expires. Short-lived API keys are useful to grant temporary access to your data. For example, in mobile apps, you can\'t [control when users update your app](https://www.algolia.com/doc/guides/security/security-best-practices/#use-secured-api-keys-in-mobile-apps). So instead of encoding keys into your app as you would for a web app, you should dynamically fetch them from your mobile app\'s backend.
* Duration (in seconds) after which the API key expires. By default, API keys don\'t expire.
*/
validity?: number;
};

@@ -6,4 +6,4 @@ // Code generated by OpenAPI Generator (https://openapi-generator.tech), manual changes will be lost - read more on https://github.com/algolia/api-clients-automation. DO NOT EDIT.

/**
* Precision of a geographical search (in meters), to [group results that are more or less the same distance from a central point](https://www.algolia.com/doc/guides/managing-results/refine-results/geolocation/in-depth/geo-ranking-precision/).
* Precision of a coordinate-based search in meters to group results with similar distances. The Geo ranking criterion considers all matches within the same range of distances to be equal.
*/
export type AroundPrecision = AroundPrecisionFromValueInner[] | number;
// Code generated by OpenAPI Generator (https://openapi-generator.tech), manual changes will be lost - read more on https://github.com/algolia/api-clients-automation. DO NOT EDIT.
/**
* Range object with lower and upper values in meters to define custom ranges.
*/
export type AroundPrecisionFromValueInner = {
/**
* Lower boundary of a range in meters. The Geo ranking criterion considers all records within the range to be equal.
*/
from?: number;
/**
* Upper boundary of a range in meters. The Geo ranking criterion considers all records within the range to be equal.
*/
value?: number;
};

@@ -6,4 +6,4 @@ // Code generated by OpenAPI Generator (https://openapi-generator.tech), manual changes will be lost - read more on https://github.com/algolia/api-clients-automation. DO NOT EDIT.

/**
* [Maximum radius](https://www.algolia.com/doc/guides/managing-results/refine-results/geolocation/#increase-the-search-radius) for a geographical search (in meters).
* Maximum radius for a search around a central location. This parameter works in combination with the `aroundLatLng` and `aroundLatLngViaIP` parameters. By default, the search radius is determined automatically from the density of hits around the central location. The search radius is small if there are many hits close to the central coordinates.
*/
export type AroundRadius = AroundRadiusAll | number;
// Code generated by OpenAPI Generator (https://openapi-generator.tech), manual changes will be lost - read more on https://github.com/algolia/api-clients-automation. DO NOT EDIT.
/**
* Return all records with a valid `_geoloc` attribute. Don\'t filter by distance.
*/
export type AroundRadiusAll = 'all';
// Code generated by OpenAPI Generator (https://openapi-generator.tech), manual changes will be lost - read more on https://github.com/algolia/api-clients-automation. DO NOT EDIT.
/**
* Automatic facet Filter.
* Filter or optional filter to be applied to the search.
*/
export type AutomaticFacetFilter = {
/**
* Attribute to filter on. This must match a facet placeholder in the Rule\'s pattern.
* Facet name to be applied as filter. The name must match placeholders in the `pattern` parameter. For example, with `pattern: {facet:genre}`, `automaticFacetFilters` must be `genre`.
*/

@@ -13,3 +13,3 @@ facet: string;

/**
* Score for the filter. Typically used for optional or disjunctive filters.
* Filter scores to give different weights to individual filters.
*/

@@ -19,5 +19,5 @@ score?: number;

/**
* Whether the filter is disjunctive (true) or conjunctive (false).
* 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.
*/
disjunctive?: boolean;
};

@@ -6,4 +6,4 @@ // Code generated by OpenAPI Generator (https://openapi-generator.tech), manual changes will be lost - read more on https://github.com/algolia/api-clients-automation. DO NOT EDIT.

/**
* Names of facets to which automatic filtering must be applied; they must match the facet name of a facet value placeholder in the query pattern.
* Filter to be applied to the search. You can use this to respond to search queries that match a facet value. For example, if users search for \"comedy\", which matches a facet value of the \"genre\" facet, you can filter the results to show the top-ranked comedy movies.
*/
export type AutomaticFacetFilters = AutomaticFacetFilter[] | string[];

@@ -5,8 +5,13 @@ // Code generated by OpenAPI Generator (https://openapi-generator.tech), manual changes will be lost - read more on https://github.com/algolia/api-clients-automation. DO NOT EDIT.

/**
* Creates [replicas](https://www.algolia.com/doc/guides/managing-results/refine-results/sorting/in-depth/replicas/), which are copies of a primary index with the same records but different settings.
* Attributes used for [faceting](https://www.algolia.com/doc/guides/managing-results/refine-results/faceting/). Facets are ways to categorize search results based on attributes. Facets can be used to let user filter search results. By default, no attribute is used for faceting. **Modifiers** <dl> <dt><code>filterOnly(\"ATTRIBUTE\")</code></dt> <dd>Allows using this attribute as a filter, but doesn\'t evalue the facet values.</dd> <dt><code>searchable(\"ATTRIBUTE\")</code></dt> <dd>Allows searching for facet values.</dd> <dt><code>afterDistinct(\"ATTRIBUTE\")</code></dt> <dd> Evaluates the facet count _after_ deduplication with `distinct`. This ensures accurate facet counts. You can apply this modifier to searchable facets: `afterDistinct(searchable(ATTRIBUTE))`. </dd> </dl> Without modifiers, the attribute is used as a regular facet.
*/
attributesForFaceting?: string[];
/**
* 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 by synced with the primary index. **Modifier** <dl> <dt><code>virtual(\"REPLICA\")</code></dt> <dd> 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/). </dd> </dl> Without modifier, a standard replica is created, which duplicates your record count and is used for strict, or [exhaustive sorting](https://www.algolia.com/doc/guides/managing-results/refine-results/sorting/in-depth/exhaustive-sort/).
*/
replicas?: string[];
/**
* Maximum number of hits accessible through pagination.
* 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.
*/

@@ -16,3 +21,3 @@ paginationLimitedTo?: number;

/**
* Attributes that can\'t be retrieved at query time.
* 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.
*/

@@ -22,3 +27,3 @@ unretrievableAttributes?: string[];

/**
* Words for which you want to turn off [typo tolerance](https://www.algolia.com/doc/guides/managing-results/optimize-search-results/typo-tolerance/).
* Words for which you want to turn off [typo tolerance](https://www.algolia.com/doc/guides/managing-results/optimize-search-results/typo-tolerance/). 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.
*/

@@ -28,3 +33,3 @@ disableTypoToleranceOnWords?: string[];

/**
* Attributes in your index to which [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) applies. This will ensure that words indexed in Katakana or Kanji can also be searched in Hiragana.
* 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.
*/

@@ -34,3 +39,3 @@ attributesToTransliterate?: string[];

/**
* Attributes on which to split [camel case](https://wikipedia.org/wiki/Camel_case) words.
* Attributes for which to split [camel case](https://wikipedia.org/wiki/Camel_case) words.
*/

@@ -40,3 +45,3 @@ camelCaseAttributes?: string[];

/**
* Attributes in your index to which [word segmentation](https://www.algolia.com/doc/guides/managing-results/optimize-search-results/handling-natural-languages-nlp/how-to/customize-segmentation/) (decompounding) applies.
* 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). 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`).
*/

@@ -46,3 +51,3 @@ decompoundedAttributes?: Record<string, any>;

/**
* Set the languages of your index, for language-specific processing steps such as [tokenization](https://www.algolia.com/doc/guides/managing-results/optimize-search-results/handling-natural-languages-nlp/in-depth/tokenization/) and [normalization](https://www.algolia.com/doc/guides/managing-results/optimize-search-results/handling-natural-languages-nlp/in-depth/normalization/).
* [ISO code](https://en.wikipedia.org/wiki/List_of_ISO_639_language_codes) for a language 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/).
*/

@@ -52,3 +57,3 @@ indexLanguages?: string[];

/**
* 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).
* 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).
*/

@@ -58,3 +63,3 @@ disablePrefixOnAttributes?: string[];

/**
* Incidates whether the engine compresses arrays with exclusively non-negative integers. When enabled, the compressed arrays may be reordered.
* Whether arrays with exclusively non-negative integers should be compressed for better performance. If true, the compressed arrays may be reordered.
*/

@@ -64,3 +69,3 @@ allowCompressionOfIntegerArray?: boolean;

/**
* 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).
* 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). By default, all numeric attributes are available as numerical filters. For faster indexing, reduce the number of numeric attributes. If you want to turn off filtering for all numeric attributes, specifiy an attribute that doesn\'t exist in your index, such as `NO_NUMERIC_FILTERING`. **Modifier** <dl> <dt><code>equalOnly(\"ATTRIBUTE\")</code></dt> <dd> Support only filtering based on equality comparisons `=` and `!=`. </dd> </dl> Without modifier, all numeric comparisons are supported.
*/

@@ -70,3 +75,3 @@ numericAttributesForFiltering?: string[];

/**
* Controls which separators are added to an Algolia index as part of [normalization](https://www.algolia.com/doc/guides/managing-results/optimize-search-results/handling-natural-languages-nlp/#what-does-normalization-mean). Separators are all non-letter characters except spaces and currency characters, such as $€£¥.
* Controls which separators are indexed. Separators are all non-letter characters except spaces and currency characters, such as $€£¥. By default, separator characters aren\'t indexed. With `separatorsToIndex`, Algolia treats separator characters as separate words. For example, a search for `C#` would report two matches.
*/

@@ -76,3 +81,3 @@ separatorsToIndex?: string;

/**
* [Attributes used for searching](https://www.algolia.com/doc/guides/managing-results/must-do/searchable-attributes/), including determining [if matches at the beginning of a word are important (ordered) or not (unordered)](https://www.algolia.com/doc/guides/managing-results/must-do/searchable-attributes/how-to/configuring-searchable-attributes-the-right-way/#understanding-word-position).
* Attributes used for searching. 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** <dl> <dt><code>unordered(\"ATTRIBUTE\")</code></dt> <dd> Ignore the position of a match within the attribute. </dd> </dl> Without modifier, matches at the beginning of an attribute rank higer than matches at the end.
*/

@@ -82,3 +87,3 @@ searchableAttributes?: string[];

/**
* Lets you store custom data in your indices.
* An object with custom data. You can store up to 32&nbsp;kB as custom data.
*/

@@ -88,3 +93,3 @@ userData?: any | null;

/**
* A list of characters and their normalized replacements to override Algolia\'s default [normalization](https://www.algolia.com/doc/guides/managing-results/optimize-search-results/handling-natural-languages-nlp/in-depth/normalization/).
* 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/).
*/

@@ -94,5 +99,5 @@ customNormalization?: Record<string, Record<string, string>>;

/**
* Name of the deduplication attribute to be used with Algolia\'s [_distinct_ feature](https://www.algolia.com/doc/guides/managing-results/refine-results/grouping/#introducing-algolias-distinct-feature).
* Attribute that should be used to establish groups of results. 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.
*/
attributeForDistinct?: string;
};

@@ -12,3 +12,3 @@ // Code generated by OpenAPI Generator (https://openapi-generator.tech), manual changes will be lost - read more on https://github.com/algolia/api-clients-automation. DO NOT EDIT.

/**
* Overrides the query parameter and performs a more generic search.
* 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.
*/

@@ -18,3 +18,3 @@ similarQuery?: string;

/**
* [Filter](https://www.algolia.com/doc/guides/managing-results/refine-results/filtering/) the query with numeric, facet, or tag filters.
* Filter the search so that only records with matching values are included in the results. These filters are supported: - **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/).
*/

@@ -32,3 +32,3 @@ filters?: string;

/**
* Determines how to calculate [filter scores](https://www.algolia.com/doc/guides/managing-results/refine-results/filtering/in-depth/filter-scoring/#accumulating-scores-with-sumorfiltersscores). If `false`, maximum score is kept. If `true`, score is summed.
* 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).
*/

@@ -38,3 +38,3 @@ sumOrFiltersScores?: boolean;

/**
* Restricts a query to only look at a subset of your [searchable attributes](https://www.algolia.com/doc/guides/managing-results/must-do/searchable-attributes/).
* Restricts a search to a subset of your searchable attributes.
*/

@@ -44,3 +44,3 @@ restrictSearchableAttributes?: string[];

/**
* Returns [facets](https://www.algolia.com/doc/guides/managing-results/refine-results/faceting/#contextual-facet-values-and-counts), their facet values, and the number of matching facet values.
* 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).
*/

@@ -50,3 +50,3 @@ facets?: string[];

/**
* Forces faceting to be applied after [de-duplication](https://www.algolia.com/doc/guides/managing-results/refine-results/grouping/) (with the distinct feature). Alternatively, the `afterDistinct` [modifier](https://www.algolia.com/doc/api-reference/api-parameters/attributesForFaceting/#modifiers) of `attributesForFaceting` allows for more granular control.
* 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`.
*/

@@ -56,3 +56,3 @@ facetingAfterDistinct?: boolean;

/**
* Page to retrieve (the first page is `0`, not `1`).
* Page of search results to retrieve.
*/

@@ -62,3 +62,3 @@ page?: number;

/**
* Specifies the offset of the first hit to return. > **Note**: Using `page` and `hitsPerPage` is the recommended method for [paging results](https://www.algolia.com/doc/guides/building-search-ui/ui-and-ux-patterns/pagination/js/). However, you can use `offset` and `length` to implement [an alternative approach to paging](https://www.algolia.com/doc/guides/building-search-ui/ui-and-ux-patterns/pagination/js/#retrieving-a-subset-of-records-with-offset-and-length).
* Position of the first hit to retrieve.
*/

@@ -68,3 +68,3 @@ offset?: number;

/**
* Sets the number of hits to retrieve (for use with `offset`). > **Note**: Using `page` and `hitsPerPage` is the recommended method for [paging results](https://www.algolia.com/doc/guides/building-search-ui/ui-and-ux-patterns/pagination/js/). However, you can use `offset` and `length` to implement [an alternative approach to paging](https://www.algolia.com/doc/guides/building-search-ui/ui-and-ux-patterns/pagination/js/#retrieving-a-subset-of-records-with-offset-and-length).
* Number of hits to retrieve (used in combination with `offset`).
*/

@@ -74,3 +74,3 @@ length?: number;

/**
* Search for entries [around a central location](https://www.algolia.com/doc/guides/managing-results/refine-results/geolocation/#filter-around-a-central-point), enabling a geographical search within a circular area.
* Coordinates for the center of a circle, expressed as a comma-separated string of latitude and longitude. Only records included within 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`.
*/

@@ -80,3 +80,3 @@ aroundLatLng?: string;

/**
* Search for entries around a location. The location is automatically computed from the requester\'s IP address.
* Whether to obtain the coordinates from the request\'s IP address.
*/

@@ -90,3 +90,3 @@ aroundLatLngViaIP?: boolean;

/**
* Minimum radius (in meters) used for a geographical search when `aroundRadius` isn\'t set.
* Minimum radius (in meters) for a search around a location when `aroundRadius` isn\'t set.
*/

@@ -96,3 +96,3 @@ minimumAroundRadius?: number;

/**
* Search inside a [rectangular area](https://www.algolia.com/doc/guides/managing-results/refine-results/geolocation/#filtering-inside-rectangular-or-polygonal-areas) (in geographical coordinates).
* Coordinates for a rectangular area in which to search. Each bounding box is defined by the two opposite points of its diagonal, and expressed as latitude and longitude pair: `[p1 lat, p1 long, p2 lat, p2 long]`. Provide multiple bounding boxes as nested arrays. For more information, see [rectangular area](https://www.algolia.com/doc/guides/managing-results/refine-results/geolocation/#filtering-inside-rectangular-or-polygonal-areas).
*/

@@ -102,3 +102,3 @@ insideBoundingBox?: number[][];

/**
* Search inside a [polygon](https://www.algolia.com/doc/guides/managing-results/refine-results/geolocation/#filtering-inside-rectangular-or-polygonal-areas) (in geographical coordinates).
* 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`.
*/

@@ -108,3 +108,3 @@ insidePolygon?: number[][];

/**
* Changes the default values of parameters that work best for a natural language query, such as `ignorePlurals`, `removeStopWords`, `removeWordsIfNoResults`, `analyticsTags`, and `ruleContexts`. These parameters work well together when the query consists of fuller natural language strings instead of keywords, for example when processing voice search queries.
* 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`.
*/

@@ -114,3 +114,3 @@ naturalLanguages?: string[];

/**
* Assigns [rule contexts](https://www.algolia.com/doc/guides/managing-results/rules/rules-overview/how-to/customize-search-results-by-platform/#whats-a-context) to search queries.
* 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.
*/

@@ -120,3 +120,3 @@ ruleContexts?: string[];

/**
* Defines how much [Personalization affects results](https://www.algolia.com/doc/guides/personalization/personalizing-results/in-depth/configuring-personalization/#understanding-personalization-impact).
* 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).
*/

@@ -126,3 +126,3 @@ personalizationImpact?: number;

/**
* Associates a [user token](https://www.algolia.com/doc/guides/sending-events/concepts/usertoken/) with the current search.
* 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/).
*/

@@ -132,3 +132,3 @@ userToken?: string;

/**
* Incidates whether the search response includes [detailed ranking information](https://www.algolia.com/doc/guides/building-search-ui/going-further/backend-search/in-depth/understanding-the-api-response/#ranking-information).
* Whether the search response should include detailed ranking information.
*/

@@ -138,13 +138,8 @@ getRankingInfo?: boolean;

/**
* Enriches the API\'s response with information about how the query was processed.
* Whether to take into account an index\'s synonyms for this search.
*/
explain?: string[];
/**
* Whether to take into account an index\'s synonyms for a particular search.
*/
synonyms?: boolean;
/**
* Indicates whether a query ID parameter is included in the search response. This is required for [tracking click and conversion events](https://www.algolia.com/doc/guides/sending-events/concepts/event-types/#events-related-to-algolia-requests).
* 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/).
*/

@@ -154,3 +149,3 @@ clickAnalytics?: boolean;

/**
* Indicates whether this query will be included in [analytics](https://www.algolia.com/doc/guides/search-analytics/guides/exclude-queries/).
* Whether this search will be included in Analytics.
*/

@@ -165,3 +160,3 @@ analytics?: boolean;

/**
* Whether to include or exclude a query from the processing-time percentile computation.
* Whether to include this search when calculating processing-time percentiles.
*/

@@ -171,5 +166,5 @@ percentileComputation?: boolean;

/**
* Incidates whether this search will be considered in A/B testing.
* Whether to enable A/B testing for this search.
*/
enableABTest?: boolean;
};

@@ -25,3 +25,3 @@ // Code generated by OpenAPI Generator (https://openapi-generator.tech), manual changes will be lost - read more on https://github.com/algolia/api-clients-automation. DO NOT EDIT.

/**
* Automatically-computed radius.
* Distance from a central coordinate provided by `aroundLatLng`.
*/

@@ -48,3 +48,3 @@ automaticRadius?: string;

/**
* Mapping of each facet name to the corresponding facet counts.
* Facet counts.
*/

@@ -79,3 +79,3 @@ facets?: Record<string, Record<string, number>>;

/**
* Number of hits the search query matched.
* Number of results (hits).
*/

@@ -85,3 +85,3 @@ nbHits: number;

/**
* Number of pages of results for the current query.
* Number of pages of results.
*/

@@ -96,3 +96,3 @@ nbPages: number;

/**
* Page to retrieve (the first page is `0`, not `1`).
* Page of search results to retrieve.
*/

@@ -136,3 +136,3 @@ page: number;

/**
* Lets you store custom data in your indices.
* An object with custom data. You can store up to 32&nbsp;kB as custom data.
*/

@@ -139,0 +139,0 @@ userData?: any | null;

@@ -6,7 +6,7 @@ // Code generated by OpenAPI Generator (https://openapi-generator.tech), manual changes will be lost - read more on https://github.com/algolia/api-clients-automation. DO NOT EDIT.

/**
* `batchDictionaryEntries` parameters.
* Request body for updating dictionary entries.
*/
export type BatchDictionaryEntriesParams = {
/**
* Incidates whether to replace all custom entries in the dictionary with the ones sent with this request.
* Whether to replace all custom entries in the dictionary with the ones sent with this request.
*/

@@ -16,5 +16,5 @@ clearExistingDictionaryEntries?: boolean;

/**
* Operations to batch.
* List of additions and deletions to your dictionaries.
*/
requests: BatchDictionaryEntriesRequest[];
};

@@ -5,3 +5,3 @@ // Code generated by OpenAPI Generator (https://openapi-generator.tech), manual changes will be lost - read more on https://github.com/algolia/api-clients-automation. DO NOT EDIT.

/**
* Unique identifier of a task. A successful API response means that a task was added to a queue. It might not run immediately. You can check the task\'s progress with the `task` operation and this `taskID`.
* Unique identifier of a task. A successful API response means that a task was added to a queue. It might not run immediately. You can check the task\'s progress with the [`task` operation](#tag/Indices/operation/getTask) and this `taskID`.
*/

@@ -11,5 +11,5 @@ taskID: number;

/**
* Unique object (record) identifiers.
* Unique record identifiers.
*/
objectIDs: string[];
};

@@ -6,3 +6,3 @@ // Code generated by OpenAPI Generator (https://openapi-generator.tech), manual changes will be lost - read more on https://github.com/algolia/api-clients-automation. DO NOT EDIT.

/**
* To update an attribute without pushing the entire record, you can use these built-in operations.
* Update to perform on the attribute.
*/

@@ -13,5 +13,5 @@ export type BuiltInOperation = {

/**
* Value that corresponds to the operation, for example an `Increment` or `Decrement` step, `Add` or `Remove` value.
* Value that corresponds to the operation, for example an `Increment` or `Decrement` step, or an `Add` or `Remove` value.
*/
value: string;
};
// Code generated by OpenAPI Generator (https://openapi-generator.tech), manual changes will be lost - read more on https://github.com/algolia/api-clients-automation. DO NOT EDIT.
/**
* Operation to apply to the attribute.
* How to change the attribute.
*/

@@ -6,0 +6,0 @@ export type BuiltInOperationType =

@@ -39,11 +39,11 @@ // Code generated by OpenAPI Generator (https://openapi-generator.tech), manual changes will be lost - read more on https://github.com/algolia/api-clients-automation. DO NOT EDIT.

/**
* Index on which to perform the request.
* Name of the index on which to perform the operation.
*/
indexName: string;
/**
* Unique record (object) identifier.
* Unique record identifier.
*/
objectID: string;
/**
* Algolia record.
* The record, a schemaless object with attributes that are useful in the context of search and discovery.
*/

@@ -58,3 +58,3 @@ body: Record<string, any>;

/**
* UserID to assign.
* User ID to assign.
*/

@@ -70,3 +70,3 @@ xAlgoliaUserID: string;

/**
* Index on which to perform the request.
* Name of the index on which to perform the operation.
*/

@@ -82,3 +82,3 @@ indexName: string;

/**
* UserID to assign.
* User ID to assign.
*/

@@ -94,3 +94,3 @@ xAlgoliaUserID: string;

/**
* Dictionary to search in.
* Dictionary type in which to search.
*/

@@ -106,3 +106,3 @@ dictionaryName: DictionaryType;

/**
* Index on which to perform the request.
* Name of the index on which to perform the operation.
*/

@@ -118,3 +118,3 @@ indexName: string;

/**
* Index on which to perform the request.
* Name of the index on which to perform the operation.
*/

@@ -129,7 +129,7 @@ indexName: string;

/**
* Index on which to perform the request.
* Name of the index on which to perform the operation.
*/
indexName: string;
/**
* Indicates whether changed index settings are forwarded to the replica indices.
* Whether changes are applied to replica indices.
*/

@@ -144,7 +144,7 @@ forwardToReplicas?: boolean;

/**
* Index on which to perform the request.
* Name of the index on which to perform the operation.
*/
indexName: string;
/**
* Indicates whether changed index settings are forwarded to the replica indices.
* Whether changes are applied to replica indices.
*/

@@ -233,3 +233,3 @@ forwardToReplicas?: boolean;

/**
* Index on which to perform the request.
* Name of the index on which to perform the operation.
*/

@@ -245,3 +245,3 @@ indexName: string;

/**
* Index on which to perform the request.
* Name of the index on which to perform the operation.
*/

@@ -256,7 +256,7 @@ indexName: string;

/**
* Index on which to perform the request.
* Name of the index on which to perform the operation.
*/
indexName: string;
/**
* Unique record (object) identifier.
* Unique record identifier.
*/

@@ -271,3 +271,3 @@ objectID: string;

/**
* Index on which to perform the request.
* Name of the index on which to perform the operation.
*/

@@ -280,3 +280,3 @@ indexName: string;

/**
* Indicates whether changed index settings are forwarded to the replica indices.
* Whether changes are applied to replica indices.
*/

@@ -301,3 +301,3 @@ forwardToReplicas?: boolean;

/**
* Index on which to perform the request.
* Name of the index on which to perform the operation.
*/

@@ -310,3 +310,3 @@ indexName: string;

/**
* Indicates whether changed index settings are forwarded to the replica indices.
* Whether changes are applied to replica indices.
*/

@@ -331,3 +331,3 @@ forwardToReplicas?: boolean;

/**
* First log entry to retrieve. Sorted by decreasing date with 0 being the most recent.
* First log entry to retrieve. The most recent entries are listed first.
*/

@@ -340,7 +340,7 @@ offset?: number;

/**
* Index for which log entries should be retrieved. When omitted, log entries are retrieved for all indices.
* Index for which to retrieve log entries. By default, log entries are retrieved for all indices.
*/
indexName?: string;
/**
* Type of log entries to retrieve. When omitted, all log entries are retrieved.
* Type of log entries to retrieve. By default, all log entries are retrieved.
*/

@@ -355,11 +355,11 @@ type?: LogType;

/**
* Index on which to perform the request.
* Name of the index on which to perform the operation.
*/
indexName: string;
/**
* Unique record (object) identifier.
* Unique record identifier.
*/
objectID: string;
/**
* Attributes to include with the records in the response. This is useful to reduce the size of the API response. By default, all retrievable attributes are returned. `objectID` is always retrieved, even when not specified. [`unretrievableAttributes`](https://www.algolia.com/doc/api-reference/api-parameters/unretrievableAttributes/) won\'t be retrieved unless the request is authenticated with the admin API key.
* Attributes to include with the records in the response. This is useful to reduce the size of the API response. By default, all retrievable attributes are returned. `objectID` is always retrieved. Attributes included in `unretrievableAttributes` won\'t be retrieved unless the request is authenticated with the admin API key.
*/

@@ -374,3 +374,3 @@ attributesToRetrieve?: string[];

/**
* Index on which to perform the request.
* Name of the index on which to perform the operation.
*/

@@ -389,3 +389,3 @@ indexName: string;

/**
* Index on which to perform the request.
* Name of the index on which to perform the operation.
*/

@@ -400,3 +400,3 @@ indexName: string;

/**
* Index on which to perform the request.
* Name of the index on which to perform the operation.
*/

@@ -415,3 +415,3 @@ indexName: string;

/**
* Index on which to perform the request.
* Name of the index on which to perform the operation.
*/

@@ -430,3 +430,3 @@ indexName: string;

/**
* UserID to assign.
* User ID to assign.
*/

@@ -441,3 +441,3 @@ userID: string;

/**
* Indicates whether to include the cluster\'s pending mapping state in the response.
* Whether to include the cluster\'s pending mapping state in the response.
*/

@@ -452,7 +452,7 @@ getClusters?: boolean;

/**
* Returns the requested page number. The page size is determined by the `hitsPerPage` parameter. You can see the number of available pages in the `nbPages` response attribute. When `page` is null, the API response is not paginated.
* Requested page of the API response. If `null`, the API response is not paginated.
*/
page?: number;
/**
* Maximum number of hits per page.
* Number of hits per page.
*/

@@ -467,7 +467,7 @@ hitsPerPage?: number;

/**
* Returns the requested page number. The page size is determined by the `hitsPerPage` parameter. You can see the number of available pages in the `nbPages` response attribute. When `page` is null, the API response is not paginated.
* Requested page of the API response. If `null`, the API response is not paginated.
*/
page?: number;
/**
* Maximum number of hits per page.
* Number of hits per page.
*/

@@ -482,3 +482,3 @@ hitsPerPage?: number;

/**
* Index on which to perform the request.
* Name of the index on which to perform the operation.
*/

@@ -494,15 +494,15 @@ indexName: string;

/**
* Index on which to perform the request.
* Name of the index on which to perform the operation.
*/
indexName: string;
/**
* Unique record (object) identifier.
* Unique record identifier.
*/
objectID: string;
/**
* Object with attributes to update.
* Attributes with their values.
*/
attributesToUpdate: Record<string, AttributeToUpdate>;
/**
* Indicates whether to create a new record if it doesn\'t exist yet.
* Whether to create a new record if it doesn\'t exist.
*/

@@ -517,3 +517,3 @@ createIfNotExists?: boolean;

/**
* UserID to assign.
* User ID to assign.
*/

@@ -548,7 +548,7 @@ userID: string;

/**
* Index on which to perform the request.
* Name of the index on which to perform the operation.
*/
indexName: string;
/**
* The Algolia record.
* The record, a schemaless object with attributes that are useful in the context of search and discovery.
*/

@@ -563,3 +563,3 @@ body: Record<string, any>;

/**
* Index on which to perform the request.
* Name of the index on which to perform the operation.
*/

@@ -573,3 +573,3 @@ indexName: string;

/**
* Indicates whether changed index settings are forwarded to the replica indices.
* Whether changes are applied to replica indices.
*/

@@ -584,3 +584,3 @@ forwardToReplicas?: boolean;

/**
* Index on which to perform the request.
* Name of the index on which to perform the operation.
*/

@@ -590,7 +590,7 @@ indexName: string;

/**
* Indicates whether changed index settings are forwarded to the replica indices.
* Whether changes are applied to replica indices.
*/
forwardToReplicas?: boolean;
/**
* Indicates whether existing rules should be deleted before adding this batch.
* Whether existing rules should be deleted before adding this batch.
*/

@@ -605,3 +605,3 @@ clearExistingRules?: boolean;

/**
* Index on which to perform the request.
* Name of the index on which to perform the operation.
*/

@@ -615,3 +615,3 @@ indexName: string;

/**
* Indicates whether changed index settings are forwarded to the replica indices.
* Whether changes are applied to replica indices.
*/

@@ -626,3 +626,3 @@ forwardToReplicas?: boolean;

/**
* Index on which to perform the request.
* Name of the index on which to perform the operation.
*/

@@ -632,7 +632,7 @@ indexName: string;

/**
* Indicates whether changed index settings are forwarded to the replica indices.
* Whether changes are applied to replica indices.
*/
forwardToReplicas?: boolean;
/**
* Indicates whether to replace all synonyms in the index with the ones sent with this request.
* Whether to replace all synonyms in the index with the ones sent with this request.
*/

@@ -679,3 +679,3 @@ replaceExistingSynonyms?: boolean;

/**
* Dictionary to search in.
* Dictionary type in which to search.
*/

@@ -691,7 +691,7 @@ dictionaryName: DictionaryType;

/**
* Index on which to perform the request.
* Name of the index on which to perform the operation.
*/
indexName: string;
/**
* Facet name.
* Facet attribute in which to search for values. This attribute must be included in the `attributesForFaceting` index setting with the `searchable()` modifier.
*/

@@ -707,3 +707,3 @@ facetName: string;

/**
* Index on which to perform the request.
* Name of the index on which to perform the operation.
*/

@@ -719,3 +719,3 @@ indexName: string;

/**
* Index on which to perform the request.
* Name of the index on which to perform the operation.
*/

@@ -731,3 +731,3 @@ indexName: string;

/**
* Index on which to perform the request.
* Name of the index on which to perform the operation.
*/

@@ -746,3 +746,3 @@ indexName: string;

/**
* Index on which to perform the request.
* Name of the index on which to perform the operation.
*/

@@ -752,3 +752,3 @@ indexName: string;

/**
* Indicates whether changed index settings are forwarded to the replica indices.
* Whether changes are applied to replica indices.
*/

@@ -755,0 +755,0 @@ forwardToReplicas?: boolean;

@@ -7,3 +7,3 @@ // Code generated by OpenAPI Generator (https://openapi-generator.tech), manual changes will be lost - read more on https://github.com/algolia/api-clients-automation. DO NOT EDIT.

/**
* Query pattern syntax.
* Query pattern that triggers the rule. You can use either a literal string, or a special pattern `{facet:ATTRIBUTE}`, where `ATTRIBUTE` is a facet name. The rule is triggered if the query matches the literal string or a value of the specified facet. For example, with `pattern: {facet:genre}`, the rule is triggered when users search for a genre, such as \"comedy\".
*/

@@ -15,3 +15,3 @@ pattern?: string;

/**
* Whether the pattern matches on plurals, synonyms, and typos.
* Whether the pattern should match plurals, synonyms, and typos.
*/

@@ -21,5 +21,10 @@ alternatives?: boolean;

/**
* Rule context format: [A-Za-z0-9_-]+).
* 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.
*/
context?: string;
/**
* Filters that trigger the rule. You can add add filters using the syntax `facet:value` so that the rule is triggered, when the specific filter is selected. You can use `filters` on its own or combine it with the `pattern` parameter.
*/
filters?: string;
};

@@ -8,3 +8,3 @@ // Code generated by OpenAPI Generator (https://openapi-generator.tech), manual changes will be lost - read more on https://github.com/algolia/api-clients-automation. DO NOT EDIT.

/**
* [Consequences](https://www.algolia.com/doc/guides/managing-results/rules/rules-overview/#consequences) of a rule.
* Effect of the rule. For more information, see [Consequences](https://www.algolia.com/doc/guides/managing-results/rules/rules-overview/#consequences).
*/

@@ -15,3 +15,3 @@ export type Consequence = {

/**
* Records to promote.
* Records you want to pin to a specific position in the search results. You can promote up to 300 records, either individually, or as groups of up to 100 records each.
*/

@@ -21,3 +21,3 @@ promote?: Promote[];

/**
* Only use in combination with the `promote` consequence. When `true`, promoted results will be restricted to match the filters of the current search. When `false`, the promoted results will show up regardless of the filters.
* Whether promoted records must match an active filter for the consequence to be applied. This ensures that user actions (filtering the search) are given a higher precendence. For example, if you promote a record with the `color: red` attribute, and the user filters the search for `color: blue`, the \"red\" record won\'t be shown.
*/

@@ -27,3 +27,3 @@ filterPromotes?: boolean;

/**
* Records to hide. By default, you can hide up to 50 records per rule.
* Records you want to hide from the search results.
*/

@@ -33,5 +33,5 @@ hide?: ConsequenceHide[];

/**
* Custom JSON object that will be appended to the userData array in the response. This object isn\'t interpreted by the API. It\'s limited to 1kB of minified JSON.
* A JSON object with custom data that will be appended to the `userData` array in the response. This object isn\'t interpreted by the API and is limited to 1&nbsp;kB of minified JSON.
*/
userData?: any | null;
};
// Code generated by OpenAPI Generator (https://openapi-generator.tech), manual changes will be lost - read more on https://github.com/algolia/api-clients-automation. DO NOT EDIT.
/**
* Unique identifier of the record to hide.
* Object ID of the record to hide.
*/
export type ConsequenceHide = {
/**
* Unique object identifier.
* Unique record identifier.
*/
objectID: string;
};

@@ -6,4 +6,4 @@ // Code generated by OpenAPI Generator (https://openapi-generator.tech), manual changes will be lost - read more on https://github.com/algolia/api-clients-automation. DO NOT EDIT.

/**
* When providing a string, it replaces the entire query string. When providing an object, it describes incremental edits to be made to the query string (but you can\'t do both).
* Replace or edit the search query. If `consequenceQuery` is a string, the entire search query is replaced with that string. If `consequenceQuery` is an object, it describes incremental edits made to the query.
*/
export type ConsequenceQuery = ConsequenceQueryObject | string;

@@ -7,3 +7,3 @@ // Code generated by OpenAPI Generator (https://openapi-generator.tech), manual changes will be lost - read more on https://github.com/algolia/api-clients-automation. DO NOT EDIT.

/**
* Words to remove.
* Words to remove from the search query.
*/

@@ -13,5 +13,5 @@ remove?: string[];

/**
* Edits to apply.
* Changes to make to the search query.
*/
edits?: Edit[];
};

@@ -8,5 +8,5 @@ // Code generated by OpenAPI Generator (https://openapi-generator.tech), manual changes will be lost - read more on https://github.com/algolia/api-clients-automation. DO NOT EDIT.

/**
* Timestamp of creation in [ISO-8601](https://wikipedia.org/wiki/ISO_8601) format.
* Timestamp of creation in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format.
*/
createdAt: string;
};

@@ -5,5 +5,5 @@ // Code generated by OpenAPI Generator (https://openapi-generator.tech), manual changes will be lost - read more on https://github.com/algolia/api-clients-automation. DO NOT EDIT.

/**
* Cursor indicating the location to resume browsing from. Must match the value returned by the previous call. Pass this value to the subsequent browse call to get the next page of results. When the end of the index has been reached, `cursor` is absent from the response.
* 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.
*/
cursor?: string;
};

@@ -12,3 +12,3 @@ // Code generated by OpenAPI Generator (https://openapi-generator.tech), manual changes will be lost - read more on https://github.com/algolia/api-clients-automation. DO NOT EDIT.

/**
* [Filter](https://www.algolia.com/doc/guides/managing-results/refine-results/filtering/) the query with numeric, facet, or tag filters.
* Filter the search so that only records with matching values are included in the results. These filters are supported: - **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/).
*/

@@ -22,3 +22,3 @@ filters?: string;

/**
* Search for entries [around a central location](https://www.algolia.com/doc/guides/managing-results/refine-results/geolocation/#filter-around-a-central-point), enabling a geographical search within a circular area.
* Coordinates for the center of a circle, expressed as a comma-separated string of latitude and longitude. Only records included within 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`.
*/

@@ -30,3 +30,3 @@ aroundLatLng?: string;

/**
* Search inside a [rectangular area](https://www.algolia.com/doc/guides/managing-results/refine-results/geolocation/#filtering-inside-rectangular-or-polygonal-areas) (in geographical coordinates).
* Coordinates for a rectangular area in which to search. Each bounding box is defined by the two opposite points of its diagonal, and expressed as latitude and longitude pair: `[p1 lat, p1 long, p2 lat, p2 long]`. Provide multiple bounding boxes as nested arrays. For more information, see [rectangular area](https://www.algolia.com/doc/guides/managing-results/refine-results/geolocation/#filtering-inside-rectangular-or-polygonal-areas).
*/

@@ -36,5 +36,5 @@ insideBoundingBox?: number[][];

/**
* Search inside a [polygon](https://www.algolia.com/doc/guides/managing-results/refine-results/geolocation/#filtering-inside-rectangular-or-polygonal-areas) (in geographical coordinates).
* 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`.
*/
insidePolygon?: number[][];
};

@@ -8,3 +8,3 @@ // Code generated by OpenAPI Generator (https://openapi-generator.tech), manual changes will be lost - read more on https://github.com/algolia/api-clients-automation. DO NOT EDIT.

/**
* Unique identifier of a task. A successful API response means that a task was added to a queue. It might not run immediately. You can check the task\'s progress with the `task` operation and this `taskID`.
* Unique identifier of a task. A successful API response means that a task was added to a queue. It might not run immediately. You can check the task\'s progress with the [`task` operation](#tag/Indices/operation/getTask) and this `taskID`.
*/

@@ -11,0 +11,0 @@ taskID: number;

@@ -10,3 +10,3 @@ // Code generated by OpenAPI Generator (https://openapi-generator.tech), manual changes will be lost - read more on https://github.com/algolia/api-clients-automation. DO NOT EDIT.

/**
* Unique identifier for a dictionary object.
* Unique identifier for the dictionary entry.
*/

@@ -16,3 +16,3 @@ objectID: string;

/**
* [Supported language ISO code](https://www.algolia.com/doc/guides/managing-results/optimize-search-results/handling-natural-languages-nlp/in-depth/supported-languages/).
* ISO code of a [supported language](https://www.algolia.com/doc/guides/managing-results/optimize-search-results/handling-natural-languages-nlp/in-depth/supported-languages/).
*/

@@ -22,3 +22,3 @@ language: string;

/**
* Dictionary entry word. Usage depends on the type of dictionary entry. **`stopwordEntry`** The stop word you want to add or update. If the entry already exists in Algolia\'s standard dictionary, you can override its behavior by adding it to the custom dictionary and setting its `state` to `disabled`. **`compoundEntry`** When `decomposition` is empty: adds `word` as a compound atom. For example, atom “kino” decomposes the query “kopfkino” into \"kopf\" and \"kino\". When `decomposition` isn\'t empty: creates a decomposition exception. For example, when decomposition is set to the [\"hund\", \"hutte\"] exception, \"hundehutte\" decomposes into “hund” and “hutte”, discarding the linking \"e\".
* Matching dictionary word for `stopwords` and `compounds` dictionaries.
*/

@@ -28,3 +28,3 @@ word?: string;

/**
* Compound dictionary [word declensions](https://www.algolia.com/doc/guides/managing-results/optimize-search-results/handling-natural-languages-nlp/how-to/customize-plurals-and-other-declensions/). If the entry already exists in Algolia\'s standard dictionary, you can override its behavior by adding it to the custom dictionary and setting its `state` to `disabled`.
* Matching words in the `plurals` dictionary including declensions.
*/

@@ -34,3 +34,3 @@ words?: string[];

/**
* For compound entries, governs the behavior of the `word` parameter.
* Invividual components of a compound word in the `compounds` dictionary.
*/

@@ -37,0 +37,0 @@ decomposition?: string[];

// Code generated by OpenAPI Generator (https://openapi-generator.tech), manual changes will be lost - read more on https://github.com/algolia/api-clients-automation. DO NOT EDIT.
/**
* Indicates whether a dictionary entry is active (`enabled`) or inactive (`disabled`).
* Whether a dictionary entry is active.
*/
export type DictionaryEntryState = 'disabled' | 'enabled';
// Code generated by OpenAPI Generator (https://openapi-generator.tech), manual changes will be lost - read more on https://github.com/algolia/api-clients-automation. DO NOT EDIT.
/**
* Custom entries for a dictionary.
* Dictionary type. If `null`, this dictionary type isn\'t supported for the language.
*/
export type DictionaryLanguage = {
/**
* If `0`, the dictionary hasn\'t been customized and only contains standard entries provided by Algolia. If `null`, that feature isn\'t available or isn\'t supported for that language.
* Number of custom dictionary entries.
*/
nbCustomEntries?: number;
};

@@ -6,3 +6,3 @@ // Code generated by OpenAPI Generator (https://openapi-generator.tech), manual changes will be lost - read more on https://github.com/algolia/api-clients-automation. DO NOT EDIT.

/**
* Enable or turn off the built-in Algolia stop words for a specific language.
* Turn on or off the built-in Algolia stop words for a specific language.
*/

@@ -9,0 +9,0 @@ export type DictionarySettingsParams = {

// Code generated by OpenAPI Generator (https://openapi-generator.tech), manual changes will be lost - read more on https://github.com/algolia/api-clients-automation. DO NOT EDIT.
/**
* Enables [deduplication or grouping of results (Algolia\'s _distinct_ feature](https://www.algolia.com/doc/guides/managing-results/refine-results/grouping/#introducing-algolias-distinct-feature)).
* Determines how many records of a group are included in the search results. Records with the same value for the `attributeForDistinct` attribute are considered a group. The `distinct` setting controls how many members of the group are returned. This is useful for [deduplication and grouping](https://www.algolia.com/doc/guides/managing-results/refine-results/grouping/#introducing-algolias-distinct-feature). The `distinct` setting is ignored if `attributeForDistinct` is not set.
*/
export type Distinct = boolean | number;

@@ -14,5 +14,5 @@ // Code generated by OpenAPI Generator (https://openapi-generator.tech), manual changes will be lost - read more on https://github.com/algolia/api-clients-automation. DO NOT EDIT.

/**
* Text that should be inserted in place of the removed text inside the query string.
* Text to be added in place of the deleted text inside the query string.
*/
insert?: string;
};
// Code generated by OpenAPI Generator (https://openapi-generator.tech), manual changes will be lost - read more on https://github.com/algolia/api-clients-automation. DO NOT EDIT.
/**
* Determines how 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) is computed when the query contains only one word.
* Determines how 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) is computed when the search query has only one word. <dl> <dt><code>attribute</code></dt> <dd> The Exact ranking criterion is 1 if the query word and attribute value are the same. For example, a search for \"road\" will match the value \"road\", but not \"road trip\". </dd> <dt><code>none</code></dt> <dd> The Exact ranking criterion is ignored on single-word searches. </dd> <dt><code>word</code></dt> <dd> The Exact ranking criterion is 1 if the query word is found in the attribute value. The query word must have at least 3 characters and must not be a stop word. </dd> </dl> If `exactOnSingleWordQuery` is `word`, only exact matches will be highlighted, partial and prefix matches won\'t.
*/
export type ExactOnSingleWordQuery = 'attribute' | 'none' | 'word';

@@ -6,4 +6,4 @@ // Code generated by OpenAPI Generator (https://openapi-generator.tech), manual changes will be lost - read more on https://github.com/algolia/api-clients-automation. DO NOT EDIT.

/**
* [Filter hits by facet value](https://www.algolia.com/doc/api-reference/api-parameters/facetFilters/).
* Filter the search by facet values, so that only records with the same facet values are retrieved. **Prefer using the `filters` parameter, which supports all filter types and combinations with boolean operators.** - `[filter1, filter2]` is interpreted as `filter1 AND filter2`. - `[[filter1, filter2], filter3]` is interpreted as `filter1 OR filter2 AND filter3`. - `facet:-value` is interpreted as `NOT facet:value`. While it\'s best to avoid attributes that start with a `-`, you can still filter them by escaping with a backslash: `facet:\\-value`.
*/
export type FacetFilters = MixedSearchFilters[] | string;

@@ -10,3 +10,3 @@ // Code generated by OpenAPI Generator (https://openapi-generator.tech), manual changes will be lost - read more on https://github.com/algolia/api-clients-automation. DO NOT EDIT.

/**
* Markup text with `facetQuery` matches highlighted.
* Highlighted attribute value, including HTML tags.
*/

@@ -16,5 +16,5 @@ highlighted: string;

/**
* Number of records containing this facet value. This takes into account the extra search parameters specified in the query. Like for a regular search query, the [counts may not be exhaustive](https://support.algolia.com/hc/en-us/articles/4406975248145-Why-are-my-facet-and-hit-counts-not-accurate-).
* Number of records with this facet value. [The count may be approximated](https://support.algolia.com/hc/en-us/articles/4406975248145-Why-are-my-facet-and-hit-counts-not-accurate-).
*/
count: number;
};

@@ -7,3 +7,3 @@ // Code generated by OpenAPI Generator (https://openapi-generator.tech), manual changes will be lost - read more on https://github.com/algolia/api-clients-automation. DO NOT EDIT.

/**
* Defines the ordering of facets (widgets).
* Order of facet names and facet values in your UI.
*/

@@ -14,5 +14,5 @@ export type FacetOrdering = {

/**
* Ordering of facet values within an individual facet.
* Order of facet values. One object for each facet.
*/
values?: Record<string, Value>;
};
// Code generated by OpenAPI Generator (https://openapi-generator.tech), manual changes will be lost - read more on https://github.com/algolia/api-clients-automation. DO NOT EDIT.
/**
* Ordering of facets (widgets).
* Order of facet names.
*/
export type Facets = {
/**
* Pinned order of facet lists.
* Explicit order of facets or facet values. This setting lets you always show specific facets or facet values at the top of the list.
*/
order?: string[];
};
// Code generated by OpenAPI Generator (https://openapi-generator.tech), manual changes will be lost - read more on https://github.com/algolia/api-clients-automation. DO NOT EDIT.
/**
* Record retrieval operation.
* Request body for retrieving records.
*/

@@ -13,3 +13,3 @@ export type GetObjectsRequest = {

/**
* Record\'s objectID.
* Object ID for the record to retrieve.
*/

@@ -19,5 +19,5 @@ objectID: string;

/**
* Name of the index containing the required records.
* Index from which to retrieve the records.
*/
indexName: string;
};

@@ -5,5 +5,5 @@ // Code generated by OpenAPI Generator (https://openapi-generator.tech), manual changes will be lost - read more on https://github.com/algolia/api-clients-automation. DO NOT EDIT.

/**
* Retrieved results.
* Retrieved records.
*/
results: T[];
};

@@ -5,3 +5,3 @@ // Code generated by OpenAPI Generator (https://openapi-generator.tech), manual changes will be lost - read more on https://github.com/algolia/api-clients-automation. DO NOT EDIT.

/**
* Indicates whether there are clusters undergoing migration, creation, or deletion.
* Whether there are clusters undergoing migration, creation, or deletion.
*/

@@ -8,0 +8,0 @@ pending: boolean;

@@ -6,7 +6,7 @@ // Code generated by OpenAPI Generator (https://openapi-generator.tech), manual changes will be lost - read more on https://github.com/algolia/api-clients-automation. DO NOT EDIT.

/**
* Show highlighted section and words matched on a query.
* Surround words that match the query with HTML tags for highlighting.
*/
export type HighlightResultOption = {
/**
* Markup text with `facetQuery` matches highlighted.
* Highlighted attribute value, including HTML tags.
*/

@@ -18,3 +18,3 @@ value: string;

/**
* List of words from the query that matched the object.
* List of matched words from the search query.
*/

@@ -21,0 +21,0 @@ matchedWords: string[];

@@ -8,7 +8,7 @@ // Code generated by OpenAPI Generator (https://openapi-generator.tech), manual changes will be lost - read more on https://github.com/algolia/api-clients-automation. DO NOT EDIT.

/**
* A single hit.
* Search result. A hit is a record from your index, augmented with special attributes for highlighting, snippeting, and ranking.
*/
export type Hit<T = Record<string, any>> = T & {
/**
* Unique object identifier.
* Unique record identifier.
*/

@@ -18,3 +18,3 @@ objectID: string;

/**
* Show highlighted section and words matched on a query.
* Surround words that match the query with HTML tags for highlighting.
*/

@@ -24,3 +24,3 @@ _highlightResult?: Record<string, HighlightResult>;

/**
* Snippeted attributes show parts of the matched attributes. Only returned when attributesToSnippet is non-empty.
* Snippets that show the context around a matching search query.
*/

@@ -27,0 +27,0 @@ _snippetResult?: Record<string, SnippetResult>;

// Code generated by OpenAPI Generator (https://openapi-generator.tech), manual changes will be lost - read more on https://github.com/algolia/api-clients-automation. DO NOT EDIT.
/**
* Treats singular, plurals, and other forms of declensions as matching terms. `ignorePlurals` is used in conjunction with the `queryLanguages` setting. _list_: language ISO codes for which ignoring plurals should be enabled. This list will override any values that you may have set in `queryLanguages`. _true_: enables the ignore plurals feature, where singulars and plurals are considered equivalent (\"foot\" = \"feet\"). The languages supported here are either [every language](https://www.algolia.com/doc/guides/managing-results/optimize-search-results/handling-natural-languages-nlp/in-depth/supported-languages/) (this is the default) or those set by `queryLanguages`. _false_: turns off the ignore plurals feature, so that singulars and plurals aren\'t considered to be the same (\"foot\" will not find \"feet\").
* Treat singular, plurals, and other forms of declensions as equivalent. You should only use this feature for the languages used in your index.
*/
export type IgnorePlurals = string[] | boolean;

@@ -120,2 +120,3 @@ // Code generated by OpenAPI Generator (https://openapi-generator.tech), manual changes will be lost - read more on https://github.com/algolia/api-clients-automation. DO NOT EDIT.

export * from './searchDictionaryEntriesParams';
export * from './searchDictionaryEntriesResponse';
export * from './searchForFacetValuesRequest';

@@ -122,0 +123,0 @@ export * from './searchForFacetValuesResponse';

@@ -7,4 +7,4 @@ // Code generated by OpenAPI Generator (https://openapi-generator.tech), manual changes will be lost - read more on https://github.com/algolia/api-clients-automation. DO NOT EDIT.

/**
* Algolia index settings.
* Index settings.
*/
export type IndexSettings = BaseIndexSettings & IndexSettingsAsSearchParams;

@@ -19,13 +19,8 @@ // Code generated by OpenAPI Generator (https://openapi-generator.tech), manual changes will be lost - read more on https://github.com/algolia/api-clients-automation. DO NOT EDIT.

/**
* Attributes used for [faceting](https://www.algolia.com/doc/guides/managing-results/refine-results/faceting/) and the [modifiers](https://www.algolia.com/doc/api-reference/api-parameters/attributesForFaceting/#modifiers) that can be applied: `filterOnly`, `searchable`, and `afterDistinct`.
* Attributes to include in the API response. To reduce the size of your response, you can retrieve only some of the attributes. - `*` 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.
*/
attributesForFaceting?: string[];
/**
* Attributes to include in the API response. To reduce the size of your response, you can retrieve only some of the attributes. By default, the response includes all attributes.
*/
attributesToRetrieve?: string[];
/**
* Determines the order in which Algolia [returns your results](https://www.algolia.com/doc/guides/managing-results/relevance-overview/in-depth/ranking-criteria/).
* 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** <dl> <dt><code>asc(\"ATTRIBUTE\")</code></dt> <dd>Sort the index by the values of an attribute, in ascending order.</dd> <dt><code>desc(\"ATTRIBUTE\")</code></dt> <dd>Sort the index by the values of an attribute, in descending order.</dd> </dl> 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/).
*/

@@ -35,3 +30,3 @@ ranking?: string[];

/**
* Specifies the [Custom ranking criterion](https://www.algolia.com/doc/guides/managing-results/must-do/custom-ranking/). Use the `asc` and `desc` modifiers to specify the ranking order: ascending or descending.
* Attributes to use as [custom ranking](https://www.algolia.com/doc/guides/managing-results/must-do/custom-ranking/). 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** <dl> <dt><code>asc(\"ATTRIBUTE\")</code></dt> <dd>Sort the index by the values of an attribute, in ascending order.</dd> <dt><code>desc(\"ATTRIBUTE\")</code></dt> <dd>Sort the index by the values of an attribute, in descending order.</dd> </dl> 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.
*/

@@ -41,3 +36,3 @@ customRanking?: string[];

/**
* Relevancy threshold below which less relevant results aren\'t included in the results.
* 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.
*/

@@ -47,3 +42,3 @@ relevancyStrictness?: number;

/**
* Attributes to highlight. Strings that match the search query in the attributes are highlighted by surrounding them with HTML tags (`highlightPreTag` and `highlightPostTag`).
* Attributes to highlight. By default, all searchable attributes are highlighted. Use `*` to highlight all attributes or use an empty array `[]` to turn off highlighting. 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/).
*/

@@ -53,3 +48,3 @@ attributesToHighlight?: string[];

/**
* Attributes to _snippet_. \'Snippeting\' is shortening the attribute to a certain number of words. If not specified, the attribute is shortened to the 10 words around the matching string but you can specify the number. For example: `body:20`.
* Attributes for which to enable snippets. 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.
*/

@@ -59,3 +54,3 @@ attributesToSnippet?: string[];

/**
* HTML string to insert before the highlighted parts in all highlight and snippet results.
* HTML tag to insert before the highlighted parts in all highlighted results and snippets.
*/

@@ -65,3 +60,3 @@ highlightPreTag?: string;

/**
* HTML string to insert after the highlighted parts in all highlight and snippet results.
* HTML tag to insert after the highlighted parts in all highlighted results and snippets.
*/

@@ -76,3 +71,3 @@ highlightPostTag?: string;

/**
* Restrict highlighting and snippeting to items that matched the query.
* Whether to restrict highlighting and snippeting to items that at least partially matched the search query. By default, all items are highlighted and snippeted.
*/

@@ -87,3 +82,3 @@ restrictHighlightAndSnippetArrays?: boolean;

/**
* Minimum number of characters a word in the query string 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).
* 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).
*/

@@ -93,3 +88,3 @@ minWordSizefor1Typo?: number;

/**
* Minimum number of characters a word in the query string 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).
* 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).
*/

@@ -101,3 +96,3 @@ minWordSizefor2Typos?: number;

/**
* Whether to allow typos on numbers (\"numeric tokens\") in the query string.
* 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.
*/

@@ -107,3 +102,3 @@ allowTyposOnNumericTokens?: boolean;

/**
* Attributes for which you want to turn off [typo tolerance](https://www.algolia.com/doc/guides/managing-results/optimize-search-results/typo-tolerance/).
* Attributes for which you want to turn off [typo tolerance](https://www.algolia.com/doc/guides/managing-results/optimize-search-results/typo-tolerance/). 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.
*/

@@ -117,3 +112,3 @@ disableTypoToleranceOnAttributes?: string[];

/**
* Characters that the engine shouldn\'t automatically [normalize](https://www.algolia.com/doc/guides/managing-results/optimize-search-results/handling-natural-languages-nlp/in-depth/normalization/).
* 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.
*/

@@ -123,3 +118,3 @@ keepDiacriticsOnCharacters?: string;

/**
* Sets your user\'s search language. This adjusts language-specific settings and features such as `ignorePlurals`, `removeStopWords`, and [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) word detection.
* [ISO code](https://en.wikipedia.org/wiki/List_of_ISO_639_language_codes) for language-specific settings such as plurals, stop words, 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/).
*/

@@ -129,3 +124,3 @@ queryLanguages?: string[];

/**
* [Splits compound words](https://www.algolia.com/doc/guides/managing-results/optimize-search-results/handling-natural-languages-nlp/in-depth/language-specific-configurations/#splitting-compound-words) into their component word parts in the query.
* Whether to split compound words 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.
*/

@@ -135,3 +130,3 @@ decompoundQuery?: boolean;

/**
* Incidates whether [Rules](https://www.algolia.com/doc/guides/managing-results/rules/rules-overview/) are enabled.
* Whether to enable rules.
*/

@@ -141,3 +136,3 @@ enableRules?: boolean;

/**
* Incidates whether [Personalization](https://www.algolia.com/doc/guides/personalization/what-is-personalization/) is enabled.
* Whether to enable Personalization.
*/

@@ -155,3 +150,3 @@ enablePersonalization?: boolean;

/**
* Enables the [advanced query syntax](https://www.algolia.com/doc/guides/managing-results/optimize-search-results/override-search-engine-defaults/#advanced-syntax).
* Whether to support phrase matching and excluding words from search queries. Use the `advancedSyntaxFeatures` parameter to control which feature is supported.
*/

@@ -161,3 +156,3 @@ advancedSyntax?: boolean;

/**
* Words which should be considered [optional](https://www.algolia.com/doc/guides/managing-results/optimize-search-results/empty-or-insufficient-results/#creating-a-list-of-optional-words) when found in a query.
* Words that should be considered optional when found in the query. By default, records must match all words in the search query to be included in the search results. Adding optional words can help to increase the number of search results by running an additional search query that doesn\'t include the optional words. For example, if the search query is \"action video\" and \"video\" is an optional word, the search engine runs two queries. One for \"action video\" and one for \"action\". Records that match all words are ranked higher. For a search query with 4 or more words **and** all its words are optional, the number of matched words required for a record to be included in the search results increases for every 1,000 records: - If `optionalWords` has less than 10 words, the required number of matched words increases by 1: results 1 to 1,000 require 1 matched word, results 1,001 to 2000 need 2 matched words. - If `optionalWords` has 10 or more words, the number of required matched words increases by the number of optional words dividied by 5 (rounded down). For example, with 18 optional words: results 1 to 1,000 require 1 matched word, results 1,001 to 2000 need 4 matched words. For more information, see [Optional words](https://www.algolia.com/doc/guides/managing-results/optimize-search-results/empty-or-insufficient-results/#creating-a-list-of-optional-words).
*/

@@ -167,3 +162,3 @@ optionalWords?: string[];

/**
* 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).
* 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). This can be useful for attributes with long values, where the likelyhood 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.
*/

@@ -175,3 +170,3 @@ disableExactOnAttributes?: string[];

/**
* Alternatives that should be considered an exact match by [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).
* Alternatives of query words that should be considered as exact matches by the Exact ranking criterion. <dl> <dt><code>ignorePlurals</code></dt> <dd> Plurals and similar declensions added by the `ignorePlurals` setting are considered exact matches. </dd> <dt><code>singleWordSynonym</code></dt> <dd> Single-word synonyms, such as \"NY/NYC\" are considered exact matches. </dd> <dt><code>multiWordsSynonym</code></dt> <dd> Multi-word synonyms, such as \"NY/New York\" are considered exact matches. </dd> </dl>.
*/

@@ -181,3 +176,3 @@ alternativesAsExact?: AlternativesAsExact[];

/**
* Allows you to specify which advanced syntax features are active when `advancedSyntax` is enabled.
* Advanced search syntax features you want to support. <dl> <dt><code>exactPhrase</code></dt> <dd> Phrases in quotes must match exactly. For example, `sparkly blue \"iPhone case\"` only returns records with the exact string \"iPhone case\". </dd> <dt><code>excludeWords</code></dt> <dd> Query words prefixed with a `-` must not occur in a record. For example, `search -engine` matches records that contain \"search\" but not \"engine\". </dd> </dl> This setting only has an effect if `advancedSyntax` is true.
*/

@@ -189,3 +184,3 @@ advancedSyntaxFeatures?: AdvancedSyntaxFeatures[];

/**
* Whether to highlight and snippet the original word that matches the synonym or the synonym itself.
* 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 occurences of \"house\" are replaced by \"home\" in the highlighted response.
*/

@@ -195,3 +190,3 @@ replaceSynonymsInHighlight?: boolean;

/**
* Precision of the [proximity ranking criterion](https://www.algolia.com/doc/guides/managing-results/relevance-overview/in-depth/ranking-criteria/#proximity).
* 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.
*/

@@ -201,3 +196,3 @@ minProximity?: number;

/**
* Attributes to include in the API response for search and browse queries.
* 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 attributes should be included. You can\'t exclude these properties: `message`, `warning`, `cursor`, `serverUsed`, `indexUsed`, `abTestVariantID`, `parsedQuery`, or any property triggered by the `getRankingInfo` parameter. Don\'t exclude properties that you might need in your search UI.
*/

@@ -207,3 +202,3 @@ responseFields?: string[];

/**
* Maximum number of facet hits to return when [searching for facet values](https://www.algolia.com/doc/guides/managing-results/refine-results/faceting/#search-for-facet-values).
* 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).
*/

@@ -218,3 +213,3 @@ maxFacetHits?: number;

/**
* Controls how facet values are fetched.
* Order in which to retrieve facet values. <dl> <dt><code>count</code></dt> <dd> Facet values are retrieved by decreasing count. The count is the number of matching records containing this facet value. </dd> <dt><code>alpha</code></dt> <dd>Retrieve facet values alphabetically.</dd> </dl> 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/).
*/

@@ -224,3 +219,3 @@ sortFacetValuesBy?: string;

/**
* When the [Attribute criterion is ranked above Proximity](https://www.algolia.com/doc/guides/managing-results/relevance-overview/in-depth/ranking-criteria/#attribute-and-proximity-combinations) in your ranking formula, Proximity is used to select which searchable attribute is matched in the Attribute ranking stage.
* 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.
*/

@@ -232,3 +227,3 @@ attributeCriteriaComputedByMinProximity?: boolean;

/**
* Indicates whether this search will use [Dynamic Re-Ranking](https://www.algolia.com/doc/guides/algolia-ai/re-ranking/).
* 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.
*/

@@ -235,0 +230,0 @@ enableReRanking?: boolean;

@@ -7,3 +7,3 @@ // Code generated by OpenAPI Generator (https://openapi-generator.tech), manual changes will be lost - read more on https://github.com/algolia/api-clients-automation. DO NOT EDIT.

/**
* Timestamp in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format.
* Timestamp of the API request in ISO 8601 format.
*/

@@ -13,3 +13,3 @@ timestamp: string;

/**
* HTTP method of the performed request.
* HTTP method of the request.
*/

@@ -19,3 +19,3 @@ method: string;

/**
* HTTP response code.
* HTTP status code of the response.
*/

@@ -25,3 +25,3 @@ answer_code: string;

/**
* Request body. Truncated after 1,000 characters.
* Request body.
*/

@@ -31,3 +31,3 @@ query_body: string;

/**
* Answer body. Truncated after 1,000 characters.
* Response body.
*/

@@ -37,3 +37,3 @@ answer: string;

/**
* Request URL.
* URL of the API endpoint.
*/

@@ -48,3 +48,3 @@ url: string;

/**
* Request headers (API key is obfuscated).
* Request headers (API keys are obfuscated).
*/

@@ -59,3 +59,3 @@ query_headers: string;

/**
* Number of API calls.
* Number of API requests.
*/

@@ -65,3 +65,3 @@ nb_api_calls: string;

/**
* Processing time for the query. Doesn\'t include network time.
* Processing time for the query in milliseconds. This doesn\'t include latency due to the network.
*/

@@ -81,3 +81,3 @@ processing_time_ms: string;

/**
* Number of hits returned for the query.
* Number of search results (hits) returned for the query.
*/

@@ -87,5 +87,5 @@ query_nb_hits?: string;

/**
* Performed queries for the given request.
* Queries performed for the given request.
*/
inner_queries?: LogQuery[];
};

@@ -10,3 +10,3 @@ // Code generated by OpenAPI Generator (https://openapi-generator.tech), manual changes will be lost - read more on https://github.com/algolia/api-clients-automation. DO NOT EDIT.

/**
* User identifier.
* A user identifier.
*/

@@ -13,0 +13,0 @@ user_token?: string;

// Code generated by OpenAPI Generator (https://openapi-generator.tech), manual changes will be lost - read more on https://github.com/algolia/api-clients-automation. DO NOT EDIT.
/**
* Indicates how well the attribute matched the search query.
* Whether the whole query string matches or only a part.
*/
export type MatchLevel = 'full' | 'none' | 'partial';
// Code generated by OpenAPI Generator (https://openapi-generator.tech), manual changes will be lost - read more on https://github.com/algolia/api-clients-automation. DO NOT EDIT.
/**
* Search mode the index will use to query for results.
* Search mode the index will use to query for results. This setting only applies to indices, for which Algolia enabled NeuralSearch for you.
*/
export type Mode = 'keywordSearch' | 'neuralSearch';

@@ -5,3 +5,3 @@ // Code generated by OpenAPI Generator (https://openapi-generator.tech), manual changes will be lost - read more on https://github.com/algolia/api-clients-automation. DO NOT EDIT.

/**
* TaskIDs per index.
* Task IDs. One for each index.
*/

@@ -11,5 +11,5 @@ taskID: Record<string, number>;

/**
* Unique object (record) identifiers.
* Unique record identifiers.
*/
objectIDs: string[];
};

@@ -6,4 +6,4 @@ // Code generated by OpenAPI Generator (https://openapi-generator.tech), manual changes will be lost - read more on https://github.com/algolia/api-clients-automation. DO NOT EDIT.

/**
* [Filter on numeric attributes](https://www.algolia.com/doc/api-reference/api-parameters/numericFilters/).
* Filter by numeric facets. **Prefer using the `filters` parameter, which supports all filter types and combinations with boolean operators.** You can use numeric comparison operators: `<`, `<=`, `=`, `!=`, `>`, `>=`. Comparsions are precise up to 3 decimals. You can also provide ranges: `facet:<lower> TO <upper>`. The range includes the lower and upper boundaries. The same combination rules apply as for `facetFilters`.
*/
export type NumericFilters = MixedSearchFilters[] | string;

@@ -10,3 +10,3 @@ // Code generated by OpenAPI Generator (https://openapi-generator.tech), manual changes will be lost - read more on https://github.com/algolia/api-clients-automation. DO NOT EDIT.

/**
* Algolia index name.
* Index name.
*/

@@ -16,5 +16,5 @@ destination: string;

/**
* **This only applies to the _copy_ operation.** If you omit `scope`, the copy command copies all records, settings, synonyms, and rules. If you specify `scope`, only the specified scopes are copied.
* **Only for copying.** If you specify a scope, only the selected scopes are copied. Records and the other scopes are left unchanged. If you omit the `scope` parameter, everything is copied: records, settings, synonyms, and rules.
*/
scope?: ScopeType[];
};
// Code generated by OpenAPI Generator (https://openapi-generator.tech), manual changes will be lost - read more on https://github.com/algolia/api-clients-automation. DO NOT EDIT.
/**
* Operation to perform (_move_ or _copy_).
* Operation to perform on the index.
*/
export type OperationType = 'copy' | 'move';

@@ -6,4 +6,4 @@ // Code generated by OpenAPI Generator (https://openapi-generator.tech), manual changes will be lost - read more on https://github.com/algolia/api-clients-automation. DO NOT EDIT.

/**
* Create filters to boost or demote records. Records that match the filter are ranked higher for positive and lower for negative optional filters. In contrast to regular filters, records that don\'t match the optional filter are still included in the results, only their ranking is affected.
* 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. If you\'re using a negative filter `facet:-value`, matching records rank after records that don\'t match. - Optional filters don\'t work on virtual replicas. - Optional filters are applied _after_ sort-by attributes. - Optional filters don\'t work with numeric attributes.
*/
export type OptionalFilters = MixedSearchFilters[] | string;

@@ -8,3 +8,3 @@ // Code generated by OpenAPI Generator (https://openapi-generator.tech), manual changes will be lost - read more on https://github.com/algolia/api-clients-automation. DO NOT EDIT.

/**
* Additional search parameters.
* Parameters to apply to this search. You can use all search parameters, plus special `automaticFacetFilters`, `automaticOptionalFacetFilters`, and `query`.
*/

@@ -11,0 +11,0 @@ export type Params = {

@@ -8,3 +8,3 @@ // Code generated by OpenAPI Generator (https://openapi-generator.tech), manual changes will be lost - read more on https://github.com/algolia/api-clients-automation. DO NOT EDIT.

/**
* Unique identifier of the record to promote.
* Unique record identifier.
*/

@@ -14,5 +14,5 @@ objectID: string;

/**
* The position to promote the records to. If you pass objectIDs, the records are placed at this position as a group. For example, if you pronmote four objectIDs to position 0, the records take the first four positions.
* Position in the search results where you want to show the promoted records.
*/
position: number;
};

@@ -8,3 +8,3 @@ // Code generated by OpenAPI Generator (https://openapi-generator.tech), manual changes will be lost - read more on https://github.com/algolia/api-clients-automation. DO NOT EDIT.

/**
* Unique identifiers of the records to promote.
* Object IDs of the records you want to promote. The records are placed as a group at the `position`. For example, if you want to promote four records to position `0`, they will be the first four search results.
*/

@@ -14,5 +14,5 @@ objectIDs: string[];

/**
* The position to promote the records to. If you pass objectIDs, the records are placed at this position as a group. For example, if you pronmote four objectIDs to position 0, the records take the first four positions.
* Position in the search results where you want to show the promoted records.
*/
position: number;
};
// Code generated by OpenAPI Generator (https://openapi-generator.tech), manual changes will be lost - read more on https://github.com/algolia/api-clients-automation. DO NOT EDIT.
/**
* Determines how query words are [interpreted as prefixes](https://www.algolia.com/doc/guides/managing-results/optimize-search-results/override-search-engine-defaults/in-depth/prefix-searching/).
* Determines if and how query words are interpreted as prefixes. By default, only the last query word is treated as prefix (`prefixLast`). To turn off prefix search, use `prefixNone`. Avoid `prefixAll`, which treats all query words as prefixes. This might lead to counterintuitive results and makes your search slower. For more information, see [Prefix searching](https://www.algolia.com/doc/guides/managing-results/optimize-search-results/override-search-engine-defaults/in-depth/prefix-searching/).
*/
export type QueryType = 'prefixAll' | 'prefixLast' | 'prefixNone';

@@ -6,5 +6,8 @@ // Code generated by OpenAPI Generator (https://openapi-generator.tech), manual changes will be lost - read more on https://github.com/algolia/api-clients-automation. DO NOT EDIT.

/**
* Object with detailed information about the record\'s ranking.
*/
export type RankingInfo = {
/**
* This field is reserved for advanced usage.
* Whether a filter matched the query.
*/

@@ -14,3 +17,3 @@ filters: number;

/**
* Position of the most important matched attribute in the attributes to index list.
* Position of the first matched word in the best matching attribute of the record.
*/

@@ -44,3 +47,3 @@ firstMatchedWord: number;

/**
* Present and set to true if a Rule promoted the hit.
* Whether the record was promoted by a rule.
*/

@@ -50,3 +53,3 @@ promoted: boolean;

/**
* When the query contains more than one word, the sum of the distances between matched words (in meters).
* Number of words between multiple matches in the query plus 1. For single word queries, `proximityDistance` is 0.
*/

@@ -56,3 +59,3 @@ proximityDistance?: number;

/**
* Custom ranking for the object, expressed as a single integer value.
* Overall ranking of the record, expressed as a single integer. This attribute is internal.
*/

@@ -62,3 +65,3 @@ userScore: number;

/**
* Number of matched words, including prefixes and typos.
* Number of matched words.
*/

@@ -68,5 +71,5 @@ words: number;

/**
* Wether the record are promoted by the re-ranking strategy.
* Whether the record is re-ranked.
*/
promotedByReRanking?: boolean;
};
// Code generated by OpenAPI Generator (https://openapi-generator.tech), manual changes will be lost - read more on https://github.com/algolia/api-clients-automation. DO NOT EDIT.
/**
* Removes stop (common) words from the query before executing it. `removeStopWords` is used in conjunction with the `queryLanguages` setting. _list_: language ISO codes for which stop words should be enabled. This list will override any values that you may have set in `queryLanguages`. _true_: enables the stop words feature, ensuring that stop words are removed from consideration in a search. The languages supported here are either [every language](https://www.algolia.com/doc/guides/managing-results/optimize-search-results/handling-natural-languages-nlp/in-depth/supported-languages/) (this is the default) or those set by `queryLanguages`. _false_: turns off the stop words feature, allowing stop words to be taken into account in a search.
* Removes stop words from the search query. Stop words are common words like articles, conjunctions, prepositions, or pronouns that have little or no meaning on their own. In English, \"the\", \"a\", or \"and\" are stop words. You should only use this feature for the languages used in your index.
*/
export type RemoveStopWords = string[] | boolean;
// Code generated by OpenAPI Generator (https://openapi-generator.tech), manual changes will be lost - read more on https://github.com/algolia/api-clients-automation. DO NOT EDIT.
/**
* Strategy to [remove words](https://www.algolia.com/doc/guides/managing-results/optimize-search-results/empty-or-insufficient-results/in-depth/why-use-remove-words-if-no-results/) from the query when it doesn\'t match any hits.
* Strategy for removing words from the query when it doesn\'t return any results. This helps to avoid returning empty search results. <dl> <dt><code>none</code></dt> <dd>No words are removed when a query doesn\'t return results.</dd> <dt><code>lastWords</code></dt> <dd>Treat the last (then second to last, then third to last) word as optional, until there are results or at most 5 words have been removed.</dd> <dt><code>firstWords</code></dt> <dd>Treat the first (then second, then third) word as optional, until there are results or at most 5 words have been removed.</dd> <dt><code>allOptional</code></dt> <dd>Treat all words as optional.</dd> </dl> For more information, see [Remove words to improve results](https://www.algolia.com/doc/guides/managing-results/optimize-search-results/empty-or-insufficient-results/in-depth/why-use-remove-words-if-no-results/).
*/

@@ -6,0 +6,0 @@ export type RemoveWordsIfNoResults =

@@ -6,3 +6,3 @@ // Code generated by OpenAPI Generator (https://openapi-generator.tech), manual changes will be lost - read more on https://github.com/algolia/api-clients-automation. DO NOT EDIT.

/**
* Extra content for the search UI, for example, to control the [ordering and display of facets](https://www.algolia.com/doc/guides/managing-results/rules/merchandising-and-promoting/how-to/merchandising-facets/#merchandise-facets-and-their-values-in-the-manual-editor). You can set a default value and dynamically override it with [Rules](https://www.algolia.com/doc/guides/managing-results/rules/rules-overview/).
* 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.
*/

@@ -9,0 +9,0 @@ export type RenderingContent = {

@@ -6,4 +6,4 @@ // Code generated by OpenAPI Generator (https://openapi-generator.tech), manual changes will be lost - read more on https://github.com/algolia/api-clients-automation. DO NOT EDIT.

/**
* When [Dynamic Re-Ranking](https://www.algolia.com/doc/guides/algolia-ai/re-ranking/) is enabled, only records that match these filters will be affected by Dynamic Re-Ranking.
* Restrict [Dynamic Re-ranking](https://www.algolia.com/doc/guides/algolia-ai/re-ranking/) to records that match these filters.
*/
export type ReRankingApplyFilter = MixedSearchFilters[] | string;

@@ -12,3 +12,3 @@ // Code generated by OpenAPI Generator (https://openapi-generator.tech), manual changes will be lost - read more on https://github.com/algolia/api-clients-automation. DO NOT EDIT.

/**
* Unique identifier for a rule object.
* Unique identifier of a rule object.
*/

@@ -18,3 +18,3 @@ objectID: string;

/**
* [Conditions](https://www.algolia.com/doc/guides/managing-results/rules/rules-overview/#conditions) required to activate a rule. You can use up to 25 conditions per rule.
* Conditions that trigger a rule. Some consequences require specific conditions or don\'t require any condition. For more information, see [Conditions](https://www.algolia.com/doc/guides/managing-results/rules/rules-overview/#conditions).
*/

@@ -26,3 +26,3 @@ conditions?: Condition[];

/**
* Description of the rule\'s purpose. This can be helpful for display in the Algolia dashboard.
* Description of the rule\'s purpose to help you distinguish between different rules.
*/

@@ -32,3 +32,3 @@ description?: string;

/**
* Indicates whether to enable the rule. If it isn\'t enabled, it isn\'t applied at query time.
* Whether the rule is active.
*/

@@ -38,5 +38,5 @@ enabled?: boolean;

/**
* If you specify a validity period, the rule _only_ applies only during that period. If specified, the array must not be empty.
* Time periods when the rule is active.
*/
validity?: TimeRange[];
};

@@ -5,3 +5,3 @@ // Code generated by OpenAPI Generator (https://openapi-generator.tech), manual changes will be lost - read more on https://github.com/algolia/api-clients-automation. DO NOT EDIT.

/**
* Date of creation (ISO-8601 format).
* Timestamp when the record was added, in ISO 8601 format.
*/

@@ -11,3 +11,3 @@ createdAt: string;

/**
* Unique identifier of a task. A successful API response means that a task was added to a queue. It might not run immediately. You can check the task\'s progress with the `task` operation and this `taskID`.
* Unique identifier of a task. A successful API response means that a task was added to a queue. It might not run immediately. You can check the task\'s progress with the [`task` operation](#tag/Indices/operation/getTask) and this `taskID`.
*/

@@ -17,5 +17,5 @@ taskID: number;

/**
* Unique object identifier.
* Unique record identifier.
*/
objectID?: string;
};

@@ -5,3 +5,3 @@ // Code generated by OpenAPI Generator (https://openapi-generator.tech), manual changes will be lost - read more on https://github.com/algolia/api-clients-automation. DO NOT EDIT.

/**
* Unique identifier of a task. A successful API response means that a task was added to a queue. It might not run immediately. You can check the task\'s progress with the `task` operation and this `taskID`.
* Unique identifier of a task. A successful API response means that a task was added to a queue. It might not run immediately. You can check the task\'s progress with the [`task` operation](#tag/Indices/operation/getTask) and this `taskID`.
*/

@@ -8,0 +8,0 @@ taskID: number;

// Code generated by OpenAPI Generator (https://openapi-generator.tech), manual changes will be lost - read more on https://github.com/algolia/api-clients-automation. DO NOT EDIT.
/**
* `searchDictionaryEntries` parameters.
* Search parameter.
*/
export type SearchDictionaryEntriesParams = {
/**
* Text to search for in an index.
* Search query.
*/

@@ -13,3 +13,3 @@ query: string;

/**
* Page to retrieve (the first page is `0`, not `1`).
* Page of search results to retrieve.
*/

@@ -24,5 +24,5 @@ page?: number;

/**
* [Supported language ISO code](https://www.algolia.com/doc/guides/managing-results/optimize-search-results/handling-natural-languages-nlp/in-depth/supported-languages/).
* ISO code of a [supported language](https://www.algolia.com/doc/guides/managing-results/optimize-search-results/handling-natural-languages-nlp/in-depth/supported-languages/).
*/
language?: string;
};

@@ -12,3 +12,3 @@ // Code generated by OpenAPI Generator (https://openapi-generator.tech), manual changes will be lost - read more on https://github.com/algolia/api-clients-automation. DO NOT EDIT.

/**
* Algolia index name.
* Index name.
*/

@@ -23,3 +23,3 @@ indexName: string;

/**
* Maximum number of facet hits to return when [searching for facet values](https://www.algolia.com/doc/guides/managing-results/refine-results/faceting/#search-for-facet-values).
* 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).
*/

@@ -26,0 +26,0 @@ maxFacetHits?: number;

@@ -15,5 +15,5 @@ // Code generated by OpenAPI Generator (https://openapi-generator.tech), manual changes will be lost - read more on https://github.com/algolia/api-clients-automation. DO NOT EDIT.

/**
* Maximum number of facet hits to return when [searching for facet values](https://www.algolia.com/doc/guides/managing-results/refine-results/faceting/#search-for-facet-values).
* 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).
*/
maxFacetHits?: number;
};

@@ -6,2 +6,5 @@ // Code generated by OpenAPI Generator (https://openapi-generator.tech), manual changes will be lost - read more on https://github.com/algolia/api-clients-automation. DO NOT EDIT.

export type SearchForFacetValuesResponse = {
/**
* Matching facet values.
*/
facetHits: FacetHits[];

@@ -8,0 +11,0 @@

@@ -7,3 +7,3 @@ // Code generated by OpenAPI Generator (https://openapi-generator.tech), manual changes will be lost - read more on https://github.com/algolia/api-clients-automation. DO NOT EDIT.

/**
* Algolia index name.
* Index name.
*/

@@ -10,0 +10,0 @@ indexName: string;

@@ -6,6 +6,9 @@ // Code generated by OpenAPI Generator (https://openapi-generator.tech), manual changes will be lost - read more on https://github.com/algolia/api-clients-automation. DO NOT EDIT.

export type SearchHits<T = Record<string, any>> = Record<string, any> & {
/**
* Search results (hits). Hits are records from your index that match the search criteria, augmented with additional attributes, such as, for highlighting.
*/
hits: Array<Hit<T>>;
/**
* Text to search for in an index.
* Search query.
*/

@@ -12,0 +15,0 @@ query: string;

@@ -5,5 +5,5 @@ // Code generated by OpenAPI Generator (https://openapi-generator.tech), manual changes will be lost - read more on https://github.com/algolia/api-clients-automation. DO NOT EDIT.

/**
* Text to search for in an index.
* Search query.
*/
query?: string;
};

@@ -10,3 +10,3 @@ // Code generated by OpenAPI Generator (https://openapi-generator.tech), manual changes will be lost - read more on https://github.com/algolia/api-clients-automation. DO NOT EDIT.

/**
* Rule object query.
* Search query for rules.
*/

@@ -18,3 +18,3 @@ query?: string;

/**
* Restricts responses to the specified [contextual rule](https://www.algolia.com/doc/guides/managing-results/rules/rules-overview/how-to/customize-search-results-by-platform/#creating-contextual-rules).
* Only return rules that match the context (exact match).
*/

@@ -24,3 +24,3 @@ context?: string;

/**
* Requested page (the first page is page 0).
* Requested page of the API response.
*/

@@ -35,10 +35,5 @@ page?: number;

/**
* Restricts responses to enabled rules. When not specified (default), _all_ rules are retrieved.
* If `true`, return only enabled rules. If `false`, return only inactive rules. By default, _all_ rules are returned.
*/
enabled?: boolean | null;
/**
* Request options to send with the API call.
*/
requestOptions?: Array<Record<string, any>>;
};

@@ -7,3 +7,3 @@ // Code generated by OpenAPI Generator (https://openapi-generator.tech), manual changes will be lost - read more on https://github.com/algolia/api-clients-automation. DO NOT EDIT.

/**
* Fetched rules.
* Rules that matched the search criteria.
*/

@@ -13,3 +13,3 @@ hits: Rule[];

/**
* Number of fetched rules.
* Number of rules that matched the search criteria.
*/

@@ -16,0 +16,0 @@ nbHits: number;

// Code generated by OpenAPI Generator (https://openapi-generator.tech), manual changes will be lost - read more on https://github.com/algolia/api-clients-automation. DO NOT EDIT.
/**
* - `none`: executes all queries. - `stopIfEnoughMatches`: executes queries one by one, stopping further query execution as soon as a query matches at least the `hitsPerPage` number of results.
* Strategy for multiple search queries: - `none`. Run all queries. - `stopIfEnoughMatches`. Run the queries one by one, stopping as soon as a query matches at least the `hitsPerPage` number of results.
*/
export type SearchStrategy = 'none' | 'stopIfEnoughMatches';

@@ -7,3 +7,3 @@ // Code generated by OpenAPI Generator (https://openapi-generator.tech), manual changes will be lost - read more on https://github.com/algolia/api-clients-automation. DO NOT EDIT.

/**
* Text to search for in an index.
* Search query.
*/

@@ -15,3 +15,3 @@ query?: string;

/**
* Page to retrieve (the first page is `0`, not `1`).
* Page of search results to retrieve.
*/

@@ -18,0 +18,0 @@ page?: number;

@@ -7,3 +7,3 @@ // Code generated by OpenAPI Generator (https://openapi-generator.tech), manual changes will be lost - read more on https://github.com/algolia/api-clients-automation. DO NOT EDIT.

/**
* Synonym objects.
* Matching synonyms.
*/

@@ -13,5 +13,5 @@ hits: SynonymHit[];

/**
* Number of hits the search query matched.
* Number of results (hits).
*/
nbHits: number;
};

@@ -18,3 +18,3 @@ // Code generated by OpenAPI Generator (https://openapi-generator.tech), manual changes will be lost - read more on https://github.com/algolia/api-clients-automation. DO NOT EDIT.

/**
* Page to retrieve (the first page is `0`, not `1`).
* Page of search results to retrieve.
*/

@@ -21,0 +21,0 @@ page?: number;

@@ -15,3 +15,3 @@ // Code generated by OpenAPI Generator (https://openapi-generator.tech), manual changes will be lost - read more on https://github.com/algolia/api-clients-automation. DO NOT EDIT.

/**
* Number of hits the search query matched.
* Number of results (hits).
*/

@@ -21,3 +21,3 @@ nbHits: number;

/**
* Page to retrieve (the first page is `0`, not `1`).
* Page of search results to retrieve.
*/

@@ -24,0 +24,0 @@ page: number;

@@ -9,3 +9,3 @@ // Code generated by OpenAPI Generator (https://openapi-generator.tech), manual changes will be lost - read more on https://github.com/algolia/api-clients-automation. DO NOT EDIT.

/**
* Filters that apply to every search made with the secured API key. You can add extra filters at search time with the filters query parameter. For example, if you set the filter group:admin on your generated API key, and you add groups:press OR groups:visitors with the filters query parameter, your final search filter is equivalent to groups:admin AND (groups:press OR groups:visitors).
* Filters that apply to every search made with the secured API key. Extra filters added at search time will be combined with `AND`. For example, if you set `group:admin` as fixed filter on your generated API key, and add `groups:visitors` to the search query, the complete set of filters will be `group:admin AND groups:visitors`.
*/

@@ -15,3 +15,3 @@ filters?: string;

/**
* Unix timestamp used to set the expiration date of the API key.
* Timestamp in [Unix epoch time](https://en.wikipedia.org/wiki/Unix_time) when the API key should expire.
*/

@@ -21,3 +21,3 @@ validUntil?: number;

/**
* Index names that can be queried.
* 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_\".
*/

@@ -27,3 +27,3 @@ restrictIndices?: string[];

/**
* IPv4 network allowed to use the generated key. Use this to protect against API key leaking and reuse. You can only provide a single source, but you can specify a range of IPs (for example, 192.168.1.0/24).
* IP network that are allowed to use this key. You can only add a single source, but you can provide a range of IP addresses. Use this to protect against API key leaking and reuse.
*/

@@ -33,5 +33,5 @@ restrictSources?: string;

/**
* Unique user IP address. This can be useful when you want to impose a rate limit on specific users. By default, rate limits are set based on the IP address. This can become an issue when several users search from the same IP address. To avoid this, you can set a unique userToken for each user when generating their API key. This lets you restrict each user to a maximum number of API calls per hour, even if they share their IP with another user. Specifying the userToken in a secured API key is also a good security practice as it ensures users don\'t change it. Many features like Analytics, Personalization, and Dynamic Re-ranking rely on the authenticity of user identifiers. Setting the userToken at the API key level ensures that downstream services work as expected and prevents abuse.
* Pseudonymous user identifier to restrict usage of this API key to specific users. By default, rate limits are set based on IP addresses. This can be an issue if many users search from the same IP address. To avoid this, add a user token to each generated API key.
*/
userToken?: string;
};
// Code generated by OpenAPI Generator (https://openapi-generator.tech), manual changes will be lost - read more on https://github.com/algolia/api-clients-automation. DO NOT EDIT.
/**
* Settings for the semantic search part of NeuralSearch. Only used when `mode` is _neuralSearch_.
* Settings for the semantic search part of NeuralSearch. Only used when `mode` is `neuralSearch`.
*/
export type SemanticSearch = {
/**
* Indices from which to collect click and conversion events. If null, the current index and replica group will be used as the event source.
* Indices from which to collect click and conversion events. If null, the current index and all its replicas are used.
*/
eventSources?: string[] | null;
};

@@ -6,7 +6,7 @@ // Code generated by OpenAPI Generator (https://openapi-generator.tech), manual changes will be lost - read more on https://github.com/algolia/api-clients-automation. DO NOT EDIT.

/**
* Snippeted attributes show parts of the matched attributes. Only returned when attributesToSnippet is non-empty.
* Snippets that show the context around a matching search query.
*/
export type SnippetResultOption = {
/**
* Markup text with `facetQuery` matches highlighted.
* Highlighted attribute value, including HTML tags.
*/

@@ -13,0 +13,0 @@ value: string;

// Code generated by OpenAPI Generator (https://openapi-generator.tech), manual changes will be lost - read more on https://github.com/algolia/api-clients-automation. DO NOT EDIT.
/**
* How to display the remaining items: - `count`: facet count (descending). - `alpha`: alphabetical (ascending). - `hidden`: show only pinned values.
* Order of facet values that aren\'t explicitly positioned with the `order` setting. <dl> <dt><code>count</code></dt> <dd> Order remaining facet values by decreasing count. The count is the number of matching records containing this facet value. </dd> <dt><code>alpha</code></dt> <dd>Sort facet values alphabetically.</dd> <dt><code>hidden</code></dt> <dd>Don\'t show facet values that aren\'t explicitly positioned.</dd> </dl>.
*/
export type SortRemainingBy = 'alpha' | 'count' | 'hidden';

@@ -6,4 +6,4 @@ // Code generated by OpenAPI Generator (https://openapi-generator.tech), manual changes will be lost - read more on https://github.com/algolia/api-clients-automation. DO NOT EDIT.

/**
* [Filter hits by tags](https://www.algolia.com/doc/api-reference/api-parameters/tagFilters/).
* Filter the search by values of the special `_tags` attribute. **Prefer using the `filters` parameter, which supports all filter types and combinations with boolean operators.** Different from regular facets, `_tags` can only be used for filtering (including or excluding records). You won\'t get a facet count. The same combination and escaping rules apply as for `facetFilters`.
*/
export type TagFilters = MixedSearchFilters[] | string;
// Code generated by OpenAPI Generator (https://openapi-generator.tech), manual changes will be lost - read more on https://github.com/algolia/api-clients-automation. DO NOT EDIT.
/**
* _published_ if the task has been processed, _notPublished_ otherwise.
* Task status, `published` if the task is completed, `notPublished` otherwise.
*/
export type TaskStatus = 'notPublished' | 'published';

@@ -5,3 +5,3 @@ // Code generated by OpenAPI Generator (https://openapi-generator.tech), manual changes will be lost - read more on https://github.com/algolia/api-clients-automation. DO NOT EDIT.

/**
* Lower bound of the time range (Unix timestamp).
* When the rule should start to be active, in Unix epoch time.
*/

@@ -11,5 +11,5 @@ from: number;

/**
* Upper bound of the time range (Unix timestamp).
* When the rule should stop to be active, in Unix epoch time.
*/
until: number;
};

@@ -6,4 +6,4 @@ // Code generated by OpenAPI Generator (https://openapi-generator.tech), manual changes will be lost - read more on https://github.com/algolia/api-clients-automation. DO NOT EDIT.

/**
* Controls whether [typo tolerance](https://www.algolia.com/doc/guides/managing-results/optimize-search-results/typo-tolerance/) is enabled and how it is applied.
* Whether [typo tolerance](https://www.algolia.com/doc/guides/managing-results/optimize-search-results/typo-tolerance/) is enabled and how it is applied. If typo tolerance is true, `min`, or `strict`, [word splitting and concetenation](https://www.algolia.com/doc/guides/managing-results/optimize-search-results/handling-natural-languages-nlp/in-depth/splitting-and-concatenation/) is also active.
*/
export type TypoTolerance = TypoToleranceEnum | boolean;
// Code generated by OpenAPI Generator (https://openapi-generator.tech), manual changes will be lost - read more on https://github.com/algolia/api-clients-automation. DO NOT EDIT.
/**
* - `min`. Return matches with the lowest number of typos. For example, if you have matches without typos, only include those. But if there are no matches without typos (with 1 typo), include matches with 1 typo (2 typos). - `strict`. Return matches with the two lowest numbers of typos. With `strict`, the Typo ranking criterion is applied first in the `ranking` setting.
*/
export type TypoToleranceEnum = 'min' | 'strict';

@@ -8,3 +8,3 @@ // Code generated by OpenAPI Generator (https://openapi-generator.tech), manual changes will be lost - read more on https://github.com/algolia/api-clients-automation. DO NOT EDIT.

/**
* Unique identifier of a task. A successful API response means that a task was added to a queue. It might not run immediately. You can check the task\'s progress with the `task` operation and this `taskID`.
* Unique identifier of a task. A successful API response means that a task was added to a queue. It might not run immediately. You can check the task\'s progress with the [`task` operation](#tag/Indices/operation/getTask) and this `taskID`.
*/

@@ -11,0 +11,0 @@ taskID: number;

@@ -8,3 +8,3 @@ // Code generated by OpenAPI Generator (https://openapi-generator.tech), manual changes will be lost - read more on https://github.com/algolia/api-clients-automation. DO NOT EDIT.

/**
* Unique identifier of a task. A successful API response means that a task was added to a queue. It might not run immediately. You can check the task\'s progress with the `task` operation and this `taskID`.
* Unique identifier of a task. A successful API response means that a task was added to a queue. It might not run immediately. You can check the task\'s progress with the [`task` operation](#tag/Indices/operation/getTask) and this `taskID`.
*/

@@ -19,5 +19,5 @@ taskID?: number;

/**
* Unique object identifier.
* Unique record identifier.
*/
objectID?: string;
};

@@ -5,3 +5,3 @@ // Code generated by OpenAPI Generator (https://openapi-generator.tech), manual changes will be lost - read more on https://github.com/algolia/api-clients-automation. DO NOT EDIT.

/**
* Unique object identifier.
* Unique identifier of a rule object.
*/

@@ -16,5 +16,5 @@ objectID: string;

/**
* Unique identifier of a task. A successful API response means that a task was added to a queue. It might not run immediately. You can check the task\'s progress with the `task` operation and this `taskID`.
* Unique identifier of a task. A successful API response means that a task was added to a queue. It might not run immediately. You can check the task\'s progress with the [`task` operation](#tag/Indices/operation/getTask) and this `taskID`.
*/
taskID: number;
};

@@ -7,3 +7,3 @@ // Code generated by OpenAPI Generator (https://openapi-generator.tech), manual changes will be lost - read more on https://github.com/algolia/api-clients-automation. DO NOT EDIT.

/**
* UserID of the user.
* User ID.
*/

@@ -10,0 +10,0 @@ userID: string;

@@ -8,3 +8,3 @@ // Code generated by OpenAPI Generator (https://openapi-generator.tech), manual changes will be lost - read more on https://github.com/algolia/api-clients-automation. DO NOT EDIT.

/**
* UserID of the user.
* User ID.
*/

@@ -11,0 +11,0 @@ userID: string;

@@ -7,3 +7,3 @@ // Code generated by OpenAPI Generator (https://openapi-generator.tech), manual changes will be lost - read more on https://github.com/algolia/api-clients-automation. DO NOT EDIT.

/**
* Pinned order of facet lists.
* Explicit order of facets or facet values. This setting lets you always show specific facets or facet values at the top of the list.
*/

@@ -10,0 +10,0 @@ order?: string[];

{
"name": "@algolia/client-search",
"version": "5.0.0-alpha.106",
"version": "5.0.0-alpha.107",
"description": "JavaScript client for client-search",

@@ -42,10 +42,10 @@ "repository": "algolia/algoliasearch-client-javascript",

"dependencies": {
"@algolia/client-common": "5.0.0-alpha.107",
"@algolia/requester-browser-xhr": "5.0.0-alpha.107",
"@algolia/requester-node-http": "5.0.0-alpha.107"
"@algolia/client-common": "5.0.0-alpha.108",
"@algolia/requester-browser-xhr": "5.0.0-alpha.108",
"@algolia/requester-node-http": "5.0.0-alpha.108"
},
"devDependencies": {
"@types/node": "20.11.24",
"rollup": "4.12.0",
"typescript": "5.3.3"
"@types/node": "20.11.25",
"rollup": "4.12.1",
"typescript": "5.4.2"
},

@@ -52,0 +52,0 @@ "engines": {

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc