import type { FishMarineLife } from "../../domain/models/OceanModels.js"; import type { IFishInteractionHandler, InteractionResult } from "../contracts/IFishInteractionHandler.js"; import type { IFishWobbleAnimator } from "../contracts/IFishWobbleAnimator.js"; /** * FishInteractionHandler - Detects and handles micro-interactions between fish * * Creates emergent social behaviors when fish pass close to each other: * - Passing greetings (social fish shimmy at each other) * - Yield behavior (timid fish slow down for bold ones) * - Social approach (social fish veer toward neighbors) * - Shy avoidance (asocial fish veer away from neighbors) */ export declare class FishInteractionHandler implements IFishInteractionHandler { private wobbleAnimator; /** Cooldown timers per fish (using fish reference as key via WeakMap) */ private cooldowns; /** Track processed pairs this frame to avoid duplicate interactions */ private processedPairs; /** Temporary speed modifiers (fish -> {multiplier, remaining}) */ private speedModifiers; constructor(wobbleAnimator?: IFishWobbleAnimator); processInteractions(fish: FishMarineLife[], deltaSeconds: number): InteractionResult[]; applyInteraction(result: InteractionResult): void; isOnCooldown(fish: FishMarineLife): boolean; private updateCooldowns; private updateSpeedModifiers; private setCooldown; private areInProximity; private determineInteraction; private defaultPersonality; } //# sourceMappingURL=FishInteractionHandler.d.ts.map