import { Dispatch, ReactNode } from 'react'; import { AppSharedState } from '../appState/state.models'; import { OneOfStateActions } from '../appState/state.models.actions'; /** * Props for SharedStateWrapper component. * @template AppSpecificState - Type extending AppSharedState for customizing state structure * @template AppSpecificActions - Type for action objects, defaults to OneOfStateActions * @property {ReactNode} children - Child components to be wrapped * @property {AppSpecificState} sharedState - Application-specific state object * @property {Dispatch} sharedStateDispatchFunction - Dispatch function for state updates */ interface SharedStateWrapperProps { children: ReactNode; sharedState: AppSpecificState; sharedStateDispatchFunction: Dispatch; } /** * A wrapper component that provides shared state and dispatch functionality to its children * using React Context. * * @template AppSpecificState - Type extending AppSharedState for application specific state * @template AppSpecificActions - Type for application specific actions, defaults to OneOfStateActions * * @param props - Component props * @param props.children - Child components that will have access to the shared state * @param props.sharedState - The shared state object to be provided to children * @param props.sharedStateDispatchFunction - The dispatch function for updating shared state * * @returns A component wrapped with shared state context providers * * @example * ```tsx * * * * ``` */ export declare function SharedStateWrapper({ children, sharedState, sharedStateDispatchFunction, }: SharedStateWrapperProps): import("react/jsx-runtime").JSX.Element; export default SharedStateWrapper;