import { type CachingStrategy } from '@shopify/hydrogen';
import { AutocompleteArticlesResponse, AutocompleteCollectionResponse, AutocompleteParams, AutocompleteTurboLinksResponse, DashboardConfigResponse, GetRecommendationsProps, RecommendationsProps, RecommendationsResponse, SearchParams, SearchResponse, ServerProduct, SmartCollectionResponse, SmartCollectionsParams, VisualSimilarityProps } from "@fast-simon/types";
import { FsSession } from "./fastSimonSession";
export declare function createFastSimonClient({ cache, waitUntil, request, uuid, storeID, fastSimonSession, searchPersonalization, collectionPersonalization }: {
    cache: Cache;
    waitUntil: (promise: Promise<any>) => void;
    request: Request;
    uuid: string;
    storeID: string;
    fastSimonSession: FsSession;
    searchPersonalization?: boolean;
    collectionPersonalization?: boolean;
}): {
    getSmartCollection: ({ props, cacheStrategy }: {
        props: SmartCollectionsParams;
        cacheStrategy?: CachingStrategy;
    }) => Promise<SmartCollectionResponse>;
    getSearchResults: ({ props, cacheStrategy }: {
        props: SearchParams;
        cacheStrategy?: CachingStrategy;
    }) => Promise<SearchResponse>;
    getVisualSimilarityProducts: ({ props, cacheStrategy }: {
        props: VisualSimilarityProps;
        cacheStrategy?: CachingStrategy;
    }) => Promise<ServerProduct[]>;
    getDashboardConfig: ({ cacheStrategy }: {
        cacheStrategy?: CachingStrategy;
    }) => Promise<DashboardConfigResponse>;
    getAutocompleteResults: ({ props, cacheStrategy }: {
        props: AutocompleteParams;
        cacheStrategy?: CachingStrategy;
    }) => Promise<{
        items: {
            products: ServerProduct[];
            collections: AutocompleteCollectionResponse[];
            articles: AutocompleteArticlesResponse[];
            pages: any[];
            queries: any[];
            turbolinks: AutocompleteTurboLinksResponse[];
            popularSearches: string[];
        };
    }>;
    productsRecommendations: ({ props, cacheStrategy }: {
        props: RecommendationsProps;
        cacheStrategy?: CachingStrategy;
    }) => Promise<ServerProduct[]>;
    getRecommendations: ({ props, cacheStrategy }: {
        props: GetRecommendationsProps;
        cacheStrategy?: CachingStrategy;
    }) => Promise<RecommendationsResponse>;
};
