import { VGMObject, ChipName, VersionObject, OffsetsObject, SamplesObject, ChipsObject, GD3TagObject, ExtraHeaderObject } from "./vgm_object"; import { VGMDataStream } from "./vgm_command"; export declare class VGM implements VGMObject { private _obj; setVersionCode(code: number): void; get version(): VersionObject; get offsets(): OffsetsObject; set offsets(value: OffsetsObject); get samples(): SamplesObject; set samples(value: SamplesObject); get rate(): number; set rate(value: number); get chips(): ChipsObject; set chips(value: ChipsObject); get loopModifier(): number; set loopModifier(value: number); get loopBase(): number; set loopBase(value: number); get volumeModifier(): number; set volumeModifier(value: number); get data(): ArrayBuffer; /** this directly replace data buffer. To keep consistency, use setDataStream() or setData() instead. */ set data(value: ArrayBuffer); get usedChips(): ChipName[]; get gd3tag(): GD3TagObject | undefined; set gd3tag(value: GD3TagObject | undefined); get extraHeader(): ExtraHeaderObject | undefined; set extraHeader(value: ExtraHeaderObject | undefined); constructor(arg?: VGMObject | null); /** Convert VGM instance to pure [[VGMObject]]. */ toObject(): VGMObject; /** deep clone this instance. */ clone(): VGM; /** * parse VGM binary and return VGM instance. * @param data ArrayBuffer which contains VGM binary. */ static parse(data: ArrayBuffer): VGM; /** * build VGM binary * @param opts.allowInconsistentOffsets Allow inconsistency of offsets (EOF, Data, GD3 and Extra Header Offsets). Set this parameter `true` if all offsets value are set manually. * @param opts.compress `true` to compress the resulting vgm data. * @return an ArrayBuffer which contains vgm data binary. */ build(opts?: { allowInconsistentOffsets?: boolean; compress?: boolean; }): ArrayBuffer; /** * Access VGM data stream as a list of VGM commands. * Note: This method always parses internal VGM data buffer. */ getDataStream(): VGMDataStream; /** * set VGM data by VGMDataStream object */ setDataStream(stream: VGMDataStream): void; /** * set VGM data with ArrayBuffer * @param data ArrayBuffer which contains VGM data stream binary * @param totalSamples Total samples * @param loopSamples Loop samples. 0 if no loop * @param loopByteOffset Loop offset in byte. Relative from top of [data]. */ setData(data: ArrayBuffer, totalSamples: number, loopSamples: number, loopByteOffset: number): void; toJSON(): { data: VGMDataStream; version: VersionObject; offsets: OffsetsObject; samples: SamplesObject; rate: number; chips: ChipsObject; loopModifier: number; loopBase: number; volumeModifier: number; extraHeader?: ExtraHeaderObject | undefined; gd3tag?: GD3TagObject | undefined; }; } /** * convert samples to time, minute-seconds representation. * @param samples number of samples * @param sampleRate base sample rate */ export declare function formatMinSec(samples: number, sampleRate?: number): string;