import type { ClonableMixin } from "../../core/Clonable.js";
import type { JSONSupport } from "../../core/JSONSupport.js";

export interface VideoTimeExtentProperties extends Partial<Pick<VideoTimeExtent, "duration" | "timezone">> {
  /** The end time of the video as a Date. */
  end?: (Date | number | string) | null;
  /** The start time of the video as a Date. */
  start?: (Date | number | string) | null;
}

/**
 * The VideoTimeExtent class is used to represent the temporal extent of a video.
 * The class contains the start time, end time, duration, and timezone of the video.
 *
 * @since 4.30
 * @see [VideoLayer.videoTimeExtent](https://developers.arcgis.com/javascript/latest/references/core/layers/VideoLayer/#videoTimeExtent)
 */
export default class VideoTimeExtent extends VideoTimeExtentSuperclass {
  constructor(properties?: VideoTimeExtentProperties);
  /** The duration of the video in seconds. */
  accessor duration: number | null | undefined;
  /** The end time of the video as a Date. */
  get end(): Date | null | undefined;
  set end(value: (Date | number | string) | null | undefined);
  /** The start time of the video as a Date. */
  get start(): Date | null | undefined;
  set start(value: (Date | number | string) | null | undefined);
  /**
   * The timezone of the video.
   *
   * @default "UTC"
   */
  accessor timezone: string;
}
declare const VideoTimeExtentSuperclass: typeof JSONSupport & typeof ClonableMixin