import { Request } from 'groupby-api'; import { QueryTimeAutocompleteConfig } from 'sayt'; import RecommendationsAdapter from '../adapters/recommendations'; import Store from '../store'; declare namespace RequestHelpers { type RequestBody = RecommendationsAdapter.RecommendationsBody | RecommendationsAdapter.RecommendationsRequest | RecommendationsAdapter.PastPurchaseRequest; const buildPostBody: (body: RequestBody) => { method: string; body: string; }; type BuildFunction = (state: Store.State, overrideRequest?: T) => S; const search: BuildFunction, Request>; const pastPurchaseProducts: BuildFunction, Request>; const recommendationsSuggestions: BuildFunction, RecommendationsAdapter.Request>; const recommendationsNavigations: BuildFunction, RecommendationsAdapter.RecommendationsBody>; const recommendationsProductIDs: BuildFunction, RecommendationsAdapter.RecommendationsRequest>; const autocompleteSuggestions: BuildFunction, QueryTimeAutocompleteConfig>; const autocompleteProducts: BuildFunction, Request>; const productDetails: BuildFunction, Request>; const products: BuildFunction, Request>; const realTimeBiasing: (state: Store.State, request: Request) => Request; const chain: (...fns: ((...obj: any[]) => T)[]) => T; const extractSessionId: (state: Store.State) => string; } export default RequestHelpers;