import { type ArxKey } from './Key.js';
import { BinaryIO } from '../common/BinaryIO.js';
/**
 * @see https://github.com/arx/ArxLibertatis/blob/1.2.1/src/audio/Ambiance.cpp#L230
 */
export declare enum ArxTrackFlags {
    None = 0,
    Position = 1,
    Master = 4,
    Paused = 16,
    Prefetched = 32
}
export type ArxTrack = {
    filename: string;
    flags: ArxTrackFlags;
    keys: ArxKey[];
};
export declare class Track {
    /**
     * @see https://github.com/arx/ArxLibertatis/blob/1.2.1/src/audio/Ambiance.cpp#L531
     */
    static readFrom(binary: BinaryIO<ArrayBufferLike>, isNewerVersion: boolean): ArxTrack;
    static accumulateFrom(track: ArxTrack): ArrayBuffer;
    /**
     * from: SFX\\AMBIANCE\\LOOP_GOBLIN_MAIN.WAV
     *   to: sfx/ambiance/loop_goblin_main.wav
     *
     * from: SFX\\AMBIANCE\\FX_ADDON\\SCREAM3.WAV
     *   to: sfx/ambiance/fx_addon/scream3.wav
     *
     * from: Sfx\Strange_noise10c.wav
     *   to: sfc/strange_noise10c.wav
     */
    static toRelativePath(filename: string): string;
    /**
     * from: srx/ambiance/loop_goblin_main.wav
     *   to: sfx\\ambiance\\loop_goblin_main.wav
     */
    static toAbsolutePath(filename: string): string;
    static sizeOf(track: ArxTrack): number;
}
