import { LitElement } from 'lit'; import '../icons/sw-ui-icon.js'; /** * Fluid call layout that adapts to any container shape. * * Uses the container's **aspect ratio** (not just width) to decide whether * the transcript pane sits beside the video (landscape) or below it * (portrait / narrow). The video area is always maximised. * * ``` * Wide (landscape): Narrow (portrait): * ┌────────────────┬─────────┐ ┌─────────────────┐ * │ VIDEO │ TRANSCR │ │ VIDEO │ * │ (maximised) │ (side) │ │ (maximised) │ * ├────────────────┴─────────┤ ├──────────────────┤ * │ CONTROLS │ │ CONTROLS │ * └──────────────────────────┘ ├──────────────────┤ * │ TRANSCRIPT │ * └──────────────────┘ * ``` * * @slot video - main video content * @slot background - element behind the video (e.g. ``) * @slot floating-video - picture-in-picture overlay (absolute, bottom-right) * @slot controls - control bar beneath the video * @slot transcript - transcript panel (side or bottom) * * @prop {boolean} transcript - show / hide the transcript pane * @prop {boolean} loading - show a spinner overlay on the video area * @prop {boolean} shadow - apply a drop shadow to the host * @prop {boolean} fullscreen - (read-only) reflects the current fullscreen state * * @method toggleTranscript() - flip the transcript pane open / closed * @method toggleFullscreen() - enter or exit fullscreen * @method requestFullscreen() - inherited, enters fullscreen * @method exitFullscreen() - static, exits fullscreen * * @cssprop --sw-call-layout-radius [0] - border-radius on external corners * @cssprop --sw-call-layout-shadow - box-shadow when `shadow` is set * @cssprop --sw-call-layout-loading-bg [rgba(0,0,0,0.6)] - loading overlay background * @cssprop --loading-spinner-size [48] - spinner icon size (px, number) * @cssprop --sw-call-layout-transcript-transition [350ms ease-in-out] - open/close transition * @cssprop --sw-call-layout-pip-width [clamp(100px, 20%, 200px)] - PiP container width * @cssprop --sw-call-layout-pip-radius [8px] - PiP border-radius * @cssprop --sw-call-layout-pip-shadow [0 2px 8px rgba(0,0,0,0.5)] - PiP box-shadow * @cssprop --sw-call-layout-pip-bottom [12px] - PiP offset from bottom * @cssprop --sw-call-layout-pip-right [12px] - PiP offset from right */ export declare class SwUiCallLayout extends LitElement { transcript: boolean; loading: boolean; shadow: boolean; private _fullscreen; /** Reflects as an attribute so CSS can target `:host([fullscreen])`. */ get fullscreen(): boolean; toggleTranscript(): void; toggleFullscreen(): void; private _onFullscreenChange; connectedCallback(): void; disconnectedCallback(): void; static styles: import("lit").CSSResult; render(): import("lit-html").TemplateResult<1>; } declare global { interface HTMLElementTagNameMap { 'sw-ui-call-layout': SwUiCallLayout; } } //# sourceMappingURL=sw-ui-call-layout.d.ts.map