import { type Throws } from '@livekit/throws-transformer/throws'; import { DataTrackDeserializeError, DataTrackDeserializeErrorReason } from './errors'; import Serializable from './serializable'; export declare enum DataTrackExtensionTag { UserTimestamp = 2, E2ee = 1 } declare abstract class DataTrackExtension extends Serializable { static tag: DataTrackExtensionTag; static lengthBytes: number; } export declare class DataTrackUserTimestampExtension extends DataTrackExtension { static tag: DataTrackExtensionTag; static lengthBytes: number; timestamp: bigint; constructor(timestamp: bigint); toBinaryLengthBytes(): number; toBinaryInto(dataView: DataView): Throws; toJSON(): { tag: number; lengthBytes: number; timestamp: bigint; }; } export declare class DataTrackE2eeExtension extends DataTrackExtension { static tag: DataTrackExtensionTag; static lengthBytes: number; keyIndex: number; iv: Uint8Array; constructor(keyIndex: number, iv: Uint8Array); toBinaryLengthBytes(): number; toBinaryInto(dataView: DataView): Throws; toJSON(): { tag: number; lengthBytes: number; keyIndex: number; iv: Uint8Array; }; } export declare class DataTrackExtensions extends Serializable { userTimestamp?: DataTrackUserTimestampExtension; e2ee?: DataTrackE2eeExtension; constructor(opts?: { userTimestamp?: DataTrackUserTimestampExtension; e2ee?: DataTrackE2eeExtension; }); toBinaryLengthBytes(): number; toBinaryInto(dataView: DataView): Throws; static fromBinary(input: Input): Throws<[ extensions: DataTrackExtensions, byteLength: number ], DataTrackDeserializeError>; toJSON(): { userTimestamp: { tag: number; lengthBytes: number; timestamp: bigint; } | null; e2ee: { tag: number; lengthBytes: number; keyIndex: number; iv: Uint8Array; } | null; }; } export {}; //# sourceMappingURL=extensions.d.ts.map