import{type TemplateResult}from'lit';import{LyraElement}from'../../../internal/lyra-element.js';import type{LyraEntity}from'../entity-card/entity-card.class.js';export type{LyraEntity}from'../entity-card/entity-card.class.js';import type{LyraNeighborListEventMap,LyraNeighborRow}from'../neighbor-list/neighbor-list.class.js';export type{LyraNeighborRow}from'../neighbor-list/neighbor-list.class.js';import type{LyraChunk,LyraChunkInspectorEventMap}from'../chunk-inspector/chunk-inspector.class.js';export type{LyraChunk}from'../chunk-inspector/chunk-inspector.class.js';import type{LyraProvenance,LyraProvenancePanelEventMap}from'../provenance-panel/provenance-panel.class.js';export type{LyraProvenance}from'../provenance-panel/provenance-panel.class.js';import type{StatRow}from'../../data/stat/stat.class.js';import type{LyraVariant}from'../../../internal/variants.js';import type{LyraNodeTypeStyle}from'../../../internal/node-type-style.js';export type{LyraNodeTypeStyle}from'../../../internal/node-type-style.js';import type{LyraTabGroupEventMap}from'../../layout/tab-group/tab-group.class.js';import'../entity-card/entity-card.class.js';import'../neighbor-list/neighbor-list.class.js';import'../chunk-inspector/chunk-inspector.class.js';import'../provenance-panel/provenance-panel.class.js';import'../../data/stat/stat.class.js';import'../../layout/tab-group/tab-group.class.js';import'../../overlays/empty/empty.class.js';import type{LyraScoreThresholds}from'../graph/graph.class.js'; /** The three tab ids this component renders -- also `lr-tab-group`' own `slot`/`tabId` values, so a * `lr-tab-show` listener can switch on these literally. */ export type LyraEntityDossierTab='relationships'|'chunks'|'provenance'; /** * The headline confidence KPI shown next to the entity summary. Every field here is caller-supplied * domain data -- the same convention `lr-stat`'s own `label`/`value`/`caption`/`rows` already use * (a confidence metric's label is exactly as domain-specific as a "Revenue" or "Latency" stat's * label), so none of it routes through `localize()`. */ export interface LyraEntityDossierConfidence{readonly label:string;readonly value:string;readonly unit?:string;readonly variant?:LyraVariant; /** Exact value shown as a hover/focus tooltip on the headline value -- see `lr-stat.exactValue`. */ readonly exactValue?:string;readonly caption?:string; /** Breakdown rows (e.g. per-signal sub-scores) -- see `lr-stat.rows`. */ readonly rows?:readonly StatRow[];}export interface LyraEntityDossierEventMap extends Omit,LyraChunkInspectorEventMap,Omit,Omit{ /** Canonical name for the "user picked this entity" gesture, surfaced unchanged from the * embedded entity card or neighbor list. No composed child emits this with an * `occurrenceIndex` (only the embedded provenance panel's own `lr-entity-activate` does, via * its community card and relationship path strip), so unlike that one this stays the plain * shape. */ 'lr-entity-select':CustomEvent<{entityId:string;}>;'lr-entity-activate':CustomEvent<{entityId:string;occurrenceIndex?:number;}>;'lr-tab-show':CustomEvent<{tabId:LyraEntityDossierTab;}>;} /** * `` — a full entity detail surface: a persistent header (`lr-entity-card` plus * an optional confidence `lr-stat`) above a `lr-tab-group` strip for Relationships (`lr-neighbor-list`), * Supporting chunks (`lr-chunk-inspector`), and Provenance (`lr-provenance-panel`). Pure layout — * it never fetches, ranks, or mutates graph/document state, and never re-renders what any of those * five composed components already render themselves; every one of their own events (` * lr-entity-select`, `lr-entity-activate`, `lr-node-expand`, `lr-chunk-open`, `lr-expand`, * `lr-toggle`, `lr-tab-show`, plus the provenance panel's own conduit set — `lr-entity-open`, `lr-drill`, * `lr-relation-activate`) bubbles through unmodified (`composed: true` crosses this component's own * shadow boundary with no re-dispatch needed). * * `chunks`/`thresholds` (the "supporting chunks" tab) and `provenance` (the "Provenance" tab) are * deliberately separate inputs even though `lr-provenance-panel` can itself also show a chunks * section: the "Supporting chunks" tab is the evidence for *this entity's own* summary/properties, * while `provenance` is the broader grounding chain (which may span other entities, relationships, * and communities, and may or may not reuse the same chunk set) — a host is free to pass the same * array to both when the two concepts genuinely coincide. * * Tab labels reuse the exact `localize()` keys the composed child already uses for its own * accessible name (`neighborListLabel`, `chunkInspectorLabel`, `provenancePanelLabel`) rather than * new dossier-specific keys, so a translated locale only has to cover each string once and the tab * strip and the panel underneath it always agree. * * This component emits no events of its own. Its EventMap and `@event` documentation name the * composed events that bubble through so host listeners remain typed and discoverable; * `lr-tab-show` carries `detail: { tabId: LyraEntityDossierTab }`. This is the same "pure * projection + event conduit" convention `lr-provenance-panel` and `lr-spreadsheet-viewer`'s * internal `lr-tab-group` already establish. * * 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-dossier * @event lr-entity-select - Surfaced unchanged from the embedded entity card or neighbor list. * `detail: { entityId }`. * @event lr-entity-activate - Surfaced unchanged from the embedded provenance panel's own * community card or relationship path strip. `detail: { entityId, occurrenceIndex? }`. * @event lr-node-expand - Surfaced unchanged from the embedded neighbor list. * `detail: { nodeId }`. * @event lr-chunk-open - Surfaced unchanged from the embedded chunk inspector. * `detail: { chunkId, sourceId, anchor? }`. * @event lr-expand - Surfaced unchanged from the embedded chunk inspector. * `detail: { chunkId, expanded }`. * @event lr-toggle - Surfaced unchanged from the embedded provenance panel. * `detail: { section, expanded }`. * @event lr-entity-open - Surfaced unchanged from an entity chip inside the embedded provenance * panel. `detail: { entityId }`. * @event lr-drill - Surfaced unchanged from a community card inside the embedded provenance panel. * `detail: { communityId }`. * @event lr-relation-activate - Surfaced unchanged from a relationship path strip inside the * embedded provenance panel. `detail: { relation, sourceNodeId?, targetNodeId?, occurrenceIndex }`. * @event lr-tab-show - Surfaced unchanged from the embedded tabs. * `detail: { tabId }`. * @csspart base - The root wrapper, or the empty state's wrapper when `entity` is `null`. * @csspart header - The wrapper around the entity summary and the confidence stat. * @csspart entity-card - The nested `lr-entity-card`. * @csspart confidence - The nested confidence `lr-stat`, only rendered when `confidence` is set. * @csspart tabs - The nested `lr-tab-group` strip. * @csspart neighbor-list - The nested `lr-neighbor-list`, inside the Relationships tab. * @csspart chunk-inspector - The nested `lr-chunk-inspector`, inside the Supporting chunks tab. * @csspart provenance-panel - The nested `lr-provenance-panel`, inside the Provenance tab. * @csspart empty - The empty state shown when `entity` is `null`. * @status stable * @since 4.1.0 */ export declare class LyraEntityDossier extends LyraElement{protected static readonly ownedCollectionProperties:readonly string[];static styles:import("lit").CSSResultGroup[]; /** `null` renders the shared `lr-empty` `noData` state in place of the whole dossier. */ entity:Readonly |null; /** `lr-graph` `nodeTypes` pass-through, forwarded to both `lr-entity-card` and * `lr-provenance-panel` so the entity type badge and any provenance entity chips resolve * identically. */ types:readonly LyraNodeTypeStyle[]; /** Forwarded to `lr-entity-card`'s own `communityLabel`. */ communityLabel:string; /** Forwarded to `lr-entity-card`'s own `showFocusButton`. */ showFocusButton:boolean; /** Headline confidence KPI, rendered as an `lr-stat` next to the entity summary. Omitted * entirely (no placeholder, no empty stat) when `null`. */ confidence:Readonly |null; /** Forwarded to `lr-neighbor-list`'s own `rows`. */ neighbors:readonly LyraNeighborRow[]; /** Forwarded to `lr-neighbor-list`'s own `groupByRelation`. */ groupByRelation:boolean; /** Forwarded to `lr-neighbor-list`'s own `expandable`. */ expandable:boolean; /** Forwarded to `lr-chunk-inspector`'s own `chunks` -- the evidence for this entity's own * summary, distinct from `provenance` (see the class doc above). */ chunks:readonly LyraChunk[]; /** Forwarded to both `lr-chunk-inspector`'s and `lr-provenance-panel`'s own `thresholds`, so * the score tiers agree everywhere a score renders in this dossier. */ thresholds:LyraScoreThresholds; /** Forwarded to `lr-provenance-panel`'s own `provenance`. */ provenance:Readonly |null; /** JS-only accessible name for the internal `lr-tab-group` strip while no host `aria-label` is * authored. A host label independently names the dossier and is not cloned onto the strip. */ accessibleLabel:string|null; /** Which tab is active -- internal, not a controlled public property: `lr-tab-group` already owns * this state, and a one-way `.active=${...}` binding driven by a *stale* public property here * would fight the user's own click the next time this component re-renders for an unrelated * reason (see `lr-spreadsheet-viewer`'s identical `activeSheetIndex` pattern). */ private activeTab; /** ``'s own raw `lr-tab-show` carries `detail: { name }` (its upstream-mirrored * shape). This component's own documented/typed event contract instead promises `detail: { * tabId }` -- matching `LyraEntityDossierTab` naming rather than the generic upstream `name` -- * so the raw child event is swallowed here (never forwarded as-is) and a correctly-shaped one is * dispatched in its place, the same swap `lr-spreadsheet-viewer`'s own internal `lr-tab-group` * consumer already makes for its own tab-change handling. */ private onTabsChange; /** The inner ``'s `lr-activate` reports a repeat pick of the tab already active. * It is swallowed for the same reason `onTabsChange` swallows the raw `lr-tab-show`: this * component's documented event contract is its own, and a child event escaping as-is would be * public surface this tag never declared. */ private containTabsEvent;render():TemplateResult;}declare global{interface HTMLElementTagNameMap{'lr-entity-dossier':LyraEntityDossier;}}