/*
 * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
 */

import { videoGetTimeline } from "../funcs/videoGetTimeline.js";
import { videoStartUniversalTranscode } from "../funcs/videoStartUniversalTranscode.js";
import { ClientSDK, RequestOptions } from "../lib/sdks.js";
import * as operations from "./models/operations/index.js";
import { unwrapAsync } from "./types/fp.js";

export class Video extends ClientSDK {
  /**
   * Get the timeline for a media item
   *
   * @remarks
   * Get the timeline for a media item
   */
  async getTimeline(
    request: operations.GetTimelineRequest,
    options?: RequestOptions,
  ): Promise<operations.GetTimelineResponse> {
    return unwrapAsync(videoGetTimeline(
      this,
      request,
      options,
    ));
  }

  /**
   * Start Universal Transcode
   *
   * @remarks
   * Begin a Universal Transcode Session
   */
  async startUniversalTranscode(
    request: operations.StartUniversalTranscodeRequest,
    options?: RequestOptions,
  ): Promise<operations.StartUniversalTranscodeResponse> {
    return unwrapAsync(videoStartUniversalTranscode(
      this,
      request,
      options,
    ));
  }
}
