/// declare enum PacketTypes { UNKNOWN = 0, AUDIO = 1, IMAGE = 2 } declare enum ImagePacketTypes { FULL_SIZE = 1, THUMBNAIL = 2 } interface PacketBase { type: PacketTypes; data: Buffer; } interface PacketAudio extends PacketBase { type: PacketTypes.AUDIO; streamId: number; packetId: number; } interface PacketImage extends PacketBase { type: PacketTypes.IMAGE; packetType: ImagePacketTypes; imageId: number; } interface PacketUnknown extends PacketBase { type: PacketTypes.UNKNOWN; } declare type Packet = PacketAudio | PacketImage | PacketUnknown; declare function isPacketAudio(arg: Packet): arg is PacketAudio; declare function isPacketImage(arg: Packet): arg is PacketImage; export { Packet, isPacketAudio, isPacketImage, PacketTypes, PacketAudio, ImagePacketTypes };