declare module 'osc-min' { export enum OSCType { String = 'string', Float = 'float', Integer = 'integer', Blob = 'blob', True = 'true', False = 'false', Null = 'null', Bang = 'bang', Timetag = 'timetag', Array = 'array', } export type OSCTimeTag = [number, number]; export type OutgoingOSCArgsTypes = (OSCArgument | Buffer | boolean | string | number)[]; export interface OSCMessage { oscType?: 'message'; address: string; args: OSCArgument[]; } export interface OutgoingOSCMessage extends OSCMessage { args: OutgoingOSCArgsTypes; } export interface OSCBundle { oscType: 'bundle'; timetag: null | number | Date | OSCTimeTag; elements: (OSCMessage | OSCBundle)[]; } export type OSCArgumentType = T extends OSCType.String ? string : T extends OSCType.Float | OSCType.Integer | OSCType.Timetag ? number : T extends OSCType.True ? true : T extends OSCType.False ? false : T extends OSCType.Blob ? Buffer : T extends OSCType.Array ? OSCArgument[] : null; export interface OSCArgument { type: T; value: OSCArgumentType; } type OSCPacket = OSCMessage | OSCBundle; export function fromBuffer(buffer: Buffer, strict?: boolean): OSCPacket; export function toBuffer(object: OutgoingOSCMessage, strict?: boolean): Buffer; export function toBuffer(address: string, args: OSCArgument[], strict?: boolean): Buffer; export function applyMessageTransform(msg: Buffer, transform: (message: OSCMessage) => OSCMessage); export function applyAddressTransform(msg: Buffer, transform: (address: string) => string); export function timetagToDate(ntpTimeTag: OSCTimeTag): Date; export function dateToTimetag(date: Date): OSCTimeTag; export function timetagToTimestamp(timeTag: OSCTimeTag): number; export function timestampToTimetag(timestamp: number); OSCTimeTag; }