/** * SwParticipants Component * * Renders member overlays based on layoutLayers. * Excludes self member and provides slot for child component. * * Input precedence (most specific wins): `.call` > context. * * @example * ```html * * * ``` * * @slot - Default slot for overlay content. * @slot controls-{memberId} - Per-participant menu content (e.g. `sw-participant-controls`). * * @fires sw-participant-mute-audio - User muted/unmuted a participant's audio. Detail: `{ participant, memberId }`. * @fires sw-participant-mute-video - User muted/unmuted a participant's video. Detail: `{ participant, memberId }`. * @fires sw-participant-remove - User removed a participant. Detail: `{ participant, memberId }`. */ import { LitElement } from 'lit'; import type { Call } from '../types/index.js'; export declare class SwParticipants extends LitElement { static styles: import("lit").CSSResult[]; private _callState?; /** Explicit Call — when set, subscribes directly and bypasses context. */ call?: Call; private _directLayoutLayers; private _directParticipants; private _directSelf; private _directSubscriptions; private _openMenuId; private _handleOutsideClick; private _handleEscape; connectedCallback(): void; disconnectedCallback(): void; protected updated(changed: Map): void; private _teardownDirect; private _toggleMenu; private _getParticipant; private _handleMuteAudio; private _handleMuteVideo; private _handleRemove; private _renderMenuIcon; private _renderMenuDropdown; private _renderOverlay; render(): import("lit-html").TemplateResult<1>; } declare global { interface HTMLElementTagNameMap { 'sw-participants': SwParticipants; } } //# sourceMappingURL=sw-participants.d.ts.map