import { QueryCompletion, Recommendation, RequestStaticFilters, Stream, Redirect } from "../interfaces"; import { SearchType } from "../searchSession/searchSession"; import { Rectangle } from "../interfaces"; import { ResponseDynamicFilterItem, RequestDynamicFilterItem } from "../campaign/VPRCampaignService"; import type { ObservableMap } from "@stencil/store"; type OnChangeHandler = ObservableMap["onChange"]; export type SearchStoreName = "widget" | "components" | "shopTheLook"; export type SearchStatus = "idle" | "loading" | "success" | "error"; type AppStateGlobalDefaults = { excluded: RequestStaticFilters["excluded"] | null; campaignId: string; campaignIdTextSearch: string; campaignIdVisualSearch: string; }; type AppStateDefaults = { visualSearchId: string | null; textSearchId: string | null; textSearchQuery: string | null; searchType: SearchType | null; searchStatus: SearchStatus; resultLoaded: boolean; resultViewed: boolean; image: HTMLImageElement | null; imageBounds: Rectangle | null; searchArea: Rectangle | null; croppedImageUrl: string | null; visualSearchStarted: boolean; requestFilters: RequestDynamicFilterItem[]; }; type ReceivedDataDefaults = { results: Recommendation[]; sourceProduct: Recommendation | null; dynamicFilters: ResponseDynamicFilterItem[]; detectedObjects: Rectangle[]; stream: Stream | null; redirect: (Redirect & { query?: string; }) | null; autoSuggestCompletions: QueryCompletion[]; }; export type SearchStore = AppStateGlobalDefaults & AppStateDefaults & ReceivedDataDefaults; declare const searchState: SearchStore; declare const onChangeWidgetState: OnChangeHandler; declare const componentsState: SearchStore; declare const onChangeComponentsState: OnChangeHandler; declare const shopTheLookState: SearchStore; declare const onChangeShopTheLookState: OnChangeHandler; export type ResetMode = "appStateOnly" | "receivedDataOnly" | "appStateAndReceivedData" | "all" | "manual"; export declare const resetStore: (store: SearchStoreName, mode?: ResetMode, excludedFields?: (keyof SearchStore)[]) => void; export declare const makeVisualSearchByUrlRequest: (store: SearchStoreName, imageUrl: string, token: string, apiPath?: string, campaignId?: string | null) => Promise, { requestId?: import("../interfaces/generated").components["schemas"]["request-id"]; data?: { products: import("../interfaces/generated").components["schemas"]["response-products"]; }; interactions?: import("../interfaces/generated").components["schemas"]["interactions"]; stream?: import("../interfaces/generated").components["schemas"]["stream"]; }>>; export declare const makeUploadFileRequest: (store: SearchStoreName, token: string, apiPath?: string, campaignId?: string | null) => (file: File) => Promise, { requestId?: import("../interfaces/generated").components["schemas"]["request-id"]; data?: { products: import("../interfaces/generated").components["schemas"]["response-products"]; }; interactions?: import("../interfaces/generated").components["schemas"]["interactions"]; stream?: import("../interfaces/generated").components["schemas"]["stream"]; }>>; export declare const makeVisualSearchRequest: (store: SearchStoreName, searchId: string | null, token: string, apiPath?: string, campaignId?: string | null) => Promise, { requestId?: import("../interfaces/generated").components["schemas"]["request-id"]; data?: { products: import("../interfaces/generated").components["schemas"]["response-products"]; }; interactions?: import("../interfaces/generated").components["schemas"]["interactions"]; stream?: import("../interfaces/generated").components["schemas"]["stream"]; }>>; export declare const setTextSearchQuery: (store: SearchStoreName, query: string | null | undefined) => void; export declare const makeTextSearchRequest: (store: SearchStoreName, query: string, token: string, apiPath?: string, requestId?: string | null, resultsCount?: number) => Promise, { requestId?: import("../interfaces/generated").components["schemas"]["request-id"]; data?: { products: import("../interfaces/generated").components["schemas"]["response-products"]; interactions?: import("../interfaces/generated").components["schemas"]["interactions"]; }; interactions?: import("../interfaces/generated").components["schemas"]["interactions"]; stream?: import("../interfaces/generated").components["schemas"]["stream"]; }>>; export declare const makeProductListingPageRequest: (column: string, value: string, token: string, apiPath?: string, resultsCount?: number, dynamicFilters?: RequestDynamicFilterItem[], skipStateUpdate?: boolean) => Promise | import("../error").BasicError, { data?: { products: import("../interfaces/generated").components["schemas"]["response-products"]; }; interactions?: import("../interfaces/generated").components["schemas"]["interactions"]; }>>; export declare const useSearchStore: (showInWidget: boolean) => { state: SearchStore; onChange: OnChangeHandler; storeName: SearchStoreName; }; export declare const makeAutoSuggestRequest: (store: SearchStoreName, query: string, token: string, apiPath?: string) => Promise, { data: { query: string; completions: import("../interfaces/generated").components["schemas"]["query-completion"][]; }; }>>; export declare const clearAutoSuggestCompletions: (store: SearchStoreName) => void; export { onChangeComponentsState, onChangeWidgetState, onChangeShopTheLookState, searchState, componentsState, shopTheLookState, };