import type{PropertyValues}from'lit';import{type TemplateResult}from'lit';import{LyraElement}from'../../../internal/lyra-element.js';import type{LyraFrame}from'../../../internal/variants.js'; /** Visual chrome for ``'s root — the library's shared container-frame vocabulary. */ export type ResultCardAppearance=LyraFrame; /** * `` — a small bordered card shell for a custom tool-result * renderer's body (see ``'s `registerToolRenderer()` * in `../tool-result-view/registry.js`). Purely visual, with no state of its * own beyond slot-presence tracking: it gives every custom renderer the same * "small card" language (border, radius, optional heading + header actions) * without each one hand-rolling its own box. * * Pairs with `` for the label/value rows that typically * make up the body, though the default slot accepts any content — nothing * here requires a `` specifically. * * @customElement lr-result-card * @slot - The card body — typically one or more `` rows. * @slot actions - Small header controls (e.g. a copy button), rendered * alongside the heading. * @csspart base - The outer bordered container. * @csspart header - The header row wrapping the heading and the `actions` * slot. Present in the DOM at all times (so a later `slotchange` on * `actions` is still observed) but `hidden` whenever there is no `heading` * and no `actions` content — an untitled, action-less card has no visible * header bar at all. * @csspart heading - The heading text. Truncates with an ellipsis and carries * its own native `title` attribute (the full string) so hovering the * truncated text reveals it. The host's native `HTMLElement.title` remains * independent and is never repurposed or removed. * @csspart actions - The wrapper around the `actions` slot. `hidden` * whenever the slot has no assigned content. * @csspart body - The wrapper around the default slot. * @cssprop [--lr-result-card-compact-header-padding=var(--lr-space-xs)] - `[part="header"]` * block/inline padding while `compact`. * @cssprop [--lr-result-card-compact-header-gap=var(--lr-space-xs)] - Gap between `[part="header"]`'s * heading and actions while `compact`. * @cssprop [--lr-result-card-compact-body-padding=var(--lr-space-xs)] - `[part="body"]` padding * while `compact`. * @cssprop [--lr-result-card-compact-body-gap=var(--lr-space-2xs)] - Gap between `[part="body"]`'s * children while `compact`. * @cssprop [--lr-result-card-background=var(--lr-color-surface)] - Fill of the outer card * (`[part="base"]`) while `frame="card"`. `frame="plain"` still removes the fill entirely. * @cssprop [--lr-result-card-border-color=var(--lr-color-border)] - Colour of the outer card's * border and of the `[part="header"]` divider. * @cssprop [--lr-result-card-radius=var(--lr-radius)] - Corner radius of the outer card. * `frame="plain"` still squares the corners. * @status stable * @since 4.0.0 */ export declare class LyraResultCard extends LyraElement{static styles:import("lit").CSSResultGroup[]; /** Small visible heading for the card. Leave unset for an untitled card. * This is deliberately separate from the host's native `title` tooltip. Removing the attribute clears its displayed text. */ heading:string; /** Tighter header/body padding for dense contexts (a card rendered as a row in a transcript or * result list) -- same convention as `lr-agent-run`'s `compact`. Defaults to `false`, i.e. the * full card padding. Purely a density knob: the border and background stay, so use * `frame="plain"` instead to drop the chrome entirely. `frame="plain"` leaves compact padding * and gaps intact when both are set. */ compact:boolean; /** Explicit SSR presence hint for an `actions` slot. Browser upgrades also detect assignment * automatically, so ordinary client-authored markup does not need it. Server renderers cannot * inspect light DOM while rendering a custom element; set this when actions must be visible in * the no-JS response. */ withActions:boolean; /** Visual chrome, in the library's shared container-frame vocabulary (the same `frame` property * `` carries). `'card'` (the default) keeps the bordered, filled box. `'plain'` * removes the border, background, and corner radius, so a card nested inside a host container * that already draws a border (e.g. ``'s own chrome) doesn't double it. * `plain` controls chrome only: compact padding and gaps still apply when both are set. */ frame:LyraFrame;private hasActionsSlot;protected willUpdate(changed:PropertyValues):void;private onActionsSlotChange;render():TemplateResult;}declare global{interface HTMLElementTagNameMap{'lr-result-card':LyraResultCard;}}