import { AuthModeType } from '@algolia/client-common'; import { ClientTransporterOptions } from '@algolia/client-common'; import { CreateClient } from '@algolia/client-common'; import { Request } from '@algolia/transporter'; import { RequestOptions } from '@algolia/transporter'; import { Transporter } from '@algolia/transporter'; import { WaitablePromise } from '@algolia/client-common'; export declare const addApiKey: (base: SearchClient) => (acl: readonly ApiKeyACLType[], requestOptions?: (AddApiKeyOptions & Pick) | undefined) => Readonly>; export declare type AddApiKeyOptions = { /** * A Unix timestamp used to define the expiration date of the API key. */ readonly validity?: number; /** * Specify the maximum number of hits this API key can retrieve in one call. * This parameter can be used to protect you from attempts at retrieving your entire index contents by massively querying the index. */ readonly maxHitsPerQuery?: number; /** * Specify the maximum number of API calls allowed from an IP address per hour. Each time an API call is performed with this key, a check is performed. */ readonly maxQueriesPerIPPerHour?: number; /** * Specify the list of targeted indices. You can target all indices starting with a prefix or ending with a suffix using the ‘*’ character. */ readonly indexes?: readonly string[]; /** * Specify the list of referers. You can target all referers starting with a prefix, ending with a suffix using the ‘*’ character. */ readonly referers?: readonly string[]; /** * Specify the list of query parameters. You can force the query parameters for a query using the url string format. */ readonly queryParameters?: string; /** * Specify a description of the API key. Used for informative purposes only. It has impact on the functionality of the API key. */ readonly description?: string; }; export declare type AddApiKeyResponse = { /** * The returned api key. */ key: string; /** * Date of creation of the api key. */ createdAt: string; }; export declare const ApiKeyACLEnum: Readonly>; export declare type ApiKeyACLType = 'addObject' | 'analytics' | 'browse' | 'deleteIndex' | 'deleteObject' | 'editSettings' | 'inference' | 'listIndexes' | 'logs' | 'personalization' | 'recommendation' | 'search' | 'seeUnretrievableAttributes' | 'settings' | 'usage'; export declare const assignUserID: (base: SearchClient) => (userID: string, clusterName: string, requestOptions?: RequestOptions | undefined) => Readonly>; export declare type AssignUserIDResponse = { /** * Date of creation of the userId. */ createdAt: string; }; export declare const assignUserIDs: (base: SearchClient) => (userIDs: readonly string[], clusterName: string, requestOptions?: RequestOptions | undefined) => Readonly>; export declare type AssignUserIDsResponse = { /** * Date of creation of the userId */ createdAt: string; }; export declare type AutomaticFacetFilter = { /** * Attribute to filter on. This must match a facet placeholder in the rule’s pattern. */ readonly facet: string; /** * Whether the filter is disjunctive (true) or conjunctive (false). */ readonly disjunctive?: boolean; /** * Score for the filter. Typically used for optional or disjunctive filters. */ readonly score?: number; }; export declare const batch: (base: SearchIndex) => (requests: readonly BatchRequest[], requestOptions?: RequestOptions | undefined) => Readonly>; export declare const BatchActionEnum: Readonly>; export declare type BatchActionType = 'addObject' | 'updateObject' | 'partialUpdateObject' | 'partialUpdateObjectNoCreate' | 'deleteObject' | 'delete' | 'clear'; export declare type BatchRequest = { /** * The batch action. */ readonly action: BatchActionType; /** * The body of the given `action`. Note that, bodies difer * depending of the action. */ readonly body: Record; }; export declare type BatchResponse = { /** * The operation task id. May be used to perform a wait task. */ taskID: number; /** * The object ids created/updated by the batch request. */ objectIDs: string[]; }; export declare const browseObjects: (base: SearchIndex) => (requestOptions?: (SearchOptions & BrowseOptions & RequestOptions) | undefined) => Readonly>; export declare type BrowseOptions = { /** * The callback called for each batch of objects. */ readonly batch?: (batch: ReadonlyArray) => any; /** * The callback called to determine if the browse should stop. By * default this checks whether there's any more content to get. */ readonly shouldStop?: (response: BrowseResponse) => boolean; }; export declare type BrowseRequestData = { /** * If available, should be used for browsing to the next page. */ readonly cursor?: string; /** * If cursor is not available, should be used for browsing to the next page. */ readonly page?: number; }; export declare type BrowseResponse = { /** * The hits per page. */ hits: Array; /** * The cursor used for iterate on the next page. */ cursor?: string; }; export declare const browseRules: (base: SearchIndex) => (requestOptions?: (SearchRulesOptions & BrowseOptions & RequestOptions) | undefined) => Readonly>; export declare const browseSynonyms: (base: SearchIndex) => (requestOptions?: (SearchSynonymsOptions & BrowseOptions & RequestOptions) | undefined) => Readonly>; export declare const chunkedBatch: (base: SearchIndex) => (bodies: readonly object[], action: BatchActionType, requestOptions?: (RequestOptions & ChunkOptions) | undefined) => Readonly>; export declare type ChunkedBatchResponse = { /** * The operations task ids. May be used to perform a wait task. */ taskIDs: number[]; /** * The object ids created/updated/deleted by the multiple requests. */ objectIDs: string[]; }; export declare type ChunkOptions = { /** * The number of objects per batch. */ readonly batchSize?: number; }; export declare const clearDictionaryEntries: (base: SearchClient) => (dictionary: DictionaryName, requestOptions?: (RequestOptions & DictionaryEntriesOptions) | undefined) => Readonly>; export declare const clearObjects: (base: SearchIndex) => (requestOptions?: RequestOptions | undefined) => Readonly>; export declare const clearRules: (base: SearchIndex) => (requestOptions?: (RequestOptions & ClearRulesOptions) | undefined) => Readonly>; export declare type ClearRulesOptions = { /** * If the clear rules request should be forward to replicas. */ readonly forwardToReplicas?: boolean; }; export declare const clearSynonyms: (base: SearchIndex) => (requestOptions?: (ClearSynonymsOptions & RequestOptions) | undefined) => Readonly>; export declare type ClearSynonymsOptions = { /** * If the clear synonyms request should be forward to replicas. */ readonly forwardToReplicas?: boolean; }; export declare type Cluster = { /** * The cluster name */ readonly clusterName: string; /** * Number of records in the cluster. */ readonly nbRecords: number; /** * Number of users assign to the cluster. */ readonly nbUserIDs: number; /** * Data size taken by all the users assigned to the cluster. */ readonly dataSize: number; }; export declare type Condition = { /** * Query patterns are expressed as a string with a specific syntax. A pattern is a sequence of tokens. */ readonly pattern?: string; /** * Apply this rule only when the filter matches. */ readonly filters?: string; /** * is | startsWith | endsWith | contains: Whether the pattern must match the beginning or the end of the query string, or both, or none. */ readonly anchoring?: 'is' | 'startsWith' | 'endsWith' | 'contains'; /** * Rule context (format: [A-Za-z0-9_-]+). When specified, the rule is contextual and applies only when the same context is specified at query time (using the ruleContexts parameter). * When absent, the rule is generic and always applies (provided that its other conditions are met, of course). */ readonly context?: string; /** * If set to true, alternatives make the rule to trigger on synonyms, typos and plurals. * Note that setting ignorePlurals to false overrides this parameter. */ readonly alternatives?: boolean; }; export declare type Consequence = { /** * Additional search parameters. Any valid search parameter is allowed. */ readonly params?: ConsequenceParams & Pick>; /** * Objects to promote as hits. */ readonly promote?: readonly ConsequencePromote[]; /** * Objects to hide from hits. */ readonly hide?: ReadonlyArray<{ readonly objectID: string; }>; /** * Whether the Query Rule should promote or not promoted items. */ readonly filterPromotes?: boolean; /** * Custom JSON object that will be appended to the userData array in the response. * This object is not interpreted by the API. It is limited to 1kB of minified JSON. */ readonly userData?: any; }; export declare type ConsequenceParams = { /** * 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). */ readonly query?: ConsequenceQuery | string; /** * 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. */ readonly automaticFacetFilters?: readonly AutomaticFacetFilter[] | readonly string[]; /** * Same syntax as automaticFacetFilters, but the engine treats the filters as optional. * Behaves like optionalFilters. */ readonly automaticOptionalFacetFilters?: readonly AutomaticFacetFilter[] | readonly string[]; /** * Content defining how the search interface should be rendered. * A default value for this can be set via settings */ readonly renderingContent?: Settings['renderingContent']; }; export declare type ConsequencePromote = { /** * Unique identifier of the object to promote. */ readonly objectID: string; /** * Promoted rank for the object (zero-based). */ readonly position: number; } | { /** * List of unique identifiers for the objects to promote. */ readonly objectIDs: readonly string[]; /** * Promoted start rank for the objects (zero-based). */ readonly position: number; }; export declare type ConsequenceQuery = { /** * List of removes. */ readonly remove?: readonly string[]; /** * List of edits. */ readonly edits?: ReadonlyArray<{ /** * Type of edit. */ readonly type?: 'remove' | 'replace'; /** * Text or patterns to remove from the query string. */ readonly delete?: string; /** * Text that should be inserted in place of the removed text inside the query string. */ readonly insert?: string; }>; }; export declare const copyIndex: (base: SearchClient) => (from: string, to: string, requestOptions?: (CopyIndexOptions & RequestOptions) | undefined) => Readonly>; export declare type CopyIndexOptions = { readonly scope?: readonly ScopeType[]; }; export declare const copyRules: (base: SearchClient) => (from: string, to: string, requestOptions?: RequestOptions | undefined) => Readonly>; export declare const copySettings: (base: SearchClient) => (from: string, to: string, requestOptions?: RequestOptions | undefined) => Readonly>; export declare const copySynonyms: (base: SearchClient) => (from: string, to: string, requestOptions?: RequestOptions | undefined) => Readonly>; export declare function createBrowsablePromise(options: { readonly shouldStop: (response: BrowseResponse) => boolean; readonly request: (data: BrowseRequestData) => Readonly>>; } & BrowseOptions): Readonly>; export declare type CreateIndex = (...args: any) => any; }>(indexName: string, options?: { readonly methods?: TMethods; }) => SearchIndex & { [key in keyof TMethods extends string ? keyof TMethods : never]: ReturnType; }; export declare function createMissingObjectIDError(): Error; export declare function createObjectNotFoundError(): Error; export declare const createSearchClient: CreateClient; export declare function createValidUntilNotFoundError(): Error; export declare const customRequest: (base: SearchClient) => (request: Request, requestOptions?: RequestOptions | undefined) => Readonly>; export declare const deleteApiKey: (base: SearchClient) => (apiKey: string, requestOptions?: RequestOptions | undefined) => Readonly>; export declare type DeleteApiKeyResponse = { /** * The date when the api key was deleted. */ deletedAt: string; }; export declare const deleteBy: (base: SearchIndex) => (filters: DeleteByFiltersOptions, requestOptions?: RequestOptions | undefined) => Readonly>; export declare type DeleteByFiltersOptions = { /** * Filter the query with numeric, facet and/or tag filters. */ readonly filters?: string; /** * Filter hits by facet value. */ readonly facetFilters?: string | readonly string[] | ReadonlyArray; /** * Filter on numeric attributes. */ readonly numericFilters?: string | readonly string[] | ReadonlyArray; /** * Filter hits by tags. tagFilters is a different way of filtering, which relies on the _tags * attribute. It uses a simpler syntax than filters. You can use it when you want to do * simple filtering based on tags. */ readonly tagFilters?: string | readonly string[] | ReadonlyArray; /** * Search for entries around a central geolocation, enabling a geo search within a circular area. */ readonly aroundLatLng?: string; /** * Search for entries around a given location automatically computed from the requester’s IP address. */ readonly aroundLatLngViaIP?: boolean; /** * Search inside a rectangular area (in geo coordinates). */ readonly insideBoundingBox?: ReadonlyArray | string; /** * Search inside a polygon (in geo coordinates). */ readonly insidePolygon?: ReadonlyArray; }; export declare const deleteDictionaryEntries: (base: SearchClient) => (dictionary: DictionaryName, objectIDs: readonly string[], requestOptions?: (RequestOptions & DictionaryEntriesOptions) | undefined) => Readonly>; export declare const deleteIndex: (base: SearchIndex) => (requestOptions?: RequestOptions | undefined) => Readonly>; export declare const deleteObject: (base: SearchIndex) => (objectID: string, requestOptions?: RequestOptions | undefined) => Readonly>; export declare const deleteObjects: (base: SearchIndex) => (objectIDs: readonly string[], requestOptions?: (RequestOptions & ChunkOptions) | undefined) => Readonly>; export declare type DeleteResponse = { /** * The operation task id. May be used to perform a wait task. */ taskID: number; }; export declare const deleteRule: (base: SearchIndex) => (objectID: string, requestOptions?: RequestOptions | undefined) => Readonly>; export declare const deleteSynonym: (base: SearchIndex) => (objectID: string, requestOptions?: (RequestOptions & DeleteSynonymOptions) | undefined) => Readonly>; export declare type DeleteSynonymOptions = { /** * If the delete synonym request should be forward to replicas. */ readonly forwardToReplicas?: boolean; }; export declare type DictionaryEntriesOptions = { /** * Array of dictionary entries */ readonly dictionaryEntries: readonly DictionaryEntry[]; }; export declare type DictionaryEntriesResponse = { /** * When the given rules got saved. */ updatedAt: number; /** * The operation task id. May be used to perform a wait task. */ taskID: number; }; export declare type DictionaryEntry = { /** * Unique identifier for the rule (format: [A-Za-z0-9_-]+). */ readonly objectID: string; readonly language: string; readonly word?: string; readonly words?: readonly string[]; readonly decomposition?: readonly string[]; readonly state?: 'enabled' | 'disabled'; }; export declare type DictionaryName = 'plurals' | 'stopwords' | 'compounds'; export declare type DictionarySettings = { /** * Disable the builtin Algolia entries for a type of dictionary per language. */ readonly disableStandardEntries: RequireAtLeastOne>>; }; export declare const exists: (base: SearchIndex) => (requestOptions?: RequestOptions | undefined) => Readonly>; export declare type FacetHit = { /** * The value of the facet. */ readonly value: string; /** * The highlighted value. */ readonly highlighted: string; /** * The count. */ readonly count: number; }; export declare const findAnswers: (base: SearchIndex) => (query: string, queryLanguages: readonly string[], requestOptions?: (RequestOptions & FindAnswersOptions) | undefined) => Readonly>>; export declare type FindAnswersOptions = { /** * Attributes to use for predictions. * If using the default (["*"]), all attributes are used to find answers. */ readonly attributesForPrediction?: readonly string[]; /** * Maximum number of answers to retrieve from the Answers Engine. * Cannot be greater than 1000. */ readonly nbHits?: number; /** * Threshold for the answers’ confidence score: * only answers with extracts that score above this threshold are returned. */ readonly threshold?: number; /** * Whether the attribute name in which the answer was found should be returned. * This option is expensive in processing time. */ readonly returnExtractAttribute?: boolean; /** * Algolia search parameters to use to fetch the hits. * Can be any search parameter, except: * - attributesToSnippet * - hitsPerPage * - queryType * - naturalLanguages and associated parameters * (removeStopWords, ignorePlurals, and removeWordsIfNoResults) */ readonly searchParameters?: Omit; }; export declare type FindAnswersResponse = Omit, 'hits'> & { /** * The hits returned by the search. * * Hits are ordered according to the ranking or sorting of the index being queried. */ hits: Array>; }; export declare const findObject: (base: SearchIndex) => (callback: (object: TObject & ObjectWithObjectID) => boolean, requestOptions?: (FindObjectOptions & RequestOptions) | undefined) => Readonly>>; export declare type FindObjectOptions = { /** * If the underlying find object options should paginate * over a search method. */ readonly paginate?: boolean; /** * The query used by the underlying find object to * find the object. */ readonly query?: string; }; export declare type FindObjectResponse = { /** * The found object. */ object: TObject & ObjectWithObjectID; /** * The position where the object was found. */ position: number; /** * The page where the object was found. */ page: number; }; export declare const generateSecuredApiKey: () => (parentApiKey: string, restrictions: SecuredApiKeyRestrictions) => string; export declare const getApiKey: (base: SearchClient) => (apiKey: string, requestOptions?: RequestOptions | undefined) => Readonly>; export declare type GetApiKeyResponse = { /** * The api key value */ value: string; /** * Date of creation (Unix timestamp). */ createdAt: number; /** * List of permissions the key contains. */ acl: ApiKeyACLType[]; /** * A Unix timestamp used to define the expiration date of the API key. */ validity: number; /** * Specify the maximum number of hits this API key can retrieve in one call. * This parameter can be used to protect you from attempts at retrieving your entire index contents by massively querying the index. */ maxHitsPerQuery?: number; /** * Specify the maximum number of API calls allowed from an IP address per hour. Each time an API call is performed with this key, a check is performed. */ maxQueriesPerIPPerHour?: number; /** * Specify the list of targeted indices. You can target all indices starting with a prefix or ending with a suffix using the ‘*’ character. */ indexes?: string[]; /** * Specify the list of referers. You can target all referers starting with a prefix, ending with a suffix using the ‘*’ character. */ referers?: string[]; /** * IPv4 network allowed to use the generated key. * This is used for more protection against API key leaking and reuse. * Note that you can only provide a single source, but you can specify a range of IPs (e.g., 192.168.1.0/24). */ restrictSources?: string; /** * Specify the list of query parameters. You can force the query parameters for a query using the url string format. */ queryParameters?: string; /** * Specify a description of the API key. Used for informative purposes only. It has impact on the functionality of the API key. */ description?: string; }; export declare const getAppTask: (base: SearchClient) => (taskID: number, requestOptions?: RequestOptions | undefined) => Readonly>; export declare const getDictionarySettings: (base: SearchClient) => (requestOptions?: RequestOptions | undefined) => Readonly>; export declare type GetDictionarySettingsResponse = { /** * Disable the builtin Algolia entries for a type of dictionary per language. */ readonly disableStandardEntries: RequireAtLeastOne>>; }; export declare const getLogs: (base: SearchClient) => (requestOptions?: RequestOptions | undefined) => Readonly>; export declare type GetLogsOptions = { /** * The offset. */ readonly offset: number; /** * The length size. */ readonly length: number; }; export declare type GetLogsResponse = { /** * The list of logs. */ logs: Log[]; }; export declare const getObject: (base: SearchIndex) => (objectID: string, requestOptions?: (RequestOptions & GetObjectOptions) | undefined) => Readonly>; export declare type GetObjectOptions = { /** * The attributes that should come with witch object. */ readonly attributesToRetrieve?: readonly string[]; }; export declare const getObjectPosition: () => (searchResponse: SearchResponse, objectID: string) => number; export declare const getObjects: (base: SearchIndex) => (objectIDs: readonly string[], requestOptions?: (RequestOptions & GetObjectsOptions) | undefined) => Readonly>>; export declare type GetObjectsOptions = { /** * The attributes that should come with witch object. */ readonly attributesToRetrieve?: readonly string[]; }; export declare type GetObjectsResponse = { /** * The list of results. */ results: Array<(TObject & ObjectWithObjectID) | null>; }; export declare const getRule: (base: SearchIndex) => (objectID: string, requestOptions?: RequestOptions | undefined) => Readonly>; export declare const getSecuredApiKeyRemainingValidity: () => (securedApiKey: string) => number; export declare const getSettings: (base: SearchIndex) => (requestOptions?: RequestOptions | undefined) => Readonly>; export declare const getSynonym: (base: SearchIndex) => (objectID: string, requestOptions?: RequestOptions | undefined) => Readonly>; export declare const getTask: (base: SearchIndex) => (taskID: number, requestOptions?: RequestOptions | undefined) => Readonly>; export declare const getTopUserIDs: (base: SearchClient) => (requestOptions?: RequestOptions | undefined) => Readonly>; export declare type GetTopUserIDsResponse = { /** * Mapping of cluster names to top users. */ topUsers: Record; }; export declare const getUserID: (base: SearchClient) => (userID: string, requestOptions?: RequestOptions | undefined) => Readonly>; export declare const hasPendingMappings: (base: SearchClient) => (requestOptions?: (HasPendingMappingsOptions & RequestOptions) | undefined) => Readonly>; export declare type HasPendingMappingsOptions = { /** * If the clusters pending mapping state should be on the response. * * @defaultValue false */ readonly retrieveMappings?: boolean; /** * If the clusters pending mapping state should be on the response. * * @defaultValue false * * @internal */ readonly getClusters?: boolean; }; export declare type HasPendingMappingsResponse = { /** * If there is any clusters with pending mapping state. */ pending: boolean; /** * Describe cluster pending (migrating, creating, deleting) mapping state. */ clusters?: { [key: string]: string[]; }; }; declare type HighlightMatch = { readonly value: string; readonly matchLevel: 'none' | 'partial' | 'full'; readonly matchedWords: readonly string[]; readonly fullyHighlighted?: boolean; }; export declare type HighlightResult = THit extends string | number ? HighlightMatch : { [KAttribute in keyof THit]?: HighlightResult; }; export declare type Hit = THit & { readonly objectID: string; readonly _highlightResult?: HighlightResult; readonly _snippetResult?: SnippetResult; readonly _rankingInfo?: RankingInfo; readonly _distinctSeqID?: number; }; export declare type Index = { /** * Index name. */ readonly name: string; /** * Index creation date. (ISO-8601 format) */ readonly createdAt: string; /** * Date of last update. (ISO-8601 format) */ readonly updatedAt: string; /** * Number of records contained in the index */ readonly entries: number; /** * Number of bytes of the index in minified format. */ readonly dataSize: number; /** * Number of bytes of the index binary file. */ readonly fileSize: number; /** * Last build time in seconds. */ readonly lastBuildTimeS: number; /** * Number of pending indexing operations. */ readonly numberOfPendingTasks: number; /** * A boolean which says whether the index has pending tasks. */ readonly pendingTask: boolean; /** * Only present if the index is a replica. * Contains the name of the related primary index. */ readonly primary?: string; /** * Only present if the index is a primary index with replicas. * Contains the names of all linked replicas. */ readonly replicas?: readonly string[]; }; export declare type IndexOperationResponse = { /** * The operation task id. May be used to perform a wait task. */ taskID: number; }; /** * @deprecated please use `Index` instead of `Indice` */ export declare type Indice = Index; export declare const initIndex: (base: SearchClient) => CreateIndex; export declare const listApiKeys: (base: SearchClient) => (requestOptions?: RequestOptions | undefined) => Readonly>; export declare type ListApiKeysResponse = { /** * List of keys */ keys: GetApiKeyResponse[]; }; export declare const listClusters: (base: SearchClient) => (requestOptions?: RequestOptions | undefined) => Readonly>; export declare type ListClustersResponse = { /** * List of clusters. */ clusters: Cluster[]; }; export declare const listIndices: (base: SearchClient) => (requestOptions?: RequestOptions | undefined) => Readonly>; export declare type ListIndicesResponse = { /** * Number of pages */ nbPages: number; /** * List of index response */ items: Index[]; }; export declare const listUserIDs: (base: SearchClient) => (requestOptions?: (ListUserIDsOptions & RequestOptions) | undefined) => Readonly>; export declare type ListUserIDsOptions = { /** * Page to fetch. */ readonly page?: number; /** * Number of users to retrieve per page. */ readonly hitsPerPage?: number; }; export declare type ListUserIDsResponse = { /** * List of users id. */ userIDs: UserIDResponse[]; }; export declare type Log = { /** * Timestamp in ISO-8601 format. */ readonly timestamp: string; /** * Rest type of the method. */ readonly method: string; /** * Http response code. */ readonly answer_code: string; /** * Request body. It’s truncated after 1000 characters. */ readonly query_body: string; /** * Answer body. It’s truncated after 1000 characters. */ readonly answer: string; /** * Request URL. */ readonly url: string; /** * Client ip of the call. */ readonly ip: string; /** * SHA1 ID of entry. */ readonly sha1: string; /** * Request Headers (API Key is obfuscated). */ readonly query_headers: string; /** * Number Of Api Calls */ readonly nb_api_calls?: string; /** * Processing time for the query. This does not include network time. */ readonly processing_time_ms: string; /** * Number of hits returned for the query. */ readonly query_nb_hits?: string; /** * Exhaustive flags used during the query. */ readonly exhaustive?: boolean; /** * Index name of the log */ readonly index?: string; /** * Internal queries performed for this query. */ readonly inner_queries: ReadonlyArray<{ /** * Index name of the query. */ readonly index_name: string; /** * Query ID of the query. */ readonly query_id?: string; /** * The offset of the query. */ readonly offset?: number; /** * The user token of the query. */ readonly user_token?: string; }>; }; export declare const moveIndex: (base: SearchClient) => (from: string, to: string, requestOptions?: RequestOptions | undefined) => Readonly>; export declare const multipleBatch: (base: SearchClient) => (requests: readonly MultipleBatchRequest[], requestOptions?: RequestOptions | undefined) => Readonly>; export declare type MultipleBatchRequest = { /** * The index name where the multiple batch are going to be applied. */ readonly indexName: string; /** * The action used. */ readonly action: BatchActionType; /** * The body associated with the request. */ readonly body: Record; }; export declare type MultipleBatchResponse = { /** * The list of object ids. */ objectIDs: string[]; /** * The operation task id. May be used to perform a wait task. */ taskID: Record; }; export declare type MultipleGetObject = { /** * The index name. */ readonly indexName: string; /** * The object id. */ readonly objectID: string; /** * The attributes that should be returned with the object. */ readonly attributesToRetrieve?: readonly string[]; }; export declare const multipleGetObjects: (base: SearchClient) => (requests: readonly MultipleGetObject[], requestOptions?: RequestOptions | undefined) => Readonly>>; export declare type MultipleGetObjectsResponse = { /** * The list of objects. */ results: Array; }; export declare const multipleQueries: (base: SearchClient) => (queries: readonly MultipleQueriesQuery[], requestOptions?: (RequestOptions & MultipleQueriesOptions) | undefined) => Readonly>>; export declare type MultipleQueriesOptions = { readonly strategy?: StrategyType; }; export declare type MultipleQueriesQuery = SharedMultipleQueriesQuery & ({ readonly type?: 'default'; } | { readonly type: 'facet'; /** * The facet name. */ readonly facet: string; /** * The search options. */ readonly params?: SharedMultipleQueriesQuery['params'] & { /** * The search query used to search the facet attribute. Follows the same rules for an index query: a single character, a partial word, a word, or a phrase. */ readonly facetQuery?: string; }; }); export declare type MultipleQueriesResponse = { /** * The list of results. */ results: Array | SearchForFacetValuesResponse>; }; export declare const multipleSearchForFacetValues: (base: SearchClient) => (queries: readonly { readonly indexName: string; readonly params: SearchForFacetValuesQueryParams & SearchOptions; }[], requestOptions?: RequestOptions | undefined) => Readonly>; export declare type ObjectWithObjectID = { /** * The object id of the object. */ readonly objectID: string; }; export declare const partialUpdateObject: (base: SearchIndex) => (object: Record, requestOptions?: (RequestOptions & ChunkOptions & PartialUpdateObjectsOptions) | undefined) => Readonly>; export declare type PartialUpdateObjectResponse = { /** * The operation task id. May be used to perform a wait task. */ taskID: number; /** * The object id updated. */ objectID: string; }; export declare const partialUpdateObjects: (base: SearchIndex) => (objects: readonly Record[], requestOptions?: (RequestOptions & ChunkOptions & PartialUpdateObjectsOptions) | undefined) => Readonly>; export declare type PartialUpdateObjectsOptions = { /** * If the object should be created when does not exist. */ readonly createIfNotExists?: boolean; }; export declare type RankingInfo = { readonly promoted: boolean; readonly nbTypos: number; readonly firstMatchedWord: number; readonly proximityDistance?: number; readonly geoDistance: number; readonly geoPrecision?: number; readonly nbExactWords: number; readonly words: number; readonly filters: number; readonly userScore: number; readonly matchedGeoLocation?: { readonly lat: number; readonly lng: number; readonly distance: number; }; readonly personalization?: { readonly filtersScore: number; readonly rankingScore: number; readonly score: number; }; readonly promotedByReRanking?: boolean; }; export declare type RedirectRuleIndexMetadata = { /** * Source index for the redirect rule */ readonly source: string; /** * Destination index for the redirect rule */ readonly dest: string; /** * Reason for the redirect rule */ readonly reason: string; /** * Status for the redirect rule */ readonly succeed: boolean; /** * Data for the redirect rule */ readonly data: { /** * Rule objectId */ readonly ruleObjectID: string; }; }; export declare const removeUserID: (base: SearchClient) => (userID: string, requestOptions?: RequestOptions | undefined) => Readonly>; export declare type RemoveUserIDResponse = { /** * When the given `userID` got removed. */ deletedAt: string; }; export declare const replaceAllObjects: (base: SearchIndex) => (objects: readonly Readonly>[], requestOptions?: (ReplaceAllObjectsOptions & ChunkOptions & SaveObjectsOptions & RequestOptions) | undefined) => Readonly>; export declare type ReplaceAllObjectsOptions = { /** * If the all objects should be replaced using wait operations. Keep * in mind that, when the `safe` option is used, the operation may * take a little more than expected. */ readonly safe?: boolean; }; export declare const replaceAllRules: (base: SearchIndex) => (rules: readonly Rule[], requestOptions?: (RequestOptions & SaveRulesOptions) | undefined) => Readonly>; export declare const replaceAllSynonyms: (base: SearchIndex) => (synonyms: readonly Synonym[], requestOptions?: (RequestOptions & Pick) | undefined) => Readonly>; export declare const replaceDictionaryEntries: (base: SearchClient) => (dictionary: DictionaryName, entries: readonly DictionaryEntry[], requestOptions?: (RequestOptions & DictionaryEntriesOptions) | undefined) => Readonly>; export declare type RequireAtLeastOne = { [TKey in keyof TType]-?: Required> & Partial>>; }[keyof TType]; export declare const restoreApiKey: (base: SearchClient) => (apiKey: string, requestOptions?: RequestOptions | undefined) => Readonly>; export declare type RestoreApiKeyResponse = { /** * Restoration date of the API key. */ createdAt: string; }; export declare type Rule = { /** * Unique identifier for the rule (format: [A-Za-z0-9_-]+). */ readonly objectID: string; /** * Condition of the rule, expressed using the following variables: pattern, anchoring, context. * * @deprecated This parameter is deprecated in favor of `conditions`. */ readonly condition?: Condition; /** * Conditions of the rule, expressed using the following variables: pattern, anchoring, context. */ readonly conditions?: readonly Condition[]; /** * Consequence of the rule. At least one of the following object must be used: params, promote, hide, userData. */ readonly consequence?: Consequence; /** * This field is intended for rule management purposes, in particular to ease searching for rules and presenting them to human readers. It is not interpreted by the API. */ readonly description?: string; /** * Whether the rule is enabled. Disabled rules remain in the index, but are not applied at query time. */ readonly enabled?: boolean; /** * By default, rules are permanently valid. When validity periods are specified, the rule applies only during those periods; it is ignored the rest of the time. * The list must not be empty. */ readonly validity?: readonly TimeRange[]; }; export declare const saveDictionaryEntries: (base: SearchClient) => (dictionary: DictionaryName, entries: readonly DictionaryEntry[], requestOptions?: (RequestOptions & DictionaryEntriesOptions) | undefined) => Readonly>; export declare const saveObject: (base: SearchIndex) => (object: Readonly>, requestOptions?: (RequestOptions & ChunkOptions & SaveObjectsOptions) | undefined) => Readonly>; export declare type SaveObjectResponse = { /** * The operation task id. May be used to perform a wait task. */ taskID: number; /** * The object id saved. */ objectID: string; }; export declare const saveObjects: (base: SearchIndex) => (objects: readonly Readonly>[], requestOptions?: (RequestOptions & ChunkOptions & SaveObjectsOptions) | undefined) => Readonly>; export declare type SaveObjectsOptions = { /** * If the object id should be generated when does not exists. */ readonly autoGenerateObjectIDIfNotExist?: boolean; }; export declare const saveRule: (base: SearchIndex) => (rule: Rule, requestOptions?: (RequestOptions & SaveRulesOptions) | undefined) => Readonly>; export declare type SaveRuleResponse = { /** * When the given rules got saved. */ updatedAt: number; /** * The operation task id. May be used to perform a wait task. */ taskID: number; }; export declare const saveRules: (base: SearchIndex) => (rules: readonly Rule[], requestOptions?: (RequestOptions & SaveRulesOptions) | undefined) => Readonly>; export declare type SaveRulesOptions = { /** * If the saved rules should be forward to replicas. */ readonly forwardToReplicas?: boolean; /** * If the existing rules should be removed. */ readonly clearExistingRules?: boolean; }; export declare type SaveRulesResponse = { /** * When the given rules got saved. */ updatedAt: number; /** * The operation task id. May be used to perform a wait task. */ taskID: number; }; export declare const saveSynonym: (base: SearchIndex) => (synonym: Synonym, requestOptions?: (RequestOptions & SaveSynonymsOptions) | undefined) => Readonly>; export declare type SaveSynonymResponse = { /** * When the given synonyms got saved. */ updatedAt: number; /** * The operation task id. May be used to perform a wait task. */ taskID: number; }; export declare const saveSynonyms: (base: SearchIndex) => (synonyms: readonly Synonym[], requestOptions?: (SaveSynonymsOptions & RequestOptions) | undefined) => Readonly>; export declare type SaveSynonymsOptions = { /** * If the saved synonyms should be forward to replicas. */ readonly forwardToReplicas?: boolean; /** * If the existing synonyms should be removed. * @deprecated use clearExistingSynonyms */ readonly replaceExistingSynonyms?: boolean; /** * If the existing synonyms should be removed. */ readonly clearExistingSynonyms?: boolean; }; export declare type SaveSynonymsResponse = { /** * When the given synonyms got saved. */ updatedAt: number; /** * The operation task id. May be used to perform a wait task. */ taskID: number; }; export declare const ScopeEnum: Readonly>; export declare type ScopeType = 'settings' | 'synonyms' | 'rules'; export declare const search: (base: SearchIndex) => (query: string, requestOptions?: (RequestOptions & SearchOptions) | undefined) => Readonly>>; export declare type SearchClient = { /** * The application id. */ readonly appId: string; /** * The underlying transporter. */ readonly transporter: Transporter; /** * Mutates the transporter, adding the given user agent. */ readonly addAlgoliaAgent: (segment: string, version?: string) => void; /** * Clears both requests and responses caches. */ readonly clearCache: () => Readonly>; }; export declare type SearchClientOptions = { /** * The application id. */ readonly appId: string; /** * The api key. */ readonly apiKey: string; /** * The auth mode type. In browser environments credentials may * be passed within the headers. */ readonly authMode?: AuthModeType; }; export declare const searchDictionaryEntries: (base: SearchClient) => (dictionary: DictionaryName, query: string, requestOptions?: RequestOptions | undefined) => Readonly>; export declare type SearchDictionaryEntriesResponse = { /** * The dictionary entries returned by the search. */ hits: DictionaryEntry[]; /** * Index of the current page (zero-based). */ page: number; /** * Number of dictionary entries matched by the query. */ nbHits: number; /** * Number of pages returned. * * Calculation is based on the total number of hits (nbHits) divided by the * number of hits per page (hitsPerPage), rounded up to the nearest integer. */ nbPages: number; }; export declare const searchForFacetValues: (base: SearchIndex) => (facetName: string, facetQuery: string, requestOptions?: (RequestOptions & SearchOptions) | undefined) => Readonly>; export declare type SearchForFacetValuesQueryParams = { /** * The facet name. */ readonly facetName: string; /** * The facet query. */ readonly facetQuery: string; }; export declare type SearchForFacetValuesResponse = { /** * The list of facet hits. */ facetHits: FacetHit[]; /** * The exhaustive facets count. */ exhaustiveFacetsCount: boolean; /** * The time that the API toke the process the request. */ processingTimeMS?: number; }; export declare type SearchIndex = { /** * The application id. */ readonly appId: string; /** * The index name. */ readonly indexName: string; /** * The underlying transporter. */ readonly transporter: Transporter; }; export declare type SearchOptions = { /** * Create a new query with an empty search query. */ readonly query?: string; /** * Allows a search for similar objects, but the query has to be constructed on your end and included alongside an empty query. * * The similarQuery should be made from the tags and keywords of the relevant object. */ readonly similarQuery?: string; /** * Filter hits by facet value. */ readonly facetFilters?: string | readonly string[] | ReadonlyArray; /** * Create filters for ranking purposes, where records that match the filter are ranked highest. */ readonly optionalFilters?: string | readonly string[] | ReadonlyArray; /** * Filter on numeric attributes. */ readonly numericFilters?: string | readonly string[] | ReadonlyArray; /** * Filter hits by tags. tagFilters is a different way of filtering, which relies on the _tags * attribute. It uses a simpler syntax than filters. You can use it when you want to do * simple filtering based on tags. */ readonly tagFilters?: string | readonly string[] | ReadonlyArray; /** * Determines how to calculate the total score for filtering. */ readonly sumOrFiltersScores?: boolean; /** * Filter the query with numeric, facet and/or tag filters. */ readonly filters?: string; /** * Specify the page to retrieve. */ readonly page?: number; /** * Set the number of hits per page. */ readonly hitsPerPage?: number; /** * Specify the offset of the first hit to return. */ readonly offset?: number; /** * Set the number of hits to retrieve (used only with offset). */ readonly length?: number; /** * List of attributes to highlight. */ readonly attributesToHighlight?: readonly string[]; /** * List of attributes to snippet, with an optional maximum number of words to snippet. */ readonly attributesToSnippet?: readonly string[]; /** * Gives control over which attributes to retrieve and which not to retrieve. */ readonly attributesToRetrieve?: readonly string[]; /** * The HTML string to insert before the highlighted parts in all highlight and snippet results. */ readonly highlightPreTag?: string; /** * The HTML string to insert after the highlighted parts in all highlight and snippet results */ readonly highlightPostTag?: string; /** * String used as an ellipsis indicator when a snippet is truncated. */ readonly snippetEllipsisText?: string; /** * Restrict highlighting and snippeting to items that matched the query. */ readonly restrictHighlightAndSnippetArrays?: boolean; /** * Facets to retrieve. */ readonly facets?: readonly string[]; /** * Maximum number of facet values to return for each facet during a regular search. */ readonly maxValuesPerFacet?: number; /** * Force faceting to be applied after de-duplication (via the Distinct setting). */ readonly facetingAfterDistinct?: boolean; /** * Minimum number of characters a word in the query string must contain to accept matches with 1 typo */ readonly minWordSizefor1Typo?: number; /** * Minimum number of characters a word in the query string must contain to accept matches with 2 typos. */ readonly minWordSizefor2Typos?: number; /** * Whether to allow typos on numbers (“numeric tokens”) in the query string. */ readonly allowTyposOnNumericTokens?: boolean; /** * List of attributes on which you want to disable typo tolerance. */ readonly disableTypoToleranceOnAttributes?: readonly string[]; /** * Controls if and how query words are interpreted as prefixes. */ readonly queryType?: 'prefixLast' | 'prefixAll' | 'prefixNone'; /** * Selects a strategy to remove words from the query when it doesn’t match any hits. */ readonly removeWordsIfNoResults?: 'none' | 'lastWords' | 'firstWords' | 'allOptional'; /** * Enables the advanced query syntax. */ readonly advancedSyntax?: boolean; /** * AdvancedSyntaxFeatures can be exactPhrase or excludeWords */ readonly advancedSyntaxFeatures?: ReadonlyArray<'exactPhrase' | 'excludeWords'>; /** * A list of words that should be considered as optional when found in the query. */ readonly optionalWords?: string | readonly string[]; /** * List of attributes on which you want to disable the exact ranking criterion. */ readonly disableExactOnAttributes?: readonly string[]; /** * Controls how the exact ranking criterion is computed when the query contains only one word. */ readonly exactOnSingleWordQuery?: 'attribute' | 'none' | 'word'; /** * List of alternatives that should be considered an exact match by the exact ranking criterion. */ readonly alternativesAsExact?: ReadonlyArray<'ignorePlurals' | 'singleWordSynonym' | 'multiWordsSynonym'>; /** * Whether rules should be globally enabled. */ readonly enableRules?: boolean; /** * Enables contextual rules. */ readonly ruleContexts?: readonly string[]; /** * Enables de-duplication or grouping of results. */ readonly distinct?: boolean | number; /** * Whether the current query will be taken into account in the Analytics */ readonly analytics?: boolean; /** * List of tags to apply to the query in the analytics. */ readonly analyticsTags?: readonly string[]; /** * Whether to take into account an index’s synonyms for a particular search. */ readonly synonyms?: boolean; /** * Whether to highlight and snippet the original word that matches the synonym or the synonym itself. */ readonly replaceSynonymsInHighlight?: boolean; /** * Precision of the proximity ranking criterion. */ readonly minProximity?: number; /** * Choose which fields the response will contain. Applies to search and browse queries. */ readonly responseFields?: readonly string[]; /** * Maximum number of facet hits to return during a search for facet values. */ readonly maxFacetHits?: number; /** * Whether to include or exclude a query from the processing-time percentile computation. */ readonly percentileComputation?: boolean; /** * Enable the Click Analytics feature. */ readonly clickAnalytics?: boolean; /** * The `personalizationImpact` parameter sets the percentage of the impact that personalization has on ranking records. The * value must be between 0 and 100 (inclusive). This parameter will not be taken into account if `enablePersonalization` * is **false**. */ readonly personalizationImpact?: number; /** * Enable personalization for the query */ readonly enablePersonalization?: boolean; /** * Restricts a given query to look in only a subset of your searchable attributes. */ readonly restrictSearchableAttributes?: readonly string[]; /** * Controls how facet values are sorted. */ readonly sortFacetValuesBy?: 'count' | 'alpha'; /** * Controls whether typo tolerance is enabled and how it is applied. */ readonly typoTolerance?: boolean | 'min' | 'strict'; /** * Search for entries around a central geolocation, enabling a geo search within a circular area. */ readonly aroundLatLng?: string; /** * Search for entries around a given location automatically computed from the requester’s IP address. */ readonly aroundLatLngViaIP?: boolean; /** * Define the maximum radius for a geo search (in meters). */ readonly aroundRadius?: number | 'all'; /** * Precision of geo search (in meters), to add grouping by geo location to the ranking formula. */ readonly aroundPrecision?: number | ReadonlyArray<{ readonly from: number; readonly value: number; }>; /** * Minimum radius (in meters) used for a geo search when aroundRadius is not set. */ readonly minimumAroundRadius?: number; /** * Search inside a rectangular area (in geo coordinates). */ readonly insideBoundingBox?: ReadonlyArray | string; /** * Search inside a polygon (in geo coordinates). */ readonly insidePolygon?: ReadonlyArray; /** * Treats singular, plurals, and other forms of declensions as matching terms. */ readonly ignorePlurals?: boolean | readonly string[]; /** * Removes stop (common) words from the query before executing it. */ readonly removeStopWords?: boolean | readonly string[]; /** * List of supported languages with their associated language ISO code. * * Apply a set of natural language best practices such as ignorePlurals, * removeStopWords, removeWordsIfNoResults, analyticsTags and ruleContexts. */ readonly naturalLanguages?: readonly string[]; /** * When true, each hit in the response contains an additional _rankingInfo object. */ readonly getRankingInfo?: boolean; /** * A user identifier. * Format: alpha numeric string [a-zA-Z0-9_-] * Length: between 1 and 64 characters. */ readonly userToken?: string; /** * Can be to enable or disable A/B tests at query time. * Engine's default: true */ readonly enableABTest?: boolean; /** * Enable word segmentation (also called decompounding) at query time for * compatible languages. For example, this turns the Dutch query * "spaanplaatbehang" into "spaan plaat behang" to retrieve more relevant * results. */ readonly decompoundQuery?: boolean; /** * The relevancy threshold to apply to search in a virtual index [0-100]. A Bigger * value means fewer, but more relevant results, smaller value means more, but * less relevant results. */ readonly relevancyStrictness?: number; /** * Whether this search should use Dynamic Re-Ranking. * @link https://www.algolia.com/doc/guides/algolia-ai/re-ranking/ * * Note: You need to turn on Dynamic Re-Ranking on your index for it to have an effect on * your search results. You can do this through the Re-Ranking page on the dashboard. * This parameter is only used to turn off Dynamic Re-Ranking (with false) at search time. */ readonly enableReRanking?: boolean; /** * When Dynamic Re-Ranking is enabled, only records that match these filters will be impacted by Dynamic Re-Ranking. */ readonly reRankingApplyFilter?: string | readonly string[] | ReadonlyArray | null; /** * Sets the languages to be used by language-specific settings and functionalities such as ignorePlurals, removeStopWords, and CJK word-detection. */ readonly queryLanguages?: readonly string[]; /** * Enriches the API’s response with meta-information as to how the query was processed. */ readonly explain?: readonly string[]; }; export declare type SearchResponse = { /** * The hits returned by the search. * * Hits are ordered according to the ranking or sorting of the index being queried. */ hits: Array>; /** * Index of the current page (zero-based). */ page: number; /** * Number of hits returned (used only with offset) */ length?: number; /** * The offset of the first hit to returned. */ offset?: number; /** * Number of hits matched by the query. */ nbHits: number; /** * Subset of hits selected when relevancyStrictness is applied. */ nbSortedHits?: number; /** * Number of pages returned. * * Calculation is based on the total number of hits (nbHits) divided by the * number of hits per page (hitsPerPage), rounded up to the nearest integer. */ nbPages: number; /** * Maximum number of hits returned per page. */ hitsPerPage: number; /** * Time the server took to process the request, in milliseconds. This does not include network time. */ processingTimeMS: number; /** * Whether the nbHits is exhaustive (true) or approximate (false). * * An approximation is done when the query takes more than 50ms to be * processed (this can happen when using complex filters on millions on records). */ exhaustiveNbHits: boolean; /** * Whether the facet count is exhaustive (true) or approximate (false). */ exhaustiveFacetsCount?: boolean; /** * A mapping of each facet name to the corresponding facet counts. */ facets?: Record>; /** * Statistics for numerical facets. */ facets_stats?: Record; /** * The query used to search. Accepts every character, and every character entered will be used in the search. * * An empty query can be used to fetch all records. */ query: string; /** * A markup text indicating which parts of the original query have been removed in order to retrieve a non-empty result set. */ queryAfterRemoval?: string; /** * A url-encoded string of all search parameters. */ params: string; /** * Unique identifier of the search query, to be sent in Insights methods. This identifier links events back to the search query it represents. * * Returned only if clickAnalytics is true. */ queryID?: string; /** * Used to return warnings about the query. */ message?: string; /** * The computed geo location. * * Format: "lat,lng", where the latitude and longitude are expressed as decimal floating point number. */ aroundLatLng?: string; /** * The automatically computed radius. */ automaticRadius?: string; /** * Actual host name of the server that processed the request. * * Our DNS supports automatic failover and load balancing, so this may differ from the host name used in the request. */ serverUsed?: string; /** * Index name used for the query. */ index?: string; /** * Index name used for the query. In case of AB test, the index targetted isn’t always the index used by the query. */ indexUsed?: string; /** * If a search encounters an index that is being A/B tested, abTestID reports the ongoing A/B test ID. */ abTestID?: number; /** * In case of AB test, reports the variant ID used. The variant ID is the position in the array of variants (starting at 1). */ abTestVariantID?: number; /** * The query string that will be searched, after normalization. */ parsedQuery?: string; /** * Custom user data. */ userData?: any; /** * Rules applied to the query. */ appliedRules?: Array>; /** * The explanation of the decompounding at query time. */ explain?: { /** * The explain query match. */ match: { /** * The explain query match alternatives. */ alternatives: Array<{ /** * The alternative type. */ types: string[]; /** * The list of alternative words. */ words: string[]; /** * The number of typos. */ typos: number; /** * The offset. */ offset: number; /** * The length. */ length: number; }>; }; /** * Query parameter reporting. Parameters are reported * as a JSON object with one field per parameter. */ params?: Record; /** * This parameter is for internal use only. */ redirect?: { index?: RedirectRuleIndexMetadata[]; }; }; /** * The relevancy threshold applied to search in a virtual index. */ appliedRelevancyStrictness?: number; renderingContent?: Settings['renderingContent']; }; export declare const searchRules: (base: SearchIndex) => (query: string, requestOptions?: (RequestOptions & SearchRulesOptions) | undefined) => Readonly>>; export declare type SearchRulesOptions = { /** * Full text query. */ readonly query?: string; /** * When specified, restricts matches to rules with a specific anchoring type. When omitted, all anchoring types may match. */ readonly anchoring?: string; /** * Restricts matches to contextual rules with a specific context (exact match). */ readonly context?: string; /** * Requested page (zero-based). */ readonly page?: number; /** * Maximum number of hits in a page. Minimum is 1, maximum is 1000. */ readonly hitsPerPage?: number; /** * When specified, restricts matches to rules with a specific enabled status. * When absent (default), all rules are retrieved, regardless of their enabled status. */ readonly enabled?: boolean; }; export declare const searchSynonyms: (base: SearchIndex) => (query: string, requestOptions?: (SearchSynonymsOptions & RequestOptions) | undefined) => Readonly>; export declare type SearchSynonymsOptions = { /** * The synonym type. */ readonly type?: string; /** * Page to retrieve. */ readonly page?: number; /** * Number of hits per page. */ readonly hitsPerPage?: number; }; export declare type SearchSynonymsResponse = { /** * The list of synonyms. */ hits: Synonym[]; /** * The number of synonyms on the list. */ nbHits: number; }; export declare const searchUserIDs: (base: SearchClient) => (query: string, requestOptions?: (SearchUserIDsOptions & RequestOptions) | undefined) => Readonly>; export declare type SearchUserIDsOptions = { /** * If specified, only clusters assigned to this cluster can be returned. * */ readonly cluster?: string; /** * Page to fetch. */ readonly page?: number; /** * Number of users to return by page. */ readonly hitsPerPage?: number; }; export declare type SearchUserIDsResponse = { /** * List of userID matching the query. */ hits: UserIDResponse[]; /** * Current page. */ page: number; /** * Number of userIDs matching the query. */ nbHits: number; /** * Number of hits retrieved per page. */ hitsPerPage: number; /** * Timestamp of the last update of the index. */ updatedAt: number; }; export declare type SecuredApiKeyRestrictions = SearchOptions & { /** * A Unix timestamp used to define the expiration date of the API key. */ readonly validUntil?: number; /** * List of index names that can be queried. */ readonly restrictIndices?: readonly string[] | string; /** * IPv4 network allowed to use the generated key. This is used for more protection against API key leaking and reuse. */ readonly restrictSources?: string; /** * Specify a user identifier. This is often used with rate limits. */ readonly userToken?: string; }; export declare const setDictionarySettings: (base: SearchClient) => (settings: DictionarySettings, requestOptions?: RequestOptions | undefined) => Readonly>; export declare const setSettings: (base: SearchIndex) => (settings: Settings, requestOptions?: (RequestOptions & SetSettingsOptions) | undefined) => Readonly>; export declare type SetSettingsOptions = { /** * If the saved settings should be forward to replicas. */ readonly forwardToReplicas?: boolean; }; export declare type SetSettingsResponse = { /** * The operation task id. May be used to perform a wait task. */ taskID: number; /** * When the settings got updated. */ updatedAt: number; }; export declare type Settings = { /** * The complete list of attributes that will be used for searching. */ readonly searchableAttributes?: readonly string[]; /** * @deprecated Use `searchableAttributes` instead. */ readonly attributesToIndex?: readonly string[]; /** * The complete list of attributes that will be used for faceting. */ readonly attributesForFaceting?: readonly string[]; /** * List of attributes that cannot be retrieved at query time. */ readonly unretrievableAttributes?: readonly string[]; /** * Gives control over which attributes to retrieve and which not to retrieve. */ readonly attributesToRetrieve?: readonly string[]; /** * Controls the way results are sorted. */ readonly ranking?: readonly string[]; /** * Specifies the custom ranking criterion. */ readonly customRanking?: readonly string[]; /** * Creates replicas, exact copies of an index. */ readonly replicas?: readonly string[]; /** * @deprecated Use `replicas` instead. */ readonly slaves?: readonly string[]; /** * The primary parameter is automatically added to a replica's settings when the replica is created and cannot be modified. * * Can not be setted. */ readonly primary?: string; /** * Maximum number of facet values to return for each facet during a regular search. */ readonly maxValuesPerFacet?: number; /** * Controls how facet values are sorted. */ readonly sortFacetValuesBy?: 'count' | 'alpha'; /** * List of attributes to highlight. */ readonly attributesToHighlight?: readonly string[]; /** * List of attributes to snippet, with an optional maximum number of words to snippet. */ readonly attributesToSnippet?: readonly string[]; /** * The HTML string to insert before the highlighted parts in all highlight and snippet results. */ readonly highlightPreTag?: string; /** * The HTML string to insert after the highlighted parts in all highlight and snippet results. */ readonly highlightPostTag?: string; /** * String used as an ellipsis indicator when a snippet is truncated. */ readonly snippetEllipsisText?: string; /** * Restrict highlighting and snippeting to items that matched the query. */ readonly restrictHighlightAndSnippetArrays?: boolean; /** * Set the number of hits per page. */ readonly hitsPerPage?: number; /** * Set the maximum number of hits accessible via pagination. */ readonly paginationLimitedTo?: number; /** * Minimum number of characters a word in the query string must contain to accept matches with 1 typo. */ readonly minWordSizefor1Typo?: number; /** * Minimum number of characters a word in the query string must contain to accept matches with 2 typos. */ readonly minWordSizefor2Typos?: number; /** * Controls whether typo tolerance is enabled and how it is applied. */ readonly typoTolerance?: string | boolean; /** * hether to allow typos on numbers (“numeric tokens”) in the query string. */ readonly allowTyposOnNumericTokens?: boolean; /** * List of attributes on which you want to disable typo tolerance. */ readonly disableTypoToleranceOnAttributes?: readonly string[]; /** * List of words on which you want to disable typo tolerance. */ readonly disableTypoToleranceOnWords?: readonly string[]; /** * Control which separators are indexed. */ readonly separatorsToIndex?: string; /** * Treats singular, plurals, and other forms of declensions as matching terms. */ readonly ignorePlurals?: readonly string[] | boolean; /** * Sets the languages to be used by language-specific settings and functionalities such as ignorePlurals, removeStopWords, and CJK word-detection. */ readonly queryLanguages?: readonly string[]; /** * A list of language ISO code. */ readonly indexLanguages?: readonly string[]; /** * Whether rules should be globally enabled. */ readonly enableRules?: boolean; /** * Controls if and how query words are interpreted as prefixes. */ readonly queryType?: 'prefixLast' | 'prefixAll' | 'prefixNone'; /** * Selects a strategy to remove words from the query when it doesn’t match any hits. */ readonly removeWordsIfNoResults?: 'none' | 'lastWords' | 'firstWords' | 'allOptional'; /** * Enables the advanced query syntax. */ readonly advancedSyntax?: boolean; /** * AdvancedSyntaxFeatures can be exactPhrase or excludeWords */ readonly advancedSyntaxFeatures?: ReadonlyArray<'exactPhrase' | 'excludeWords'>; /** * A list of words that should be considered as optional when found in the query. */ readonly optionalWords?: readonly string[]; /** * List of attributes on which you want to disable prefix matching. */ readonly disablePrefixOnAttributes?: readonly string[]; /** * List of attributes on which you want to disable the exact ranking criterion. */ readonly disableExactOnAttributes?: readonly string[]; /** * Controls how the exact ranking criterion is computed when the query contains only one word. */ readonly exactOnSingleWordQuery?: 'attribute' | 'none' | 'word'; /** * List of alternatives that should be considered an exact match by the exact ranking criterion. */ readonly alternativesAsExact?: ReadonlyArray<'ignorePlurals' | 'singleWordSynonym' | 'multiWordsSynonym'>; /** * Removes stop (common) words from the query before executing it. */ readonly removeStopWords?: boolean | readonly string[]; /** * List of numeric attributes that can be used as numerical filters. */ readonly numericAttributesForFiltering?: readonly string[]; /** * Enables compression of large integer arrays. */ readonly allowCompressionOfIntegerArray?: boolean; /** * Name of the de-duplication attribute to be used with the distinct feature. */ readonly attributeForDistinct?: string; /** * Enables de-duplication or grouping of results. */ readonly distinct?: boolean | number; /** * Whether to highlight and snippet the original word that matches the synonym or the synonym itself. */ readonly replaceSynonymsInHighlight?: boolean; /** * Allows proximity to impact which searchable attribute is matched in the attribute ranking stage. */ readonly attributeCriteriaComputedByMinProximity?: boolean; /** * Precision of the proximity ranking criterion. */ readonly minProximity?: number; /** * Choose which fields the response will contain. Applies to search and browse queries. */ readonly responseFields?: readonly string[]; /** * Maximum number of facet hits to return during a search for facet values. */ readonly maxFacetHits?: number; /** * List of attributes on which to do a decomposition of camel case words. */ readonly camelCaseAttributes?: readonly string[]; /** * Specify on which attributes in your index Algolia should apply word-splitting (“decompounding”) */ readonly decompoundedAttributes?: Readonly>; /** * Characters that should not be automatically normalized by the search engine. */ readonly keepDiacriticsOnCharacters?: string; /** * Overrides Algolia's default normalization. */ readonly customNormalization?: Readonly>>>; /** * Enable personalization for queries by default */ readonly enablePersonalization?: boolean; /** * Custom userData that could be added to the Settings. */ readonly userData?: any; /** * Enable word segmentation (also called decompounding) at query time for * compatible languages. For example, this turns the Dutch query * "spaanplaatbehang" into "spaan plaat behang" to retrieve more relevant * results. */ readonly decompoundQuery?: boolean; /** * Specify on which attributes in your index Algolia should apply Japanese * transliteration to make words indexed in Katakana or Kanji searchable in Hiragana. */ readonly attributesToTransliterate?: readonly string[]; /** * The relevancy threshold to apply to search in a virtual index [0-100]. A Bigger * value means fewer, but more relevant results, smaller value means more, but * less relevant results. */ readonly relevancyStrictness?: number; /** * The search mode that the index will use to query for results. */ readonly mode?: 'neuralSearch' | 'keywordSearch'; /** * The settings relevant for configuration of the semantic search engine. * These settings are only used when the mode is set to 'neuralSearch'. */ readonly semanticSearch?: { /** * When null, the current index / replica group will be used as the event source. */ readonly eventSources?: readonly string[] | null; }; /** * Content defining how the search interface should be rendered. * This is set via the settings for a default value and can be overridden via rules */ readonly renderingContent?: { /** * defining how facets should be ordered */ readonly facetOrdering?: { /** * the ordering of facets (widgets) */ readonly facets?: { /** * pinned order of facet lists */ readonly order?: readonly string[]; }; /** * the ordering of facet values, within an individual list */ readonly values?: { readonly [facet: string]: { /** * pinned order of facet values */ readonly order?: readonly string[]; /** * How to display the remaining items. * - facet count (descending) * - alphabetical (ascending) * - hidden (show only pinned values) */ readonly sortRemainingBy?: 'count' | 'alpha' | 'hidden'; }; }; }; }; /** * Whether this index should use Dynamic Re-Ranking. * @link https://www.algolia.com/doc/guides/algolia-ai/re-ranking/ * * Note: You need to turn on Dynamic Re-Ranking on your index for it to have an effect on * your search results. You can do this through the Re-Ranking page on the dashboard. */ readonly enableReRanking?: boolean; /** * When Dynamic Re-Ranking is enabled, only records that match these filters will be impacted by Dynamic Re-Ranking. */ readonly reRankingApplyFilter?: string | readonly string[] | ReadonlyArray | null; }; declare type SharedMultipleQueriesQuery = { /** * The type of query to perform. * * @defaultValue "default" */ readonly type?: 'default' | 'facet'; /** * The index name. */ readonly indexName: string; /** * The search options. */ readonly params?: SearchOptions; /** * The query associated with the request. */ readonly query?: string; }; declare type SnippetMatch = { readonly value: string; readonly matchLevel: 'none' | 'partial' | 'full'; }; export declare type SnippetResult = THit extends string | number ? SnippetMatch : { [KAttribute in keyof THit]: SnippetResult; }; export declare const StrategyEnum: Readonly>; export declare type StrategyType = 'none' | 'stopIfEnoughMatches'; export declare type Synonym = { /** * Synonym object ID. */ readonly objectID: string; /** * There are 4 synonym types. The parameter can be one of the following value. */ readonly type: SynonymType; /** * A list of synonyms. */ readonly synonyms?: readonly string[]; /** * Defines the synonym. A word or expression, used as the basis for the array of synonyms. */ readonly input?: string; /** * A single word, used as the basis for the below array of corrections. */ readonly word?: string; /** * An list of corrections of the word. */ readonly corrections?: readonly string[]; /** * A single word, used as the basis for the below list of replacements. */ readonly placeholder?: string; /** * An list of replacements of the placeholder. */ readonly replacements?: readonly string[]; }; export declare const SynonymEnum: Readonly>; export declare type SynonymType = 'synonym' | 'oneWaySynonym' | 'altCorrection1' | 'altCorrection2' | 'placeholder'; export declare type TaskStatusResponse = { /** * The operation status. When the value is `published` the * operation is completed. */ status: string; /** * If the operation is pending. */ pendingTask: boolean; }; export declare type TimeRange = { /** * DateTime with UTC offset for Serialization/Deserialization in unix timespan. */ readonly from: number; /** * DateTime with UTC offset for Serialization/Deserialization in unix timespan. */ readonly until: number; }; export declare const updateApiKey: (base: SearchClient) => (apiKey: string, requestOptions?: (UpdateApiKeyOptions & Pick) | undefined) => Readonly>; export declare type UpdateApiKeyOptions = { /** * List of permissions the key contains. */ readonly acl?: readonly ApiKeyACLType[]; /** * A Unix timestamp used to define the expiration date of the API key. */ readonly validity?: number; /** * Specify the maximum number of hits this API key can retrieve in one call. * This parameter can be used to protect you from attempts at retrieving your entire index contents by massively querying the index. */ readonly maxHitsPerQuery?: number; /** * Specify the maximum number of API calls allowed from an IP address per hour. Each time an API call is performed with this key, a check is performed. */ readonly maxQueriesPerIPPerHour?: number; /** * Specify the list of targeted indices. You can target all indices starting with a prefix or ending with a suffix using the ‘*’ character. */ readonly indexes?: readonly string[]; /** * Specify the list of referers. You can target all referers starting with a prefix, ending with a suffix using the ‘*’ character. */ readonly referers?: readonly string[]; /** * Specify the list of query parameters. You can force the query parameters for a query using the url string format. */ readonly queryParameters?: string; /** * Specify a description of the API key. Used for informative purposes only. It has impact on the functionality of the API key. */ readonly description?: string; }; export declare type UpdateApiKeyResponse = { /** * The api key. */ key: string; /** * Date of update */ updatedAt: string; }; export declare type UserIDResponse = { /** * userID of the user. */ userID: string; /** * Cluster on which the user is assigned */ clusterName: string; /** * Number of records belonging to the user. */ nbRecords: number; /** * Data size used by the user. */ dataSize: number; }; export declare const waitAppTask: (base: SearchClient) => (taskID: number, requestOptions?: RequestOptions | undefined) => Readonly>; export declare const waitTask: (base: SearchIndex) => (taskID: number, requestOptions?: RequestOptions | undefined) => Readonly>; export { }