import { LitElement } from 'lit'; import type { DropUpItem } from './sw-ui-dropup'; export interface MicToggleDetail { muted: boolean; } export interface CameraToggleDetail { muted: boolean; } export interface SpeakerToggleDetail { muted: boolean; } export interface DeviceChangeDetail { kind: 'mic' | 'camera' | 'speaker'; deviceId: string; label: string; } export interface FullscreenToggleDetail { fullscreen: boolean; } export interface ScreenShareToggleDetail { active: boolean; } export interface HandRaiseToggleDetail { raised: boolean; } export interface SettingsChangeDetail { settingId: string; } export interface SwUiControlBarEventMap { 'sw-mic-toggle': CustomEvent; 'sw-camera-toggle': CustomEvent; 'sw-speaker-toggle': CustomEvent; 'sw-device-change': CustomEvent; 'sw-fullscreen-toggle': CustomEvent; 'sw-screen-share-toggle': CustomEvent; 'sw-hand-raise-toggle': CustomEvent; 'sw-transcript-toggle': CustomEvent; 'sw-settings-change': CustomEvent; 'sw-call-hangup': CustomEvent; } /** * Call controls bar. * * Buttons rendered (left to right): mic, camera, speaker, screen share, * hand raise, transcript, fullscreen, hang-up. Optional buttons are hidden * when their `show*` property is false. * * @fires sw-mic-toggle - Mic toggled. Detail: `{ muted: boolean }`. * @fires sw-camera-toggle - Camera toggled. Detail: `{ muted: boolean }`. * @fires sw-speaker-toggle - Speaker toggled. Detail: `{ muted: boolean }`. * @fires sw-device-change - Device picked from a chevron menu. Detail: `{ kind, deviceId, label }`. * @fires sw-fullscreen-toggle - Fullscreen toggled. Detail: `{ fullscreen: boolean }`. * @fires sw-screen-share-toggle - Screen share toggled. Detail: `{ active: boolean }`. * @fires sw-hand-raise-toggle - Hand raise toggled. Detail: `{ raised: boolean }`. * @fires sw-transcript-toggle - Transcript button clicked. No detail. * @fires sw-settings-change - Settings menu item picked. Detail: `{ settingId: string }`. * @fires sw-call-hangup - Hang-up button clicked. No detail. * * @cssprop --sw-control-bar-bg [transparent] - bar background * @cssprop --sw-control-bar-padding [8px 16px] - bar padding * @cssprop --sw-control-bar-gap [8px] - gap between buttons * @cssprop --sw-control-bar-radius [0] - bar border-radius * * @cssprop --sw-split-button-size [44px] - button width & height * @cssprop --sw-split-button-bg [rgba(255,255,255,0.12)] - button background * @cssprop --sw-split-button-bg-hover [rgba(255,255,255,0.22)] - button hover bg * @cssprop --sw-split-button-color [#fff] - icon colour * @cssprop --sw-split-button-radius [9999px] - button border-radius * * @cssprop --sw-control-bar-hangup-bg - hang-up background (falls back to --interactive-button-destructive-bg) * @cssprop --sw-control-bar-hangup-bg-hover - hang-up hover bg (falls back to --interactive-button-destructive-hover) * @cssprop --sw-control-bar-hangup-color - hang-up icon colour (defaults to #fff) * * The active-toggle variant uses --interactive-button-primary-{bg,hover,text} from the design tokens. */ export declare class SwUiControlBar extends LitElement { static styles: import("lit").CSSResult; micMuted: boolean; cameraMuted: boolean; speakerMuted: boolean; fullscreen: boolean; screenSharing: boolean; handRaised: boolean; transcriptActive: boolean; showScreenShare: boolean; showHandRaise: boolean; showTranscript: boolean; showSettings: boolean; showFullscreen: boolean; micDevices: DropUpItem[]; cameraDevices: DropUpItem[]; speakerDevices: DropUpItem[]; settingsItems: DropUpItem[]; private _dispatch; private _onMicToggle; private _onCameraToggle; private _onSpeakerToggle; private _onDeviceSelect; private _onFullscreenToggle; private _onScreenShareToggle; private _onHandRaiseToggle; private _onTranscriptToggle; private _onSettingsSelect; private _onHangUp; private _overflowItems; private _onOverflowSelect; render(): import("lit-html").TemplateResult<1>; } declare global { interface HTMLElementTagNameMap { 'sw-ui-control-bar': SwUiControlBar; } } //# sourceMappingURL=sw-ui-control-bar.d.ts.map