/**
 * @license
 * Copyright 2026 Amodal Labs, Inc.
 * SPDX-License-Identifier: MIT
 */
export interface EvalSuite {
    name: string;
    title: string;
    description: string;
    setup: string;
    query: string;
    assertionCount: number;
    assertions: Array<{
        text: string;
        negated: boolean;
    }>;
}
export interface AvailableModel {
    provider: string;
    model: string;
    label?: string;
}
export interface AssertionResult {
    text: string;
    negated: boolean;
    passed: boolean;
    reason: string;
}
export interface CostInfo {
    estimatedCostMicros: number;
    estimatedCostNoCacheMicros?: number;
    inputTokens: number;
    outputTokens: number;
    cacheReadInputTokens?: number;
    cacheCreationInputTokens?: number;
}
export interface EvalResultDetail {
    response: string;
    toolCalls: Array<{
        name: string;
        parameters: Record<string, unknown>;
    }>;
    toolResults?: string[];
    assertions: AssertionResult[];
    durationMs: number;
    error?: string;
    queryCost?: CostInfo;
    judgeCost?: CostInfo;
}
export interface EvalHistoryEntry {
    runId: string;
    passed: boolean;
    durationMs: number;
    queryCostMicros: number;
    judgeCostMicros: number;
    timestamp: string;
    model: string;
    assertions: Array<{
        passed: boolean;
    }>;
}
export interface CompareResult {
    model: AvailableModel;
    passed: boolean;
    assertions: AssertionResult[];
    durationMs: number;
    queryCostMicros: number;
    judgeCostMicros: number;
    response: string;
    toolCalls: Array<{
        name: string;
        parameters: Record<string, unknown>;
    }>;
    toolResults: string[];
    error?: string;
}
export declare function streamEvalRun(evalNames: string[], onEvent: (event: Record<string, unknown>) => void, model?: {
    provider: string;
    model: string;
}, timeoutMs?: number): {
    promise: Promise<void>;
    abort: () => void;
};
export declare function runSingleModelEval(evalName: string, model: AvailableModel, timeoutMs?: number, onJudging?: () => void): Promise<CompareResult>;
export declare function CompareTable({ results, runningModel, runPhase, runStartTime }: {
    results: CompareResult[];
    runningModel?: AvailableModel | null;
    runPhase?: 'querying' | 'judging';
    runStartTime?: number;
}): import("react/jsx-runtime").JSX.Element | null;
export declare function EvalCard({ suite, models, history, hideModelSelector, autoRunTrigger, expandOverride, }: {
    suite: EvalSuite;
    models: AvailableModel[];
    history: EvalHistoryEntry[];
    hideModelSelector?: boolean;
    autoRunTrigger?: number;
    expandOverride?: boolean | null;
}): import("react/jsx-runtime").JSX.Element;
