import { Sdp } from '../../../utils/protocols/sdp';
import { Box, Container } from './isom';
interface MoofMetadata {
    trackId: number;
    timestamp: number;
    byteLength: number;
}
interface TrackData {
    lastTimestamp: number;
    baseMediaDecodeTime: number;
    defaultFrameDuration: number;
    clockrate: number;
    bitrate: number;
    framerate: number;
    cumulativeByteLength: number;
    cumulativeDuration: number;
    cumulativeFrames: number;
}
/**
 * Create boxes for a stream initiated by an sdp object
 *
 * @class BoxBuilder
 */
export declare class BoxBuilder {
    trackIdMap: {
        [key: number]: number;
    };
    sequenceNumber: number;
    ntpPresentationTime: number;
    trackData: TrackData[];
    videoTrackId?: number;
    constructor();
    trak(settings: any): Container;
    /**
     * Creates a Moov box from the provided options.
     * @method moov
     * @param  sdp - The session description protocol
     * @param  date - The creation/modification time of the movie
     * @return Moov object
     */
    moov(sdp: Sdp, date: any): Container;
    /**
     * Boxes that carry actual elementary stream fragment metadata + data.
     */
    /**
     * Creates a moof box from the provided fragment metadata.
     * @method moof
     * @param  metadata - Track ID, timestamp, bytelength
     * @return moof Container
     */
    moof(metadata: MoofMetadata): Container;
    /**
     * Creates an mdat box containing the elementary stream data.
     * @param  data - Elementary stream data
     * @return mdat Box
     */
    mdat(data: Buffer): Box;
    setPresentationTime(trackId: number, ntpTimestamp?: number): void;
}
export {};
