import type { Controller, ControllerDefinitionsMap, CoreEngine, EngineDefinition, InferControllerFromDefinition, InferControllerStaticStateMapFromDefinitions, InferControllersMapFromDefinition } from '@coveo/headless/ssr'; import type { FunctionComponent, PropsWithChildren } from 'react'; type ContextStaticState> = { controllers: InferControllerStaticStateMapFromDefinitions; }; export type ContextHydratedState> = { engine: TEngine; controllers: InferControllersMapFromDefinition; }; export type ContextState> = ContextStaticState | ContextHydratedState; export type ControllerHook = () => { state: TController['state']; methods?: Omit; }; export type InferControllerHooksMapFromDefinition> = { [K in keyof TControllers as `use${Capitalize}`]: ControllerHook>; }; export type ReactEngineDefinition, TEngineOptions> = EngineDefinition & { controllers: InferControllerHooksMapFromDefinition; useEngine(): TEngine | undefined; /** * @deprecated Use `StateProvider` instead. */ StaticStateProvider: FunctionComponent; }>>; /** * @deprecated Use `StateProvider` instead. */ HydratedStateProvider: FunctionComponent; }>>; StateProvider: FunctionComponent | InferControllerStaticStateMapFromDefinitions; }>>; }; export {};