import type { IFishPatternRenderer } from "../contracts/IFishPatternRenderer.js"; import type { IColorCalculator } from "../contracts/IColorCalculator.js"; import type { IFishEffectRenderer } from "../contracts/IFishEffectRenderer.js"; import type { IFishFinRenderer } from "../contracts/IFishFinRenderer.js"; import type { IFishFaceRenderer } from "../contracts/IFishFaceRenderer.js"; import type { IFishBodyRenderer } from "../contracts/IFishBodyRenderer.js"; import type { FishMarineLife } from "../../domain/models/OceanModels.js"; import { SpineChain } from "../../physics/SpineChain.js"; import { type Point } from "../../physics/BodyOutlineCalculator.js"; /** * Renders fish patterns (scales, stripes, spots, iridescence, lateral line). * Extracted from FishRenderer monolith (~430 lines of pattern rendering logic). */ export declare class FishPatternRenderer implements IFishPatternRenderer { private colorCalc; private effectRenderer; private finRenderer; private faceRenderer; private bodyRenderer; private bodyOutlineCalculator; constructor(colorCalc: IColorCalculator, effectRenderer: IFishEffectRenderer, finRenderer: IFishFinRenderer, faceRenderer: IFishFaceRenderer, bodyRenderer: IFishBodyRenderer); drawSpineScalePattern(ctx: CanvasRenderingContext2D, fish: FishMarineLife, spine: SpineChain): void; /** * Draw stripe patterns for tropical and schooling fish * Now with vertical bands for tropical fish - much more vibrant! */ drawSpineStripes(ctx: CanvasRenderingContext2D, fish: FishMarineLife, spine: SpineChain): void; /** * Draw bold vertical bands for tropical fish */ drawVerticalBands(ctx: CanvasRenderingContext2D, fish: FishMarineLife, spine: SpineChain): void; /** * Draw horizontal racing stripes for schooling fish */ drawHorizontalStripes(ctx: CanvasRenderingContext2D, fish: FishMarineLife, spine: SpineChain): void; /** * Draw decorative spot patterns for deep and sleek fish */ drawSpineSpots(ctx: CanvasRenderingContext2D, fish: FishMarineLife, spine: SpineChain): void; /** * Draw iridescent shimmer highlight on body - AMPLIFIED for A+ visuals */ drawSpineIridescence(ctx: CanvasRenderingContext2D, fish: FishMarineLife, outline: { leftPoints: Point[]; rightPoints: Point[]; headPoint: Point; tailPoint: Point; }): void; /** * Draw lateral line along spine */ drawSpineLateralLine(ctx: CanvasRenderingContext2D, fish: FishMarineLife, spine: SpineChain): void; drawSingleFish(ctx: CanvasRenderingContext2D, fish: FishMarineLife): void; drawBody(ctx: CanvasRenderingContext2D, fish: FishMarineLife, len: number, height: number): void; getFlexOffset(xFraction: number, flexAmount: number): number; drawScalePattern(ctx: CanvasRenderingContext2D, fish: FishMarineLife, len: number, height: number): void; drawLateralLine(ctx: CanvasRenderingContext2D, fish: FishMarineLife, len: number, height: number): void; } //# sourceMappingURL=FishPatternRenderer.d.ts.map