import{type TemplateResult,type PropertyValues}from'lit';import{LyraElement}from'../../../internal/lyra-element.js';import{type LyraClipboardWriteFailure,type LyraClipboardWriteSuccess}from'../../../internal/clipboard.js'; /** * `true`-defaulting boolean attribute converter. Lit's built-in `type: Boolean` converter is * presence-based -- the attribute's mere presence (regardless of its string value) maps to `true`, * so a plain-markup consumer writing the literal `revealable="false"`/`copyable="false"` would * actually get `true` (these properties' default), the opposite of what that string reads as -- * the same bug class ``'s `restorable`/`confirmRestore` converters document and fix. */ export interface EnvEntry{readonly name:string;readonly value:string;readonly secret?:boolean;}export interface LyraEnvListEventMap{'lr-reveal-change':CustomEvent>;'lr-copy':CustomEvent;'lr-copy-error':CustomEvent;'lr-error':CustomEvent;} /** * `` — masked key/value list for environment variables and secrets, with per-row * reveal and copy. Masking is presentational, not a security boundary: the real value sits in a DOM * property regardless of mask state. Entry identity is a unique nonempty `name`; malformed, * blank-name, and later duplicate records are omitted first-wins before render, reveal state, * copy actions, and reveal events. * * @customElement lr-env-list * @event lr-reveal-change - `detail: { envName, revealed }`. * @event lr-copy - A clipboard write fulfilled. Frozen detail: `{ ok: true, text }`, where text is * the real (unmasked) value. * @event lr-copy-error - A clipboard write failed. Frozen detail: * `{ ok: false, text, reason, error }`. * @event lr-error - A clipboard write failed; compatibility notification without raw error text. * @csspart base - The `
` root. * @csspart name - The `
` name text. * @csspart value-cell - The `
` wrapping one entry's value text and its buttons; buttons live * here (not as siblings of `
`/`
`) so the `
` keeps a valid dt/dd content model. * @csspart value - The value text itself; carries `data-masked`. * @csspart reveal-button - The per-row reveal/hide toggle. * @csspart copy-button - The per-row copy button. * @cssprop [--lr-env-list-reveal-active-bg=var(--lr-color-brand-quiet)] - Background of a pressed * (revealed) reveal toggle. * @cssprop [--lr-env-list-reveal-active-border=var(--lr-color-brand)] - Border color of a pressed * (revealed) reveal toggle. Restyling the pressed state otherwise requires overriding the * library-wide brand tokens, since `::part(reveal-button)[aria-pressed]` is invalid CSS. * @status stable * @since 4.0.0 */ export declare class LyraEnvList extends LyraElement{static styles:import("lit").CSSResultGroup[];private _entries; /** Clone-owned readonly name/value entries to render, in order, bounded to the first 10,000 * source entries. Malformed records, blank names, and later duplicate names are skipped; the * first valid occurrence owns render, reveal, copy, and event identity. Reassign to update. */ get entries():readonly EnvEntry[];set entries(value:readonly EnvEntry[]); /** Whether each secret entry gets a reveal/hide toggle. */ revealable:boolean; /** Whether each entry gets a copy-to-clipboard button. */ copyable:boolean; /** Accessible name for the list; falls back to a localized default when unset. An explicitly * empty string renders as an empty label rather than falling back. */ label?:string;private revealed;private announcementSink?;connectedCallback():void;disconnectedCallback():void;private releaseAnnouncementSink;private syncAnnouncementSink;protected willUpdate(changed:PropertyValues):void;private toggleReveal;private copy;private get accessibleLabel();render():TemplateResult;}declare global{interface HTMLElementTagNameMap{'lr-env-list':LyraEnvList;}}