/**
 * VideoView utilities for the Excalibur application.
 *
 * @experimental
 * @internal
 */
import type VideoLayer from "../../layers/VideoLayer.js";
import type VideoView from "../../views/VideoView.js";

/**
 * Creates a new VideoView instance.
 *
 * @param properties - The properties for the VideoView constructor.
 * @returns A new VideoView instance.
 * @experimental
 * @internal
 */
export function createVideoView(properties: VideoViewProperties): InternalVideoView;

/**
 * VideoViewParams
 *
 * @experimental
 * @internal
 */
export interface VideoViewProperties {
  /**
   * The `id` or node representing the DOM element containing the view.
   *
   * @experimental
   */
  container?: HTMLDivElement | null;
  /**
   * The VideoLayer.
   *
   * @experimental
   */
  layer?: VideoLayer | null;
}

/**
 * VideoView
 *
 * @experimental
 * @internal
 */
export interface InternalVideoView extends VideoView {
  /**
   * Determines if the operational data overlay is visible
   *
   * @experimental
   */
  operationalDataVisible: boolean;
}