import{type TemplateResult}from'lit';import{LyraElement}from'../../../internal/lyra-element.js';import'../../charts/chart/lite-chart.class.js';import'../../data/stat/stat.class.js';import'../../overlays/empty/empty.class.js';export type LyraRagEvaluationMetricCategory='retrieval'|'generation'|'system'|(string&{});export type LyraRagEvaluationMetricFormat='number'|'percent';export interface LyraRagEvaluationMetric{id:string;label:string;category:LyraRagEvaluationMetricCategory;format?:LyraRagEvaluationMetricFormat;}export interface LyraRagEvaluationRun{id:string;label:string;metrics:Record;slice?:string;timestamp?:string;metadata?:Record;}export interface LyraRagEvalDashboardEventMap{'lr-metric-change':CustomEvent<{metricId:string;}>;'lr-slice-change':CustomEvent<{slice:string;}>;'lr-run-change':CustomEvent<{run:LyraRagEvaluationRun;}>;} /** * `` — a controlled RAG quality overview with current metric cards, * per-metric trends, evaluation slices, and run history. It displays host-computed metrics and * never executes datasets, retrieval, judges, or model calls. A controlled `slice` absent from * the current runs is preserved and renders an explicit localized unavailable-filter state; * the component never silently switches it to All. * * Public collection properties take bounded, clone-owned readonly snapshots. Create a new * collection and reassign it after changes; mutating the assigned array does not update the view. * Blank metric/run ids and later duplicates are ignored before fallback selection, filters, * counts, rendering, or actions. The first record for an id wins. * * @customElement lr-rag-eval-dashboard * @event lr-metric-change - A metric was activated. `detail: { metricId }`. * @event lr-slice-change - An evaluation slice was activated. `detail: { slice }`. * @event lr-run-change - An evaluation run was activated. `detail: { run }`. * @csspart base - The named dashboard region. * @csspart heading - The visible dashboard heading. * @csspart slices - Slice filter controls. * @csspart slice - One slice filter. * @csspart slice-selected - The controlled active slice. * @csspart metrics - Metric-card controls. * @csspart metric - One metric control. * @csspart metric-selected - The controlled active metric. * @csspart metric-category - The metric's caller-supplied category label. * @csspart chart - The active metric trend. * @csspart runs - Evaluation run history. * @csspart runs-heading - Run-history heading. * @csspart run - One evaluation run. * @csspart empty - The no-runs or unavailable-controlled-slice state. * @cssprop [--lr-rag-eval-dashboard-selected-border-color=var(--lr-color-brand)] - Border color * shared by the controlled active slice and metric. * @status stable * @since 7.0.0 */ export declare class LyraRagEvalDashboard extends LyraElement{protected static readonly ownedCollectionProperties:readonly string[];static styles:import("lit").CSSResultGroup[]; /** Metric definitions shown as controls and used to format run values. */ metrics:readonly LyraRagEvaluationMetric[]; /** Evaluation runs displayed in the trend chart and run history. */ runs:readonly LyraRagEvaluationRun[]; /** Controlled id of the active metric; empty selects the first available metric. A non-empty * value that matches no declared `metrics` entry selects no metric at all (no button renders * `aria-pressed="true"`, and no chart renders) rather than silently substituting the first * metric -- the host's own readback always agrees with what is rendered. */ metricId:string; /** Controlled evaluation slice. An unavailable value is preserved and renders an explicit * localized state until the host changes it or supplies a matching run. */ slice:string; /** Visible dashboard heading and fallback overall-region name. Omitting it falls back to a * localized default; an explicit empty string clears both. A non-empty host `aria-label` * makes the host the sole overall owner; an explicitly empty host label stays empty. */ label?:string; /** Whether a trend chart is rendered when an active metric and matching runs exist. */ showChart:boolean; /** CSS block size forwarded to the composed trend chart. */ chartHeight:string;private get normalizedMetrics();private get normalizedRuns();private activeMetric;private slices;private filteredRuns;private formatMetric;private latestValue;private emitRunChange;private renderSlices;render():TemplateResult;}declare global{interface HTMLElementTagNameMap{'lr-rag-eval-dashboard':LyraRagEvalDashboard;}}