export class SoundTrack {
    static fromJSON(json: any): SoundTrack;
    /**
     *
     * @type {String|null}
     */
    url: string | null;
    /**
     *
     * @type {number}
     */
    time: number;
    /**
     * @deprecated Not used
     * @type {String|null}
     */
    channel: string | null;
    /**
     * @private
     * @type {number}
     */
    private __volume;
    /**
     * In seconds
     * Obtained once clip is loaded
     * @type {number}
     */
    duration: number;
    /**
     *
     * @type {number|SoundTrackFlags}
     */
    flags: number | SoundTrackFlags;
    on: {
        /**
         * @type {Signal<this>}
         */
        ended: Signal<this>;
    };
    /**
     *
     * @return {SoundTrackNodes}
     */
    get nodes(): SoundTrackNodes;
    /**
     *
     * @param {AudioContext} context
     */
    initializeNodes(context: AudioContext): void;
    /**
     *
     * @param {AudioBuffer} v
     */
    set buffer(v: AudioBuffer);
    get buffer(): AudioBuffer;
    start(startTime?: number): void;
    suspend(): void;
    /**
     *
     * @param {SoundTrack} other
     * @returns number
     */
    compare(other: SoundTrack): number;
    /**
     *
     * @param {number|SoundEmitterFlags} flag
     * @returns {void}
     */
    setFlag(flag: number | SoundEmitterFlags): void;
    /**
     *
     * @param {number|SoundEmitterFlags} flag
     * @returns {void}
     */
    clearFlag(flag: number | SoundEmitterFlags): void;
    /**
     *
     * @param {number|SoundEmitterFlags} flag
     * @param {boolean} value
     */
    writeFlag(flag: number | SoundEmitterFlags, value: boolean): void;
    /**
     *
     * @param {number|SoundEmitterFlags} flag
     * @returns {boolean}
     */
    getFlag(flag: number | SoundEmitterFlags): boolean;
    /**
     * Linearly transition volume to a target value over a certain duration.
     * Useful for fading sounds in and out of the mix.
     *
     * NOTE: volume property of the object is updated instantly, transition happens at the AudioNode level only
     *
     * @param {number} target target volume value
     * @param {number} duration How long the transition should take, in seconds
     * @param {number} [startAfter] when fading should start, see WebAudio docs on {@link AudioContext#currentTime}
     */
    setVolumeOverTime(target: number, duration: number, startAfter?: number): void;
    /**
     *
     * @param {number} v
     */
    set volume(v: number);
    /**
     *
     * @return {number}
     */
    get volume(): number;
    /**
     * @deprecated
     * @param {boolean} v
     */
    set loop(v: boolean);
    /**
     * @deprecated
     * @return {boolean}
     */
    get loop(): boolean;
    /**
     * @deprecated
     * @param {boolean} v
     */
    set playing(v: boolean);
    /**
     * @deprecated
     * @return {boolean}
     */
    get playing(): boolean;
    /**
     * @deprecated
     * @param {boolean} v
     */
    set startWhenReady(v: boolean);
    /**
     * @deprecated
     * @return {boolean}
     */
    get startWhenReady(): boolean;
    /**
     *
     * @param {SoundTrack} other
     */
    copy(other: SoundTrack): void;
    /**
     *
     * @param {SoundTrack} other
     * @returns {boolean}
     */
    equals(other: SoundTrack): boolean;
    /**
     *
     * @return {number}
     */
    hash(): number;
    /**
     *
     * @return {SoundTrack}
     */
    clone(): SoundTrack;
    toJSON(): {
        url: string;
        loop: boolean;
        time: number;
        volume: number;
        playing: boolean;
        startWhenReady: boolean;
        usingAssetAlias: boolean;
        synchronized: boolean;
    };
    fromJSON({ url, loop, time, volume, playing, startWhenReady, usingAssetAlias, synchronized }: {
        url: any;
        loop?: boolean;
        time?: number;
        volume?: number;
        playing?: boolean;
        startWhenReady?: boolean;
        usingAssetAlias?: boolean;
        synchronized?: boolean;
    }): void;
    #private;
}
import { SoundTrackFlags } from "./SoundTrackFlags.js";
import Signal from "../../../../core/events/signal/Signal.js";
import { SoundTrackNodes } from "./SoundTrackNodes.js";
//# sourceMappingURL=SoundTrack.d.ts.map