
export type VideoState = "can-play" | "not-ready" | "paused" | "playing" | "ready" | "waiting" | "data-loaded";

export type SensorOrientationSource = "platformHeading" | "cameraAzimuth";

/** The **SensorSymbolOrientation** type defines the orientation source and symbol offset for the sensor symbol. */
export interface SensorOrientationInfo {
  /** The orientation source for the sensor symbol. Possible values are "platformHeading" and "cameraAzimuth". */
  source: SensorOrientationSource;
  /** The offset angle in degrees to apply to the sensor symbol. */
  symbolOffset: number;
}

/** The **VideoMetadataEntry** is an object that represents a metadata entry for the video layer. */
export interface VideoMetadataEntry {
  /** The name of the metadata entry. */
  name: string;
  /** The tag id of the metadata entry. */
  tagId: number;
  /** The value of the metadata entry. */
  value: any;
}

/**
 * The **LivestreamStatus** is an object that represents the livestream status of a video layer.
 *
 * @since 4.34
 */
export interface LivestreamStatus {
  /** Indicates if the video layer is at the live edge. */
  atLiveEdge?: boolean | null;
  /** Indicates if the video layer is behind the live edge. */
  behindLiveEdge?: boolean | null;
  /** The current time of the livestream in seconds. */
  liveCurrentTime?: number | null;
  /** The live window of the livestream in seconds. */
  liveWindow?: number | null;
  /** The time in seconds that the video layer is past the seek end. */
  pastSeekEnd?: number | null;
  /** The end time of the seekable range in seconds. */
  seekableEnd?: number | null;
  /** The start time of the seekable range in seconds. */
  seekableStart?: number | null;
}