import{type TemplateResult}from'lit';import{LyraElement}from'../../../internal/lyra-element.js';import type{LyraFrame}from'../../../internal/variants.js';import'../../agent-tools/result-card/result-field.class.js';import'../../overlays/badge/badge.class.js';import'../../overlays/chip/chip.class.js';import'../../forms/button/button.class.js';import'../../overlays/empty/empty.class.js';import type{LyraNodeTypeStyle}from'../../../internal/node-type-style.js';export type{LyraNodeTypeStyle}from'../../../internal/node-type-style.js'; /** One knowledge-graph entity, as consumed by every knowledge-graph explorer component. Field * names deliberately mirror `lr-graph`'s node shape (`type`, `communityId`), so * `{ ...graphNode, label: graphNode.label ?? graphNode.id }` adapts a graph node into a * `LyraEntity` with no mapping table. */ export interface LyraEntity{id:string;label:string; /** Matches a `nodeTypes[].id` on the paired `lr-graph`. */ type?:string;description?:string; /** Key/value dossier rows, rendered in insertion order. */ properties?:Readonly>; /** Relationship count (in + out). */ degree?:number;communityId?:string;} /** Container treatment for ``'s root. The library-wide {@linkcode LyraFrame} * vocabulary under this component's own export name. */ export type EntityCardAppearance=LyraFrame;export interface LyraEntityCardEventMap{ /** Canonical name for the "user picked this entity" gesture. */ 'lr-entity-select':CustomEvent<{entityId:string;}>;} /** * `` — a dossier card for one `LyraEntity`: type badge, description, key/value * property rows, degree, community chip, plus a built-in "focus in graph" action. Never fetches or * focuses a graph itself — `lr-entity-select` is a request a host routes into `lr-graph`'s * `focusNode(id, { zoom? })`. * * 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. * * @customElement lr-entity-card * @attr {string | number | null} aria-level - Heading level forwarded to the title. An absent or empty value * uses level 3. * @slot - Extra body content below the property rows (e.g. a `lr-neighbor-list`). * @slot actions - Extra header actions alongside the built-in focus button. * @event lr-entity-select - The built-in focus button was activated. `detail: { entityId }`. * @csspart base - The outer bordered container. * @csspart header - The header row wrapping the type badge, title, and actions. * @csspart type-badge - The resolved entity-type badge. * @csspart title - The entity's label, `role="heading" aria-level="3"` by default. The host's * existing `aria-level` override updates live; removing it restores level 3. * @csspart description - The entity's description text. * @csspart properties - The wrapper around every property/degree/community row. * @csspart property - One key/value dossier row. * @csspart degree - The relationship-count row. * @csspart community - The community-chip row. * @csspart actions - The wrapper around the `actions` slot and the built-in focus button. * @csspart focus-button - The built-in "Focus in graph" button. * @csspart empty - The empty state shown when `entity` is `null`. * @cssprop [--lr-entity-card-bg=var(--lr-color-surface)] - Resting background of `[part="base"]`. * `frame="plain"` still paints transparent. * @cssprop [--lr-entity-card-compact-padding=var(--lr-space-s)] - `[part="base"]` padding while * `compact`. * @cssprop [--lr-entity-card-compact-gap=var(--lr-space-xs)] - Gap between `[part="base"]`'s rows * while `compact`. * @status stable * @since 4.0.0 */ export declare class LyraEntityCard extends LyraElement{static get observedAttributes():string[];attributeChangedCallback(name:string,oldValue:string|null,value:string|null):void;protected static readonly ownedCollectionProperties:readonly string[];static styles:import("lit").CSSResultGroup[]; /** `null` renders the shared `lr-empty` `noData` state. */ entity:Readonly |null; /** `lr-graph` `nodeTypes` pass-through used to resolve the type badge's label and swatch * color; an unresolvable `entity.type` renders as its raw id in a neutral badge. */ types:readonly LyraNodeTypeStyle[]; /** Display label for `entity.communityId`'s chip; falls back to the raw id. */ communityLabel:string; /** Hides the built-in focus action on pages with no graph. */ showFocusButton:boolean; /** Tighter root padding and row gap for dense contexts (a dossier rendered in a sidebar or a * result list) -- same convention as `lr-empty`'s `compact`, and as this component's sibling * `lr-community-card`. Defaults to `false`, i.e. the full card padding. Purely a density knob: * the border and background stay, so use `frame="plain"` to drop the chrome entirely. */ compact:boolean; /** Container treatment, in the shared `LyraFrame` vocabulary. `'card'` (the default) keeps the * bordered, filled, padded box. `'plain'` removes the border, background, padding and corner * radius, so a card nested inside a container that already draws a border doesn't double it. * `plain` wins over `compact` when both are set (nothing left to tighten). */ frame:LyraFrame;private resolvedType;private onFocusClick;render():TemplateResult;}declare global{interface HTMLElementTagNameMap{'lr-entity-card':LyraEntityCard;}}