import { FrameRenderable, FrameState } from "../preview/FrameController.js";
import { EFMedia } from "./EFMedia.js";
import * as lit_html2 from "lit-html";
import * as lit_html_directives_ref_js1 from "lit-html/directives/ref.js";

//#region src/elements/EFAudio.d.ts
declare const EFAudio_base: typeof EFMedia;
declare class EFAudio extends EFAudio_base implements FrameRenderable {
  #private;
  /**
   * EFAudio only requires audio tracks - skip video track validation
   * to avoid unnecessary network requests to transcoding service.
   */
  get requiredTracks(): "audio" | "video" | "both";
  /**
   * Audio volume level (0.0 to 1.0)
   * @domAttribute "volume"
   */
  volume: number;
  audioElementRef: lit_html_directives_ref_js1.Ref<HTMLAudioElement>;
  protected updated(changedProperties: Map<PropertyKey, unknown>): void;
  render(): lit_html2.TemplateResult<1>;
  /**
   * Query readiness state for a given time.
   * @implements FrameRenderable
   */
  getFrameState(_timeMs: number): FrameState;
  /**
   * Async preparation - waits for media engine to load.
   * @implements FrameRenderable
   */
  prepareFrame(_timeMs: number, signal: AbortSignal): Promise<void>;
  /**
   * Synchronous render - audio plays via HTMLAudioElement, no explicit render needed.
   * @implements FrameRenderable
   */
  renderFrame(_timeMs: number): void;
}
declare global {
  interface HTMLElementTagNameMap {
    "ef-audio": EFAudio;
  }
}
//#endregion
export { EFAudio };
//# sourceMappingURL=EFAudio.d.ts.map