UNPKG

addsearch-js-client

Version:

AddSearch API JavaScript client

111 lines 5.01 kB
import { ApiFetchCallback, SuggestionsResponse } from './apifetch'; import { Settings, PersonalizationEvent, SearchOperator, SortByOptions, SortOrderOptions, FromToRange, FuzzyMatch, ApiMethod } from './settings'; import { RequestInterceptorCallback } from './api'; interface RangeFacetOption { field: string; ranges: FromToRange[]; } interface RecommendationsOptions { type: 'RELATED_ITEMS' | 'FREQUENTLY_BOUGHT_TOGETHER'; itemId?: string; blockId?: string; configurationKey?: string; } interface CustomFilterObject { [key: string]: unknown; } type SearchEventPayload = { numberOfResults: number; }; type ClickEventPayload = { documentId: string; position: number; }; type StatsEventPayload = SearchEventPayload | ClickEventPayload; type SentimentValue = 'positive' | 'negative' | 'neutral'; declare class AddSearchClient { private readonly sitekey; private readonly privatekey; private apiHostname; private statsApiHostname; private settings; private sessionId; private userTokenInPersonalization; private useStatsSessionId; private throttledSearchFetch?; private throttledAiAnswersFetch?; private throttledSuggestionsFetch?; private throttledRecommendationFetch?; private throttledAutocompleteFetch?; constructor(sitekey: string, privatekey?: string); search(): void; search(a1: string, a2: ApiFetchCallback): void; search(a1: ApiFetchCallback): void; aiAnswers(keyword: string, callback: ApiFetchCallback): void; putSentimentClick(conversationId: string, sentimentValue: SentimentValue): Promise<boolean | object>; suggestions(prefix: string, callback: ApiFetchCallback<SuggestionsResponse>): void; autocomplete(field: string, prefix: string, callback: ApiFetchCallback): void; fetchCustomApi(field: string, customFilterObject: CustomFilterObject, callback: ApiFetchCallback): void; fetchRangeFacets(options: RangeFacetOption, customFilterObject: CustomFilterObject, callback: ApiFetchCallback): void; recommendations(options: RecommendationsOptions, callback: ApiFetchCallback): void; getDocument(id: string): Promise<object>; saveDocument(document: Document): Promise<object>; saveDocumentsBatch(batch: { documents: Document[]; }): Promise<object>; deleteDocument(id: string): Promise<object>; deleteDocumentsBatch(batch: { documents: string[]; }): Promise<object>; setApiHostname(hostname: string, conf?: { statsApiRequestOnly?: boolean; searchApiRequestOnly?: boolean; }): void; getSettings(): Settings; setLanguage(lang: string): void; setCategoryFilters(categories: string): void; addCustomFieldFilter(fieldName: string, value: string): void; removeCustomFieldFilter(fieldName: string, value?: string): void; setPriceRangeFilter(minCents: string, maxCents: string): void; setDateFilter(dateFrom: string, dateTo: string): void; setJWT(jwt: string): void; setUserToken(token: string): void; setPaging(page: number, pageSize: number, sortBy: SortByOptions, sortOder: SortOrderOptions): void; nextPage(): void; previousPage(): void; setSuggestionsSize(size: number): void; setAutocompleteSize(size: number): void; addFacetField(fieldName: string): void; addHierarchicalFacetSetting(setting: object): void; addRangeFacet(field: string, ranges: FromToRange[]): void; addStatsField(field: string): void; setNumberOfFacets(numFacets: number): void; setResultType(type: 'organic' | null): void; setPersonalizationEvents(events: PersonalizationEvent[]): void; setFilterObject(filter: object): void; setShuffleAndLimitTo(shuffleAndLimitTo: number): void; setFuzzyMatch(fuzzy: FuzzyMatch): void; setPostfixWildcard(wildcard: boolean): void; setCacheResponseTime(cacheResponseTime: number): void; setCollectAnalytics(collectAnalytics: boolean): void; setAnalyticsTag(tagName: string): void; setThrottleTime(delay: number): void; setStatsSessionId(id: string): void; getStatsSessionId(): string; enableLogicalOperators(enableLogicalOperators: boolean): void; setSearchOperator(operator: SearchOperator): void; setApiMethod(method: ApiMethod): void; sendStatsEvent(type: 'search' | 'click', keyword: string, data: StatsEventPayload): void; getUserTokenInPersonalization(): string; enablePersonalizationTracking(isEnabled: boolean, cookieExpireDays?: number): void; consentAddSearchCookie(isEnabled: boolean): void; setApiRequestInterceptor(callback: RequestInterceptorCallback, option?: { searchApiRequestOnly?: boolean; statsApiRequestOnly?: boolean; }): void; setCookie(cookieName: string, cookieValue: string, expireDays: number): void; getCookie(cookieName: string): string | undefined; searchResultClicked(documentId: string, position: number): void; } export = AddSearchClient; //# sourceMappingURL=index.d.ts.map