/**
* External dependencies
*/
import { createContext } from 'react';
/**
* Types & Constants
*/
import SuggestionsEventSource from '../suggestions-event-source/index.ts';
import type { AskQuestionOptionsArgProps } from '../ask-question/index.ts';
import type { RequestingErrorProps } from '../hooks/use-ai-suggestions/index.ts';
import type { PromptProp, RequestingStateProp } from '../types.ts';
import type { ReactElement } from 'react';
export type AiDataContextProps = {
/*
* Suggestion value
*/
suggestion: string;
/*
* Suggestion error
*/
requestingError: RequestingErrorProps;
/*
* Requesting state
*/
requestingState: RequestingStateProp;
/*
* Request suggestion function
*/
requestSuggestion: ( prompt: PromptProp, options?: AskQuestionOptionsArgProps ) => void;
/*
* Stop suggestion function
*/
stopSuggestion: () => void;
/*
* The Suggestions Event Source instance
*/
eventSource: SuggestionsEventSource | null;
};
type AiDataContextProviderProps = {
/*
* Data to provide to the context
*/
value: AiDataContextProps;
/*
* Children
*/
children: ReactElement;
};
/**
* AI Data Context
*
* @return {AiDataContextProps} Context.
*/
export const AiDataContext = createContext< AiDataContextProps | object >( {} );
/**
* AI Data Context Provider
*
* @param {AiDataContextProviderProps} props - Component props.
* @return {ReactElement} Context provider.
* @example
*
* { children }
*
*/
export const AiDataContextProvider = ( {
value,
children,
}: AiDataContextProviderProps ): ReactElement => (
);