/*! * Copyright (c) 2026-present, Vanilagy and contributors * * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ import { TrackType } from './output.js'; import { MediaCodec } from './codec.js'; import { DurationMetadataRequestOptions } from './demuxer.js'; import { Input } from './input.js'; import { InputTrackBacking } from './input-track.js'; export type SegmentedInputMetadata = { name: string | null; bitrate: number | null; averageBitrate: number | null; codecs: MediaCodec[]; codecStrings: string[]; resolution: { width: number; height: number; } | null; frameRate: number | null; isKeyFrameOnly: boolean; }; export type AssociatedGroup = { id: string; type: 'video' | 'audio' | 'subtitles' | 'closed-captions'; }; export type Segment = { timestamp: number; duration: number; relativeToUnixEpoch: boolean; firstSegment: Segment | null; }; export type SegmentRetrievalOptions = { skipLiveWait?: boolean; }; export type SegmentedInputTrackDeclaration = { id: number; type: TrackType; }; export declare abstract class SegmentedInput { input: Input; path: string; trackDeclarations: SegmentedInputTrackDeclaration[] | null; nextInputCacheAge: number; inputCache: { segment: Segment; input: Input; age: number; }[]; trackBackingsPromise: Promise | null; firstSegment: Segment | null; firstSegmentFirstTimestamps: WeakMap; firstTimestampCache: WeakMap, number>; constructor(input: Input, path: string, trackDeclarations: SegmentedInputTrackDeclaration[] | null); abstract getFirstSegment(options: SegmentRetrievalOptions): Promise; abstract getSegmentAt(timestamp: number, options: SegmentRetrievalOptions): Promise; abstract getNextSegment(segment: Segment, options: SegmentRetrievalOptions): Promise; abstract getPreviousSegment(segment: Segment, options: SegmentRetrievalOptions): Promise; abstract getInputForSegment(segment: Segment): Input; abstract getLiveRefreshInterval(): Promise; getDurationFromMetadata(options: DurationMetadataRequestOptions): Promise; getTrackBackings(): Promise; getFirstTimestampForInput(input: Input): Promise; getMediaOffset(segment: Segment, input: Input): Promise; dispose(): void; } //# sourceMappingURL=segmented-input.d.ts.map