/**
 * How long a chain keeps ringing after its input stops.
 *
 * The render used to end the offline context at the last input sample, so a
 * reverb or a delay was cut mid-tail — the one place the render did not match
 * preview. The length is not a guess: every tail-producing effect here has a
 * decay that follows from its own settings, so the render can ask for exactly
 * the room it needs.
 */
import { type HfAutomation } from "../audioAutomation.js";
import { type HfAudioFxChain } from "../audioFx.js";
/**
 * Ceiling on the extension, in seconds.
 *
 * Delay is unbounded in principle: 5 s between repeats at 0.95 feedback decays
 * for eleven minutes, and the panel can dial exactly that. A tail that outruns
 * the composition costs render time and mixes into everything after it, so the
 * chain gets the room it asks for up to here and is cut beyond it.
 */
export declare const MAX_FX_TAIL_SECONDS = 5;
/**
 * The whole chain's tail, in seconds.
 *
 * Summed, not maxed: the chain is serial, so a delay in front of a reverb hands
 * each of its repeats to the room and the last one still gets a full tail.
 */
export declare function chainTailSeconds(chain: HfAudioFxChain, automation?: HfAutomation): number;
//# sourceMappingURL=audioFxTail.d.ts.map