import { Clip } from '../clips/tav-clip';
import { VolumeEffect, FIFOEffect, NoBlankArray, Keyframe } from '../types/types';
import { tav } from '../tav';
import { Effect } from './tav-effect';
/**
 * Effect used to changes the audio volume of input.
 * @category Effects
 */
export declare class AudioVolumeEffect extends Effect {
    /**
     * Creates a fade in and fade out AudioVolumeEffect.
     */
    static MakeFIFOEffect(clip: Clip, maxVolume: number, fadeInDuration: number, fadeOutDuration: number): Promise<AudioVolumeEffect>;
    /**
     * Creates Audio Effect with the specified clip and keyframe list.
     */
    static MakeVolumeEffect(clip: Clip, volumeRampList: NoBlankArray<Keyframe>, defaultVolume?: number): Promise<AudioVolumeEffect>;
    private static MakeFromClip;
    readonly type: string;
    private clip;
    private inputClip;
    private _volumeEffects;
    private _defaultVolume;
    /**
     * Get the current volume calculated by the effect.
     */
    getCurrentVolume(): any;
    clone(): AudioVolumeEffect;
    build(): Promise<tav.Clip> | undefined;
    protected createClip(): Promise<tav.AudioVolumeEffect> | undefined;
    /**
     * Tell the effect how to update the volume.
     *
     * Use `FIFOEffect` to define a fade in and fade out volume effect.
     *
     * Use `VolumeEffect` to define a keyframe based volume effect.
     */
    get volumeEffects(): Readonly<VolumeEffect | FIFOEffect>;
    set volumeEffects(val: VolumeEffect | FIFOEffect);
}
