import { JsonValue } from '@croct/plug/sdk/json';
import { EvaluationOptions } from '@croct/sdk/facade/evaluatorFacade';

type UseEvaluationOptions<I, F> = EvaluationOptions & {
    initial?: I;
    fallback?: F;
    cacheKey?: string;
    expiration?: number;
    staleWhileLoading?: boolean;
};
type UseEvaluationHook = <T extends JsonValue, I = T, F = T>(query: string, options?: UseEvaluationOptions<I, F>) => T | I | F;
declare const useEvaluation: UseEvaluationHook;

export { type UseEvaluationOptions, useEvaluation };
