/**
 * Two Jev calls, then one outcome: draw or miss.
 * A miss leaves the engine draw in place. A clear class does the same when its chart cannot be drawn.
 */
import type { ClassifiedColumn } from '../profiler/roles.js';
import type { DataProfile } from '../spec/data-profile.js';
import { type JevChartRequest, type JevChartResponse } from './chart-choice.js';
export type JevAsk = (request: JevChartRequest) => Promise<JevChartResponse>;
export type JevDraw = {
    kind: 'draw';
    chartId: string;
    why: string;
    by: 'named' | 'jev';
};
export type JevOutcome = JevDraw | {
    kind: 'miss';
} | {
    kind: 'skip';
};
export declare function resolveJev(input: {
    ask?: JevAsk;
    utterance: string;
    intent: string;
    requestedChart?: string;
    profile: DataProfile;
    classified?: readonly ClassifiedColumn[];
    catalogIds: ReadonlySet<string>;
}): Promise<JevOutcome>;
