import type { MediaType } from '../../../../core/Constants';
import type { Transient } from '../../../../core/utils/StateUtils';
import type { SegmentParserData } from '../../../../segment-processing/Types';
import type { PesStreamType } from '../Constants';
import type { PayloadParsingStep } from '../payload-parsing/Types';
import type { ChunkCursor } from '../readers/ChunkCursor';
import type { PacketCursor } from '../readers/PacketCursor';
import type { FrameTiming, PatPacket, PesContinuationPacket, PesPacket, PmtPacket, TransportStreamPacket } from '../Types';
export type PacketIdentifier = number;
export type PayloadParsingData<T> = {
    currentSteps: PayloadParsingStep<T>[];
    context: T;
};
export type PacketParserData = {
    patPackets: PatPacket[];
    pmtPacketIds: Set<PacketIdentifier>;
    pmtPackets: PmtPacket[];
    pesPacketIds: Set<PacketIdentifier>;
    pesStreamTypes: Map<PacketIdentifier, PesStreamType>;
    pesPackets: Map<PacketIdentifier, Map<PesStreamType, (PesPacket | PesContinuationPacket)[]>>;
    payloadParserData: Map<PacketIdentifier, Map<PesStreamType, PayloadParsingData<unknown>>>;
    packetCursors: Map<PacketIdentifier, PacketCursor[]>;
    codecMap: Map<PacketIdentifier, string>;
    chunks: Uint8Array[];
    chunkCursor: ChunkCursor;
    parsedPackets: TransportStreamPacket[];
    codecsExtracted: Transient<{
        [key in MediaType]?: string[];
    }>;
    playbackTimeExtracted: Transient<number>;
    durationExtracted: Transient<number>;
    frameTimings: Map<PacketIdentifier, FrameTiming[]>;
    containedMediaTypes: Set<MediaType>;
};
export declare function createPacketParserData(chunks: Uint8Array[], data: SegmentParserData): PacketParserData;
