import { TemplateResult as TemplateResult$1 } from "../node_modules/lit-html/development/lit-html.js"; import { FrameRenderable, FrameState } from "../preview/FrameController.js"; import { EFSourceMixinInterface } from "./EFSourceMixin.js"; import { TemporalMixinInterface } from "./EFTemporal.js"; import { FetchMixinInterface } from "./FetchMixin.js"; import { AsyncValue } from "./EFMedia.js"; import { EFAudio } from "./EFAudio.js"; import { EFVideo } from "./EFVideo.js"; import * as _$lit from "lit"; import { LitElement, PropertyValueMap, PropertyValues } from "lit"; //#region src/elements/EFCaptions.d.ts interface WordSegment { text: string; start: number; end: number; } interface Segment { start: number; end: number; text: string; } interface Caption { segments: Segment[]; word_segments: WordSegment[]; } declare const EFCaptionsActiveWord_base: (new (...args: any[]) => TemporalMixinInterface) & typeof LitElement; /** * Caption active word element - displays the currently spoken word. * Uses light DOM so textContent set by the parent is rendered directly. * * Extends EFTemporal so that CSS animations declared on this element are * coordinated with composition time by `updateAnimations`. The parent * `EFCaptions` updates this element's `offset` and `duration` attributes * each time the active word changes, giving each word its own time window. * Without EFTemporal, CSS animations would run once on mount (during * word 1) and never replay for words 2+. */ declare class EFCaptionsActiveWord extends EFCaptionsActiveWord_base { #private; createRenderRoot(): this; set wordText(text: string); get wordText(): string; set wordIndex(index: number); get wordIndex(): number; update(changedProperties: PropertyValues): void; } declare const EFCaptionsSegment_base: (new (...args: any[]) => TemporalMixinInterface) & typeof LitElement; /** * Caption segment element - displays a full caption segment. * Uses light DOM so textContent set by the parent is rendered directly. * * Extends EFTemporal so that CSS animations on this element are coordinated * with composition time by `updateAnimations`. The parent `EFCaptions` * updates this element's `offset` and `duration` attributes each time the * active segment changes, giving each segment its own time window. */ declare class EFCaptionsSegment extends EFCaptionsSegment_base { #private; createRenderRoot(): this; set segmentText(text: string); get segmentText(): string; update(changedProperties: PropertyValues): void; } /** * Caption before-active-word element - displays words before the current word. * Uses light DOM so textContent set by the parent is rendered directly. */ declare class EFCaptionsBeforeActiveWord extends EFCaptionsSegment {} /** * Caption after-active-word element - displays words after the current word. * Uses light DOM for simplicity - parent sets textContent directly. */ declare class EFCaptionsAfterActiveWord extends EFCaptionsSegment {} declare const EFCaptions_base: (new (...args: any[]) => EFSourceMixinInterface) & (new (...args: any[]) => TemporalMixinInterface) & (new (...args: any[]) => FetchMixinInterface) & typeof LitElement; declare class EFCaptions extends EFCaptions_base implements FrameRenderable { #private; static styles: _$lit.CSSResult[]; targetSelector: string; set target(value: string); wordStyle: string; /** * URL or path to a JSON file containing custom captions data. * The JSON should conform to the Caption interface with 'segments' and 'word_segments' arrays. */ captionsSrc: string; /** * Direct captions data object. Takes priority over captions-src and captions-script. * Should conform to the Caption interface with 'segments' and 'word_segments' arrays. */ captionsData: Caption | null; /** * ID of a