import { BladeController, View } from '@tweakpane/core'; import { Pane, BladeApi } from 'tweakpane'; interface BaseShaderConfig { [key: string]: any; } interface BaseShader { updateParams(params: Partial): void; reset(): void; exportConfig(): BaseShaderConfig; destroy(): void; getParams(): BaseShaderConfig; } interface ShaderDefinition { create(canvas: HTMLCanvasElement, config?: Partial): Promise; attachDevtools?(shader: TShader): Promise; } interface DevtoolsInstance { pane: Pane; fpsGraph?: BladeApi>; dispose(): void; } interface FluidLightEchoConfig { enabled: boolean; offset: number; radius: number; frequency: number; ringSize: number; strokeOpacity: number; fillOpacity: number; animateIn: boolean; animationDuration: number; animationDelay: number; } interface FluidLightLightWaveConfig { amplitude: number; speed: number; frequency: number; color1: string; color2: string; color3: string; color4: string; color5: string; minFalloff: number; maxFalloff: number; } interface FluidLightConfig extends BaseShaderConfig { side: number; background: string; lightWave: FluidLightLightWaveConfig; echo: FluidLightEchoConfig; } interface FluidLightShader extends BaseShader { updateParams(params: Partial): void; reset(): void; exportConfig(): FluidLightConfig; destroy(): void; getParams(): FluidLightConfig; } declare const FluidLight: ShaderDefinition; export { type DevtoolsInstance, FluidLight, type FluidLightConfig, type FluidLightEchoConfig, type FluidLightLightWaveConfig, type FluidLightShader };