import ReadOnlySubject from '../../../rx/ReadOnlySubject';
import { TrackWriterStatisticsType } from './TrackWriterStatistics';
import { TrackWriterWriteStatus } from './TrackWriterWriteStatus';
export default class TrackWriter {
    private static readonly _ftypByteCode;
    private static readonly _stypByteCode;
    private static readonly _moofByteCode;
    private static readonly _isoBmffMajorBrand;
    private readonly _logger;
    private readonly _mimeType;
    private readonly _sourceBuffer;
    private readonly _bufferedStart;
    private readonly _bufferedEnd;
    private readonly _statistics;
    private readonly _readOnlyBufferedStart;
    private readonly _readOnlyBufferedEnd;
    private readonly _readOnlyStatistics;
    private readonly _segmentsWithWriteStatusPromise;
    private readonly _lowWaterMarkInSeconds;
    private readonly _highWaterMarkInSeconds;
    private _isUpdatingSourceBuffer;
    private _bufferedEndIndex;
    constructor(mimeType: string, sourceBuffer: SourceBuffer);
    get statistics(): ReadOnlySubject<TrackWriterStatisticsType>;
    get bufferedStart(): ReadOnlySubject<number>;
    get bufferedEnd(): ReadOnlySubject<number>;
    write(segment: Uint8Array): Promise<TrackWriterWriteStatus>;
    dispose(): void;
    private writeIsoBmff;
    private isIsoBmffSegment;
    private updateReceivedStatistics;
    private updateWrittenStatistics;
    private appendPendingWritesAndTrimBufferIfAble;
    private updateBufferedTimeRangeValues;
    private appendIsoBmffInitializationSegment;
    private appendIsoBmffMediaSegment;
    private getSourceBufferBufferedStartInSeconds;
    private getSourceBufferBufferedEndInSeconds;
    private trimBuffer;
    private resolveAllPendingWritePromises;
    private cleanUpResource;
    private static isDataAtOffsetTargetByteSequence;
}
