addsearch-js-client
Version:
AddSearch API JavaScript client
111 lines • 5.01 kB
TypeScript
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