import "../../transcoding/types/index.js";
import "@editframe/assets";

//#region src/elements/EFMedia/SegmentIndex.d.ts
type TrackRole = "video" | "audio" | "scrub";
interface TrackRef {
  readonly role: TrackRole;
  readonly id: string | number;
  readonly src: string;
  readonly segmentDurationMs?: number;
  readonly segmentDurationsMs?: number[];
  readonly startTimeOffsetMs?: number;
}
interface TrackSet {
  video?: TrackRef;
  audio?: TrackRef;
  scrub?: TrackRef;
}
interface SegmentTimeRange {
  segmentId: number;
  startMs: number;
  endMs: number;
}
interface SegmentIndex {
  readonly durationMs: number;
  readonly tracks: TrackSet;
  segmentAt(timeMs: number, track: TrackRef): number | undefined;
  segmentsInRange(fromMs: number, toMs: number, track: TrackRef): SegmentTimeRange[];
}
//#endregion
export { SegmentIndex, SegmentTimeRange, TrackRef, TrackRole, TrackSet };
//# sourceMappingURL=SegmentIndex.d.ts.map