import type { AudioBusDef, SoundDef } from "./audioFalloff.js"; import type { NoticeTone } from "../game/notices.js"; /** Interface sound cues every game gets: press, hover, panel open/close, confirm, refusal, notification. */ export type UiCue = "click" | "hover" | "open" | "close" | "confirm" | "deny" | "notify"; /** Every {@link UiCue}, in a stable order. */ export declare const UI_CUES: readonly UiCue[]; /** Bus the default UI cues mix through; the settings menu shows its volume. */ export declare const UI_CUE_BUS = "ui"; /** Catalog id a cue plays under: `ui.click`, `ui.deny`, ... A game sound with that id replaces the default. */ export declare function uiCueSoundId(cue: UiCue): string; /** The cue a notice of each tone plays when it appears. */ export declare const NOTICE_TONE_CUES: Readonly>; /** Short, soft procedural patches: no samples to load, quiet enough to sit under game audio. */ export declare const DEFAULT_UI_CUE_SOUNDS: Readonly>; /** Per-cue override: a replacement sound, or `false` to silence that cue. `false` for the whole map silences all. */ export type UiCueOverrides = false | Partial>; /** * Merge the default UI cue patches into a game's sound catalog. A game sound already named `ui.` wins, * then `overrides`, then the default. Adds the `ui` bus (gain 0.8) when the game did not declare one. * * @capability ui-sound-cues default procedural click/hover/open/close/confirm/deny/notify cues on a "ui" bus, overridable per game */ export declare function withUiCueSounds(sounds: Readonly> | undefined, buses: Readonly> | undefined, overrides?: UiCueOverrides): { sounds: Record; buses: Record | undefined; };