import { RtpPacket } from '../media/rtp.js'; import { type SrtpKeyingMaterial } from '../types.js'; export declare class SrtpContext { private sessionKey; private sessionSalt; private authKey; private roc; private lastSeq; private initialized; private highestIndex; private replayMask; private authTagLen; private readonly ivBuffer; private readonly ssrcBuffer; private readonly indexBuffer; private readonly rocBuffer; constructor(keying: SrtpKeyingMaterial, authTagLen?: number); setAuthKeying(keying: SrtpKeyingMaterial): void; protect(packet: RtpPacket): Uint8Array; unprotect(data: Uint8Array): RtpPacket; private updateRoc; private estimateRoc; private isReplayed; private advanceReplay; private packetIndex; private generateIv; private computeAuthTag; } export declare class SrtpSession { private static readonly MAX_RECV_CONTEXTS; private readonly sendKey; private readonly recvKey; private readonly sendAuthLen?; private readonly recvAuthLen?; private readonly sendContexts; private readonly recvContexts; private sendAuthKeying; constructor(sendKey: SrtpKeyingMaterial, recvKey: SrtpKeyingMaterial, sendAuthLen?: number, recvAuthLen?: number); protect(packet: RtpPacket): Uint8Array; unprotect(data: Uint8Array): RtpPacket; setSendAuthKeying(keying: SrtpKeyingMaterial): void; } export declare class SrtcpContext { private readonly cipherKey; private readonly authKey; private readonly salt; private readonly authTagLen; private index; constructor(keying: SrtpKeyingMaterial, authTagLen?: number); protect(rtcp: Uint8Array, senderSsrc: number): Uint8Array; } export declare class SrtpError extends Error { type: 'packet_too_short' | 'auth_failed' | 'replay' | 'encryption' | 'decryption'; constructor(type: SrtpError['type'], message: string); }