/** * CameraEffects.ts * * Post-camera effects: screen shake, zoom pulses, flash, * letterbox, split-screen, and vignette overlays. * * @module camera */ export type EffectType = 'shake' | 'zoom' | 'flash' | 'letterbox' | 'vignette' | 'fade'; export interface ActiveEffect { id: string; type: EffectType; duration: number; elapsed: number; intensity: number; params: Record; active: boolean; } export interface ShakeParams { frequency: number; decay: number; } export interface ZoomParams { targetZoom: number; easeBack: boolean; } export interface FlashParams { color: { r: number; g: number; b: number; }; } export interface LetterboxParams { ratio: number; } export interface FadeParams { fadeIn: boolean; color: { r: number; g: number; b: number; }; } export declare class CameraEffects { private effects; private shakeOffset; private zoomMultiplier; private flashAlpha; private flashColor; private letterboxAmount; private vignetteIntensity; private fadeAlpha; shake(duration: number, intensity?: number, frequency?: number, decay?: number): string; zoomPulse(duration: number, targetZoom?: number, easeBack?: boolean): string; flash(duration?: number, color?: { r: number; g: number; b: number; }, intensity?: number): string; letterbox(duration: number, ratio?: number): string; vignette(duration: number, intensity?: number): string; fade(duration: number, fadeIn?: boolean, color?: { r: number; g: number; b: number; }): string; private addEffect; update(dt: number): void; getShakeOffset(): [number, number]; getZoomMultiplier(): number; getFlashAlpha(): number; getFlashColor(): { r: number; g: number; b: number; }; getLetterboxAmount(): number; getVignetteIntensity(): number; getFadeAlpha(): number; getActiveEffectCount(): number; cancelEffect(id: string): boolean; cancelAll(): void; } //# sourceMappingURL=CameraEffects.d.ts.map