import { Serializable, type SerializableDump } from '../../Serializable';
export declare const COMMON_HEADER_LENGTH = 4;
/**
 * Extended Report types.
 *
 * @category RTCP Extended Reports
 */
export declare enum ExtendedReportType {
    /**
     * Loss RLE Report.
     */
    LRLE = 1,
    /**
     * Duplicate RLE Report.
     */
    DRLE = 2,
    /**
     * Packet Receipt Times Report.
     */
    PRT = 3,
    /**
     * Receiver Reference Time Report.
     */
    RRT = 4,
    /**
     * DLRR Report.
     */
    DLRR = 5,
    /**
     * Statistics Summary Report.
     */
    SS = 6,
    /**
     * VoIP Metrics Report.
     */
    VM = 7,
    /**
     * ECN Summary Report.
     */
    ECN = 13
}
/**
 * Extended Report dump.
 *
 * @category RTCP Extended Reports
 */
export type ExtendedReportDump = SerializableDump & {
    reportType: ExtendedReportType;
};
/**
 * Get the RTCP packet type.
 *
 * @hidden
 */
export declare function getExtendedReportType(view: DataView): ExtendedReportType;
/**
 * Read the report length value of an Extended Report and compute its size in
 * bytes (including first octet).
 *
 * @hidden
 */
export declare function getExtendedReportLength(view: DataView): number;
/**
 * Writes given length (in bytes) in the report length field of an Extended
 * Report.
 *
 * @hidden
 */
export declare function setExtendedReportLength(view: DataView, byteLength: number): void;
/**
 * Parent class of all {@link XrPacket} Extended Reports.
 *
 * ```text
 *  0                   1                   2                   3
 *  0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
 * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 * |      BT       | type-specific |         block length          |
 * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 * :             type-specific block contents                      :
 * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 * ```
 *
 * @category RTCP Extended Reports
 *
 * @see
 * - [RFC 3611 section 3](https://datatracker.ietf.org/doc/html/rfc3611#section-3)
 */
export declare abstract class ExtendedReport extends Serializable {
    #private;
    protected constructor(reportType: ExtendedReportType, view?: DataView);
    /**
     * Base Extended Report dump.
     *
     * @remarks
     * - Read the info dump type of each Extended Report instead.
     */
    dump(): ExtendedReportDump;
    /**
     * Get the Extended Report type.
     */
    getReportType(): ExtendedReportType;
    protected writeCommonHeader(): void;
    /**
     * Serialize base RTCP packet into a new buffer.
     */
    protected serializeBase(buffer?: ArrayBufferLike, byteOffset?: number): DataView;
    /**
     * Set the Extended Report type.
     *
     * @privateRemarks
     * - This method is not public since users should not manipulate this field
     *   directly.
     */
    private setReportType;
}
//# sourceMappingURL=ExtendedReport.d.ts.map