UNPKG

taglib-wasm

Version:

TagLib for TypeScript platforms: Deno, Node.js, Bun, Electron, browsers, and Cloudflare Workers

106 lines 4.02 kB
/** * @fileoverview WebAssembly module interface types for Emscripten */ export interface EmscriptenModule { HEAP8: Int8Array; HEAP16: Int16Array; HEAP32: Int32Array; HEAPU8: Uint8Array; HEAPU16: Uint16Array; HEAPU32: Uint32Array; HEAPF32: Float32Array; HEAPF64: Float64Array; _malloc(size: number): number; _free(ptr: number): void; allocate?(data: number[] | Uint8Array, allocator: number): number; ALLOC_NORMAL?: number; ccall?(ident: string, returnType: string, argTypes: string[], args: any[]): any; cwrap?(ident: string, returnType: string, argTypes: string[]): (...args: any[]) => any; FS?: any; then?(callback: (module: EmscriptenModule) => void): void; onRuntimeInitialized?: () => void; } export interface FileHandle { loadFromBuffer(data: Uint8Array): boolean; isValid(): boolean; save(): boolean; getFormat(): string; getProperties(): any; setProperties(props: any): void; getProperty(key: string): string; setProperty(key: string, value: string): void; isMP4(): boolean; getMP4Item(key: string): string; setMP4Item(key: string, value: string): void; removeMP4Item(key: string): void; getTag(): TagWrapper; getAudioProperties(): AudioPropertiesWrapper; getBuffer(): Uint8Array; getPictures(): any[]; setPictures(pictures: any[]): void; addPicture(picture: any): void; removePictures(): void; destroy(): void; } export interface TagWrapper { title(): string; artist(): string; album(): string; comment(): string; genre(): string; year(): number; track(): number; setTitle(value: string): void; setArtist(value: string): void; setAlbum(value: string): void; setComment(value: string): void; setGenre(value: string): void; setYear(value: number): void; setTrack(value: number): void; } export interface AudioPropertiesWrapper { lengthInSeconds(): number; lengthInMilliseconds(): number; bitrate(): number; sampleRate(): number; channels(): number; bitsPerSample(): number; codec(): string; isLossless(): boolean; } export interface TagLibModule extends Omit<EmscriptenModule, "then"> { FileHandle: new () => FileHandle; TagWrapper: new () => TagWrapper; AudioPropertiesWrapper: new () => AudioPropertiesWrapper; createFileHandle(): FileHandle; _taglib_file_new_from_buffer?(ptr: number, size: number): number; _taglib_file_delete?(fileId: number): void; _taglib_file_is_valid?(fileId: number): number; _taglib_file_format?(fileId: number): number; _taglib_file_tag?(fileId: number): number; _taglib_file_audioproperties?(fileId: number): number; _taglib_file_save?(fileId: number): number; _taglib_tag_title?(tagPtr: number): number; _taglib_tag_artist?(tagPtr: number): number; _taglib_tag_album?(tagPtr: number): number; _taglib_tag_comment?(tagPtr: number): number; _taglib_tag_genre?(tagPtr: number): number; _taglib_tag_year?(tagPtr: number): number; _taglib_tag_track?(tagPtr: number): number; _taglib_tag_set_title?(tagPtr: number, titlePtr: number): void; _taglib_tag_set_artist?(tagPtr: number, artistPtr: number): void; _taglib_tag_set_album?(tagPtr: number, albumPtr: number): void; _taglib_tag_set_comment?(tagPtr: number, commentPtr: number): void; _taglib_tag_set_genre?(tagPtr: number, genrePtr: number): void; _taglib_tag_set_year?(tagPtr: number, year: number): void; _taglib_tag_set_track?(tagPtr: number, track: number): void; _taglib_audioproperties_length?(propsPtr: number): number; _taglib_audioproperties_bitrate?(propsPtr: number): number; _taglib_audioproperties_samplerate?(propsPtr: number): number; _taglib_audioproperties_channels?(propsPtr: number): number; } export interface WasmModule extends EmscriptenModule { FileHandle?: new () => FileHandle; createFileHandle?(): FileHandle; } //# sourceMappingURL=wasm.d.ts.map