import { type Controller, type ControllerDefinitionsMap, type InferControllerStaticStateMapFromDefinitionsWithSolutionType, type InferControllersMapFromDefinition, SolutionType, type CommerceEngine as SSRCommerceEngine } from '@coveo/headless/ssr-commerce'; import { type Context, type PropsWithChildren } from 'react'; import { type SingletonGetter } from '../utils.js'; import type { ContextState, InferControllerHooksMapFromDefinition } from './types.js'; export declare function buildControllerHooks, TSolutionType extends SolutionType>(singletonContext: SingletonGetter | null>>, controllersMap?: TControllers): InferControllerHooksMapFromDefinition; export declare function buildEngineHook, TSolutionType extends SolutionType>(singletonContext: SingletonGetter | null>>): () => SSRCommerceEngine | undefined; /** * @deprecated use `buildStateProvider` instead. * It is isomorphic and can be used for both static and hydrated state. */ export declare function buildStaticStateProvider, TSolutionType extends SolutionType>(singletonContext: SingletonGetter | null>>, solutionType: TSolutionType): ({ controllers, children, }: PropsWithChildren<{ controllers: InferControllerStaticStateMapFromDefinitionsWithSolutionType; }>) => import("react").JSX.Element; /** * @deprecated use `buildStateProvider` instead. * It is isomorphic and can be used for both static and hydrated state. */ export declare function buildHydratedStateProvider, TSolutionType extends SolutionType>(singletonContext: SingletonGetter | null>>, solutionType: TSolutionType): ({ engine, controllers, children, }: PropsWithChildren<{ engine: SSRCommerceEngine; controllers: InferControllersMapFromDefinition; }>) => import("react").JSX.Element; export declare function buildStateProvider, TSolutionType extends SolutionType>(singletonContext: SingletonGetter | null>>, solutionType: TSolutionType): ({ engine, controllers, children, }: PropsWithChildren<{ engine?: SSRCommerceEngine; controllers: InferControllersMapFromDefinition | InferControllerStaticStateMapFromDefinitionsWithSolutionType; }>) => import("react").JSX.Element;