@klevu/core
Version:
Typescript SDK that simplifies development on Klevu backend. Klevu provides advanced AI-powered search and discovery solutions for online retailers.
134 lines (133 loc) • 4.93 kB
TypeScript
import { KlevuQueryResult } from "../models/KlevuApiRawResponse.js";
import { KlevuFetchQueryResult } from "../models/KlevuFetchResponse.js";
import { KlevuResultEventOnResult } from "../models/KlevuResultEvent.js";
import { KlevuFetchFunctionReturnValue } from "../queries/index.js";
import { FilterManager } from "../store/filterManager.js";
import { KlevuKeywordUrlMap } from "../models/KMCMaps.js";
import { KlevuResponseObject } from "./responseObject.js";
/**
* Result object for each query. A storage for results. Can be used to fetch more data, send events etc.
*/
export declare class KlevuResponseQueryObject {
#private;
/**
* Original request response that includes all queries
*/
responseObject: KlevuResponseObject;
/**
* This query
*/
query: KlevuQueryResult;
/**
* Function used to create this query
*/
func: KlevuFetchFunctionReturnValue;
/**
* Hooks that can be used to listen for events
*/
hooks: KlevuResultEventOnResult[];
/**
* When query is search this is available. It is used to send search click events
*/
searchClickEvent?: KlevuFetchQueryResult["searchClickEvent"];
/**
* When query is categoryMerchandising this is available. It is used to send categoryMerchandising click events
*/
categoryMerchandisingClickEvent?: KlevuFetchQueryResult["categoryMerchandisingClickEvent"];
/**
* When query is recommendation this is available. It is used to send recommendation click events
*/
recommendationClickEvent?: KlevuFetchQueryResult["recommendationClickEvent"];
/**
* When there is a banner in the recommendation this is available. It is used to send recommendation banner click events
*/
recommendationBannerClickEvent?: KlevuFetchQueryResult["recommendationBannerClickEvent"];
/**
* Fetches redirects for this query. This is available only for search queries
*/
getRedirects?: () => Promise<KlevuKeywordUrlMap[]>;
constructor(responseObject: KlevuResponseObject, query: KlevuQueryResult, func: KlevuFetchFunctionReturnValue);
/**
* All filters related to this query
*/
get filters(): (import("../models/KlevuApiRawResponse.js").KlevuFilterResultOptions | import("../models/KlevuApiRawResponse.js").KlevuFilterResultSlider | import("../models/KlevuApiRawResponse.js").KlevuFilterResultRating)[] | undefined;
/**
* Id if the query
*/
get id(): string;
/**
* Meta data of the query
*/
get meta(): {
apiKey: string;
isPersonalised: boolean;
qTime: number;
noOfResults: number;
totalResultsFound: number;
offset: number;
typeOfSearch: import("../index.js").KlevuTypeOfSearch;
debuggingInformation: unknown;
notificationCode: number;
searchedTerm: string;
klevuImageData?: {
processed: {
urls: string[];
}[];
} | undefined;
tags: string[];
};
/**
* Records of the query
*/
get records(): ({
id: string;
} & import("../index.js").KlevuRecord)[];
/**
* Special parameters that are saved to query
*/
get functionParams(): import("../queries/index.js").KlevuFetchFunctionParams | undefined;
/**
* Fetches page of results. If pageIndex is not defined it will fetch next page.
*
* @param params
* @returns
*/
getPage(params?: {
/**
* Limit number of results for next query. By default this is automatically calculated from previous result
*/
limit?: number;
/**
* Filter manager to apply for next function
*/
filterManager?: FilterManager;
/**
* Use page index to load certain page instead of next available. 0 is first page
*/
pageIndex?: number;
}): Promise<KlevuResponseObject | undefined>;
/**
*
* @returns true if there are more pages to fetch
*/
hasNextPage(): boolean;
/**
*
* @returns total number of pages
*/
getTotalPages(): number;
annotationsById(productId: string, languageCode: string): Promise<import("../models/KlevuFetchResponse.js").KlevuAnnotations | undefined>;
/**
* @returns List of banners that were received for this query
* @param params in case of search query you need to specify location of search
*/
getBanners(params?: {
searchType?: "quicksearch" | "landingpage";
}): Promise<import("../index.js").KlevuBanner[]>;
/**
* @returns List of params used in the query and the metadata that was generated during
* the query. This is useful for example to fetching KMC metadata that was received
* for recommendations query.
*/
getQueryParameters(): import("../queries/index.js").KlevuFetchFunctionParams | undefined;
}