import { ReactElement } from 'react';
import { JsonValue } from '@croct/plug/sdk/json';
import { UseEvaluationOptions } from '../../hooks/useEvaluation.cjs';
import '@croct/sdk/facade/evaluatorFacade';

type Renderer<T> = (result: T) => ReactElement | string | number;
type PersonalizationProps<T extends JsonValue = JsonValue, I = T, F = T> = UseEvaluationOptions<I, F> & {
    query: string;
    children: Renderer<T | I | F>;
};
declare function Personalization<T extends JsonValue, I, F>(props: Extract<T | I | F, JsonValue> extends never ? PersonalizationProps : PersonalizationProps<T, I, F>): ReactElement;

export { Personalization, type PersonalizationProps };
