/** * Audibility event handler — ADR-172 Phase 7a, ported to engine prose * pipeline per ADR-174. * * Handles `sound.audibility.heard`. Converts each `IAudibilityEvent` * (per-listener perception of a propagated sound, produced by the * engine's sound dispatcher in Phase 6) into a single text block via * the `sound.heard..` template family registered in the * active language pack (lang-en-us ships defaults; stories override * per kind). * * Naming discipline: * - `audio` — Web Audio playback (ADR-169 `AudioManager`). * - `sound` — the media-cue channel id (`media.sound.play`, * ADR-163). * - `audibility` — ADR-172 perception of propagated sound, this * handler. * * Public interface: `handleAudibilityHeard`. * * Owner context: `@sharpee/engine` — internal prose pipeline. * * Listener filtering: in single-user scope today the player is the * only entity carrying `ListenerTrait` automatically, so every * audibility event delivered here is for the player. The dispatcher * already writes the listener id into `event.entities.target`; when * L2's NPC-listener work lands, this handler will need to filter * `event.entities.target === playerId` before rendering. * * @see ADR-172 — Spatial Sound Propagation §Channel routing * @see ADR-174 §Engine-internal prose pipeline (port from text-service) */ import type { ITextBlock } from '@sharpee/text-blocks'; import type { ISemanticEvent } from '@sharpee/core'; import type { HandlerContext } from './types'; /** * Handle a `sound.audibility.heard` event. * * Resolves `sound.heard..` from the language provider, * falling back to `sound.heard.default.` when the kind-specific * template is not registered. Returns one `ITextBlock` per event, or * `[]` when the event is malformed, the tier is `silent`, or no * template resolves. */ export declare function handleAudibilityHeard(event: ISemanticEvent, context: HandlerContext): ITextBlock[]; //# sourceMappingURL=audibility.d.ts.map