import { FC, HTMLProps } from 'react'; import { Universe, UniverseState, ParticleForce, Vector, Array2D, timing } from '../universe'; import { RGBA } from '../utils'; import { Dimensions, ImageState } from '../types'; export declare type PixelOptions = { x: number; y: number; image: Array2D; }; export interface ParticleOptions { filter?: (options: PixelOptions) => boolean; radius?: (options: PixelOptions) => number; mass?: (options: PixelOptions) => number; color?: (options: PixelOptions) => string; friction?: (options: PixelOptions) => number; initialPosition?: (options: PixelOptions & { finalPosition: Vector; canvasDimensions: Dimensions; }) => Vector; initialVelocity?: (options: PixelOptions) => Vector; } export interface ParticleImageProps extends HTMLProps { src: string; height?: number; width?: number; scale?: number; maxParticles?: number; entropy?: number; backgroundColor?: string; particleOptions?: ParticleOptions; mouseMoveForce?: (x: number, y: number) => ParticleForce; mouseMoveForceDuration?: number; touchMoveForce?: (x: number, y: number) => ParticleForce; touchMoveForceDuration?: number; mouseDownForce?: (x: number, y: number) => ParticleForce; mouseDownForceDuration?: number; creationDuration?: number; deathDuration?: number; creationTimingFn?: timing.TimingFunction; deathTimingFn?: timing.TimingFunction; onUniverseStateChange?: (state: UniverseState, universe: Universe) => void; onImageStateChange?: (state: ImageState) => void; } declare const ParticleImage: FC; export default ParticleImage;