/**
 * VideoView utilities for the Excalibur application.
 *
 * @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.
 * @internal
 */
export function createVideoView(properties: VideoViewProperties): InternalVideoView;

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

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