/** * PHASE-2: Social Hearing Mechanics - Hearing Range Engine * * Calculates how far sound travels based on: * - Volume (WHISPER, TALK, SHOUT) * - Environment/Biome (urban tavern vs quiet forest) * - Atmospheric effects (SILENCE, etc.) */ import { BiomeType, Atmospheric } from '../../schema/spatial.js'; export type VolumeLevel = 'WHISPER' | 'TALK' | 'SHOUT'; export interface HearingRangeConfig { volume: VolumeLevel; biomeContext: BiomeType; atmospherics: Atmospheric[]; } /** * Calculate how far sound travels in feet * * @param config - Volume, biome, and atmospheric conditions * @returns Distance in feet that sound can be heard */ export declare function calculateHearingRadius(config: HearingRangeConfig): number; /** * Determine if a listener can hear based on distance * * @param distance - Distance between speaker and listener in feet * @param hearingRadius - Maximum hearing range calculated above * @returns true if within hearing range */ export declare function canHearAtDistance(distance: number, hearingRadius: number): boolean; /** * Calculate distance penalty for adjacent rooms * * Sound travels through walls/doors, but with degradation: * - SHOUT can be heard in adjacent rooms (muffled) * - TALK can sometimes be heard (requires good perception) * - WHISPER never penetrates walls * * @param volume - Volume level of speech * @returns Distance penalty in feet (added to actual distance) */ export declare function getAdjacentRoomPenalty(volume: VolumeLevel): number; /** * Get a description of hearing quality based on distance * * Used for flavor text in conversation memories */ export declare function getHearingQuality(distance: number, hearingRadius: number): string; //# sourceMappingURL=hearing.d.ts.map