export class SoundMaterialComposition extends AbstractSoundMaterialDefinition {
    /**
     *
     * @type {AbstractSoundMaterialDefinition[]}
     */
    materials: AbstractSoundMaterialDefinition[];
    /**
     *
     * @type {number[]}
     */
    weights: number[];
    /**
     * Sounds below this threshold are cut from the composition
     * @type {number}
     * @private
     */
    private __volume_threshold;
    toJSON(): {
        materials: {
            type: any;
            data: any;
        }[];
        weights: number[];
        volumeThreshold: number;
    };
    fromJSON({ materials, weights, volumeThreshold }: {
        materials?: any[];
        weights?: any[];
        volumeThreshold?: number;
    }): void;
    /**
     *
     * @param {number} index
     * @param {AbstractSoundMaterialDefinition} material
     * @param {number} weight
     */
    setMaterial(index: number, material: AbstractSoundMaterialDefinition, weight: number): void;
    /**
     *
     * @param {number} v
     */
    setVolumeThreshold(v: number): void;
    computeInteractionSounds(destination: any, destination_offset: any, interaction: any): number;
}
export namespace SoundMaterialComposition {
    let typeName: string;
}
import { AbstractSoundMaterialDefinition } from "../AbstractSoundMaterialDefinition.js";
//# sourceMappingURL=SoundMaterialComposition.d.ts.map