import type { Dimensions } from "../../../../core/domain/types.js"; import type { FishMarineLife } from "../../domain/models/OceanModels.js"; import type { IFishMovementController } from "../contracts/IFishMovementController.js"; import type { IFishDecisionMaker } from "../contracts/IFishDecisionMaker.js"; /** * FishMovementController - Manages fish behavior state machine and movement * * Handles behavior transitions (cruising, turning, darting, schooling), * applies movement based on current behavior, and manages edge awareness. * Now supports personality-influenced decisions via FishDecisionMaker. */ export declare class FishMovementController implements IFishMovementController { private decisionMaker; constructor(decisionMaker?: IFishDecisionMaker); applyBehavior(fish: FishMarineLife, deltaSeconds: number, frameMultiplier: number, dimensions: Dimensions, animationTime: number): void; /** * Updates the fish's z-axis position by lerping toward targetZ. * Called every frame to smoothly animate depth changes. */ updateDepth(fish: FishMarineLife, frameMultiplier: number): void; transitionBehavior(fish: FishMarineLife, dimensions: Dimensions, nearbyFish?: FishMarineLife[], animationTime?: number): void; isOffScreen(fish: FishMarineLife, dimensions: Dimensions): boolean; getEdgeProximity(fish: FishMarineLife, dimensions: Dimensions): number; private applyCruising; private applyTurning; /** * Natural fish C-start escape response with three phases: * 1. COIL - body tenses, slows down briefly (preparatory) * 2. BURST - explosive acceleration (propulsive) * 3. RECOVERY - gradual easeOutExpo deceleration */ private applyDarting; /** * Fast direct swimming - no bobbing, straight line, streamlined posture. * Creates variety with fish that zoom across the screen. */ private applyPassing; /** * Ascending - swimming upward with vertical focus. * Fish browses toward the surface with angled body rotation. */ private applyAscending; /** * Descending - swimming downward with vertical focus. * Fish browses toward the depths with angled body rotation. */ private applyDescending; private randomInRange; } //# sourceMappingURL=FishMovementController.d.ts.map