/** @packageDocumentation Audio properties implementation for the DSF (DSD Stream File) format. */ import { AudioProperties } from "../audioProperties.js"; import { ByteVector } from "../byteVector.js"; import type { ReadStyle } from "../toolkit/types.js"; /** * Audio properties for DSD Stream File (DSF) format. * * Constructed from the 36-byte payload of the "fmt " chunk (after chunk * header). The data layout is all little-endian: * formatVersion (4) + formatID (4) + channelType (4) + channels (4) + * sampleRate (4) + bitsPerSample (4) + sampleCount (8) + * blockSizePerChannel (4) */ export declare class DsfProperties extends AudioProperties { /** Format version from the "fmt " chunk (must be 1). */ private _formatVersion; /** Format ID: 0 = DSD uncompressed. */ private _formatID; /** Channel type identifier (e.g. 2 = stereo). */ private _channelType; /** Number of audio channels. */ private _channels; /** Sample rate in Hz (e.g. 2822400 for DSD64). */ private _sampleRate; /** Number of bits per sample (typically 1 for DSD). */ private _bitsPerSample; /** Total number of sample frames across all channels. */ private _sampleCount; /** Block size per channel in bytes. */ private _blockSizePerChannel; /** Approximate bitrate in kbit/s. */ private _bitrate; /** Track duration in milliseconds. */ private _lengthInMs; /** * Constructs DSF audio properties by parsing the "fmt " chunk payload. * @param data Raw bytes from the "fmt " chunk payload (at least 36 bytes). * @param readStyle Read style hint (passed to the base class). */ constructor(data: ByteVector, readStyle: ReadStyle); /** Track duration in milliseconds. */ get lengthInMilliseconds(): number; /** Approximate bitrate in kbit/s. */ get bitrate(): number; /** Sample rate in Hz. */ get sampleRate(): number; /** Number of audio channels. */ get channels(): number; /** Format version number from the "fmt " chunk (must be 1). */ get formatVersion(): number; /** Format ID: 0 indicates DSD uncompressed audio. */ get formatID(): number; /** Channel type identifier (e.g. 2 = stereo, 3 = 3 channels). */ get channelType(): number; /** Number of bits per sample (typically 1 for DSD). */ get bitsPerSample(): number; /** Total number of sample frames across all channels. */ get sampleCount(): bigint; /** Block size per channel in bytes. */ get blockSizePerChannel(): number; /** * Parses the "fmt " chunk payload into audio property fields. * @param data Raw bytes from the "fmt " chunk (at least 36 bytes, little-endian). */ private read; } //# sourceMappingURL=dsfProperties.d.ts.map