/*! * Copyright (c) 2025-present, Vanilagy and contributors * * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ import { Demuxer } from "../demuxer"; import type { Input } from "../input"; import { InputAudioTrack } from "../input-track"; import { type MetadataTags } from "../metadata"; import { AsyncMutex } from "../misc"; import { type FileSlice, type Reader } from "../reader"; type FlacAudioInfo = { numberOfChannels: number; sampleRate: number; totalSamples: number; minimumBlockSize: number; maximumBlockSize: number; minimumFrameSize: number; maximumFrameSize: number; description: Uint8Array; }; type Sample = { blockOffset: number; blockSize: number; byteOffset: number; byteSize: number; }; type NextFlacFrameResult = { num: number; blockSize: number; sampleRate: number; size: number; isLastFrame: boolean; }; export declare class FlacDemuxer extends Demuxer { reader: Reader; loadedSamples: Sample[]; metadataPromise: Promise | null; track: InputAudioTrack | null; metadataTags: MetadataTags; audioInfo: FlacAudioInfo | null; lastLoadedPos: number | null; blockingBit: number | null; readingMutex: AsyncMutex; lastSampleLoaded: boolean; constructor(input: Input); computeDuration(): Promise; getMetadataTags(): Promise; getTracks(): Promise; getMimeType(): Promise; readMetadata(): Promise; readNextFlacFrame({ startPos, isFirstPacket, }: { startPos: number; isFirstPacket: boolean; }): Promise; readFlacFrameHeader({ slice, isFirstPacket }: { slice: FileSlice; isFirstPacket: boolean; }): { num: number; blockSize: number; sampleRate: number; } | null; advanceReader(): Promise; } export {}; //# sourceMappingURL=flac-demuxer.d.ts.map