import{type TemplateResult,type PropertyValues}from'lit';import{LyraElement}from'../../../internal/lyra-element.js';export type CompareVote='a'|'b'|'tie'|'both-bad';export interface LyraComparePanelEventMap{'lr-vote':CustomEvent<{choice:CompareVote;itemId:string;}>;} /** * `` — side-by-side A/B output comparison with a winner * vote (LMSYS-arena / LangSmith-pairwise style): two slotted panes, a vote * bar, synchronized reading. * A host may commit `itemId` and its controlled `vote` in either assignment order. Changing only * `itemId` clears the prior vote; an explicit vote in the same update is preserved. * `allowedVotes` is a clone-owned, bounded readonly snapshot; create and reassign a new array * after changing the permitted choices. * * @customElement lr-compare-panel * @slot a - The first output (any content — a chat message, markdown, a viewer). * @slot b - The second output. * @slot prompt - Optional shared-input header above both panes. * @event lr-vote - `detail: { choice, itemId }`. Cancelable; preventing it preserves the prior vote. * @csspart base - The outer wrapper. * @csspart prompt - The optional prompt header, hidden when the `prompt` slot is empty. * @csspart panes - The row (or, under 640px, column) wrapping both panes. Stacked panes size to * their content up to the configured maximum height. * @csspart pane-a - The first pane's labeled scroll region. * @csspart pane-b - The second pane's labeled scroll region. * @csspart pane-header - A pane's visible heading. * @csspart vote-bar - The `role="group"` row of vote buttons. * @csspart vote-button - One vote button. * @csspart live-region - The internal vote-announcement live region. * @cssprop [--lr-compare-panel-max-height=var(--lr-size-24rem)] - Cap on how tall each pane's * scroll region grows before it scrolls internally. * @cssprop [--lr-compare-panel-selected-background=var(--lr-color-brand-quiet)] - Selected vote * button background. * @cssprop [--lr-compare-panel-selected-border-color=var(--lr-color-brand)] - Selected vote * button border color. * @cssprop [--lr-compare-panel-selected-color=var(--lr-color-brand)] - Selected vote button text * color. * @cssprop [--lr-compare-panel-selected-font-weight=var(--lr-font-weight-semibold)] - Selected * vote button font weight. * @status stable * @since 4.0.0 */ export declare class LyraComparePanel extends LyraElement{protected static readonly ownedCollectionProperties:readonly string[];static styles:import("lit").CSSResultGroup[];static properties:{labelA:{attribute:string;noAccessor:boolean;};labelB:{attribute:string;noAccessor:boolean;};vote:{reflect:boolean;noAccessor:boolean;};itemId:{attribute:string;noAccessor:boolean;};syncScroll:{type:BooleanConstructor;attribute:string;noAccessor:boolean;};disabled:{type:BooleanConstructor;reflect:boolean;noAccessor:boolean;};};private hasPromptSlot;private promptSlot?;private paneAEl?;private paneBEl?;private liveRegion?;private _labelA;private _labelB;private _vote;private _itemId;private _syncScroll;private _disabled;private pendingScrollReset;private suppressSync;private syncScrollRafId?;private syncScrollRafOwner?;private syncScrollRafDocument?;private ownerRealmGeneration;private voteAssignedInCommit;get labelA():string;set labelA(next:string);get labelB():string;set labelB(next:string);get vote():CompareVote|null;set vote(next:CompareVote|null);get itemId():string;set itemId(next:string); /** Clone-owned vote choices shown in the canonical `a`, `b`, `tie`, `both-bad` order. * JS-only so the positive choice list stays typed instead of relying on a * lossy comma-separated attribute representation. Reassign a new array after changes. */ allowedVotes:readonly CompareVote[];get syncScroll():boolean;set syncScroll(next:boolean);get disabled():boolean;set disabled(next:boolean);private onPromptSlotChange;private collectPromptSlotContent;disconnectedCallback():void;adoptedCallback():void;private resetScrollSyncFrame;private castVote;private voteButton;private onPaneScroll;protected willUpdate(changed:PropertyValues):void;protected updated(changed:PropertyValues):void;protected firstUpdated(changed:PropertyValues):void;render():TemplateResult;}declare global{interface HTMLElementTagNameMap{'lr-compare-panel':LyraComparePanel;}}