import type { AudioBusDef, SoundDef } from "./audioFalloff.js"; /** * A gameplay moment the engine reacts to: taking or dealing a hit, a kill, a pickup, an objective, * a wave starting, or a refused action. The game names the moment; the engine owns the reaction. */ export type FeedbackCue = "hit" | "hurt" | "kill" | "pickup" | "objective" | "wave" | "deny"; /** Every {@link FeedbackCue}, in a stable order. */ export declare const FEEDBACK_CUES: readonly FeedbackCue[]; /** Bus the default feedback cues mix through; the settings menu shows its volume and mute. */ export declare const FEEDBACK_CUE_BUS = "sfx"; /** Catalog id a cue plays under: `feel.hit`, `feel.kill`, ... A game sound with that id replaces the default. */ export declare function feedbackCueSoundId(cue: FeedbackCue): string; /** * Short procedural reactions - no samples to load, so every game has impact feedback without * authoring audio. Loud enough to read, quiet enough to sit under a weapon's own sound. */ export declare const DEFAULT_FEEDBACK_CUE_SOUNDS: Readonly>; /** Per-cue override: a replacement sound, or `false` to silence that cue. `false` for the whole map silences all. */ export type FeedbackCueOverrides = false | Partial>; /** * Merge the default feedback reactions into a game's sound catalog. A game sound already named * `feel.` wins, then `overrides`, then the default. Adds the `sfx` bus (gain 0.9) when the game * did not declare one, so the impact layer has its own volume and mute row. * * @capability feedback-cue-sounds default procedural hit/hurt/kill/pickup/objective/wave/deny reactions on an "sfx" bus, overridable per game */ export declare function withFeedbackCueSounds(sounds: Readonly> | undefined, buses: Readonly> | undefined, overrides?: FeedbackCueOverrides): { sounds: Record; buses: Record | undefined; };