import { TrackFragmentIndex } from '../../../../assets/src/index.ts';
import { AudioRendition, InitSegmentPaths, MediaEngine, SegmentTimeRange } from '../../transcoding/types';
import { UrlGenerator } from '../../transcoding/utils/UrlGenerator';
import { EFMedia } from '../EFMedia';
import { BaseMediaEngine } from './BaseMediaEngine';
import { MediaRendition } from './shared/MediaTaskUtils';
export declare class AssetMediaEngine extends BaseMediaEngine implements MediaEngine {
    src: string;
    protected data: Record<number, TrackFragmentIndex>;
    durationMs: number;
    constructor(host: EFMedia, src: string);
    static fetch(host: EFMedia, urlGenerator: UrlGenerator, src: string): Promise<AssetMediaEngine>;
    get audioTrackIndex(): import('../../../../assets/src/index.ts').AudioTrackFragmentIndex | undefined;
    get videoTrackIndex(): import('../../../../assets/src/index.ts').VideoTrackFragmentIndex | undefined;
    get videoRendition(): {
        trackId: number | undefined;
        src: string;
        startTimeOffsetMs: number | undefined;
    };
    get audioRendition(): {
        trackId: number | undefined;
        src: string;
    };
    get initSegmentPaths(): InitSegmentPaths;
    get templates(): {
        initSegment: string;
        mediaSegment: string;
    };
    buildInitSegmentUrl(trackId: number): string;
    buildMediaSegmentUrl(trackId: number, segmentId: number): string;
    fetchInitSegment(rendition: {
        trackId: number | undefined;
        src: string;
    }, signal: AbortSignal): Promise<ArrayBuffer>;
    fetchMediaSegment(segmentId: number, rendition: {
        trackId: number | undefined;
        src: string;
    }, signal?: AbortSignal): Promise<ArrayBuffer>;
    /**
     * Calculate audio segments for variable-duration segments using track fragment index
     */
    calculateAudioSegmentRange(fromMs: number, toMs: number, rendition: AudioRendition, _durationMs: number): SegmentTimeRange[];
    computeSegmentId(seekTimeMs: number, rendition: MediaRendition): number;
}
