import { Buffer } from 'buffer';
import { ESubProtocol } from './ESubProtocol.js';
import { IVBANHeaderCommon } from './IVBANHeaderCommon.js';
import { IVBANHeader } from './IVBANHeader.js';
export declare class VBANPacket {
    /**
     * the subProtocol of this packet
     * {@link ESubProtocol}
     */
    subProtocol: ESubProtocol;
    /**
     * the name of the current stream .
     * Voicemeeter rely on it to allow a packet or not
     */
    streamName: string;
    /**
     * Sample Rate for this stream
     */
    sr: number;
    /**
     * frameCounter allow checking if you receive frame in order, and without losing them
     */
    frameCounter: number;
    static readonly frameCounters: Map<string, number>;
    /**
     * Extract headers and data from UDPPacket, each Packet will continue the process
     */
    static prepareFromUDPPacket(headersBuffer: Buffer, checkSR?: boolean): IVBANHeaderCommon;
    /**
     * common constructor
     */
    constructor(headers: IVBANHeader);
    /**
     * Convert a VBANPacket to a UDP packet
     */
    protected static convertToUDPPacket(headers: Omit<IVBANHeaderCommon, 'srIndex'>, data: Buffer, sampleRate?: number): Buffer;
    /**
     * EXPERIMENTAL - DO NOT USE
     *
     * @experimental
     */
    static checkFrameCounter(headers: VBANPacket): void;
}
