/**
 * Sesame Binary Protocol - TypeScript Implementation
 *
 * This module provides TypeScript implementation of the Sesame binary protocol
 * for serializing and deserializing multimedia data packets.
 */
export declare const PROTOCOL_MAGIC = 1297302867;
export declare const PROTOCOL_VERSION = 1;
export declare const HEADER_DATA_SIZE = 32;
export declare const HEADER_CODEC_DATA_SIZE = 24;
export declare const HEADER_METADATA_SIZE = 64;
export declare const FLAG_HAS_CODEC_DATA: number;
export declare const FLAG_HAS_METADATA: number;
export declare const FLAG_IS_KEYFRAME: number;
export declare enum PacketType {
    VIDEO_FRAME = 1,
    AUDIO_FRAME = 2,
    RPC = 3,
    MUXED_DATA = 4,
    DECODER_DATA = 5
}
export declare enum CodecType {
    VIDEO_VP8 = 1,
    VIDEO_VP9 = 2,
    VIDEO_AVC = 3,
    VIDEO_HEVC = 4,
    VIDEO_AV1 = 5,
    AUDIO_OPUS = 64,
    AUDIO_AAC = 65,
    AUDIO_PCM = 66
}
export interface HeaderData {
    magic: number;
    flags: number;
    pts: bigint;
    id: bigint;
    version: number;
    header_size: number;
    type: PacketType;
    reserved: number;
}
export interface HeaderCodecData {
    sample_rate: number;
    timebase_num: number;
    timebase_den: number;
    codec_profile: number;
    codec_level: number;
    width: number;
    height: number;
    codec_type: CodecType;
    channels: number;
    bit_depth: number;
    reserved: number;
}
export interface HeaderMetadata {
    metadata: string;
}
export interface ParsedData {
    valid: boolean;
    header: HeaderData | null;
    metadata: HeaderMetadata | null;
    codec_data: HeaderCodecData | null;
    payload: Uint8Array | null;
    payload_size: number;
}
/**
 * Main binary protocol class with static methods for serialization/deserialization
 */
export declare class SesameBinaryProtocol {
    /**
     * Initialize a header data structure with proper defaults
     */
    static initHeader(type: PacketType, flags: number, pts: bigint, id: bigint): HeaderData;
    /**
     * Calculate the total header size based on flags
     */
    static calculateHeaderSize(flags: number): number;
    /**
     * Validate a header structure
     */
    static validateHeader(header: HeaderData, totalSize: number): boolean;
    /**
     * Serialize data into a Uint8Array buffer
     */
    static serialize(header: HeaderData, metadata?: HeaderMetadata | null, codecData?: HeaderCodecData | null, payload?: Uint8Array | null): Uint8Array | null;
    /**
     * Parse incoming binary data
     */
    static parseData(data: Uint8Array): ParsedData;
    /**
     * Helper: Convert string to fixed-size byte array (null-terminated)
     */
    private static stringToFixedBytes;
    /**
     * Helper: Convert fixed-size byte array to string (null-terminated)
     */
    private static fixedBytesToString;
}
//# sourceMappingURL=sesame-binary-protocol.d.ts.map