/** * @class ParticleEffectButton */ import PropTypes from 'prop-types'; import React, { Component } from 'react'; interface ParticleEffectButtonProps { hidden?: boolean; children?: React.ReactNode; className?: string; duration?: number; easing?: string | number[]; type?: 'circle' | 'rectangle' | 'triangle'; style?: 'fill' | 'stroke'; direction?: 'left' | 'right' | 'top' | 'bottom'; canvasPadding?: number; size?: number | (() => number); speed?: number | (() => number); color?: string; particlesAmountCoefficient?: number; oscillationCoefficient?: number; onBegin?: () => void; onComplete?: () => void; } interface ParticleOptions { x: number; y: number; } export default class ParticleEffectButton extends Component { static propTypes: { hidden: PropTypes.Requireable; children: PropTypes.Requireable; className: PropTypes.Requireable; duration: PropTypes.Requireable; easing: PropTypes.Requireable>; type: PropTypes.Requireable; style: PropTypes.Requireable; direction: PropTypes.Requireable; canvasPadding: PropTypes.Requireable; size: PropTypes.Requireable any) | null | undefined>>; speed: PropTypes.Requireable any) | null | undefined>>; color: PropTypes.Requireable; particlesAmountCoefficient: PropTypes.Requireable; oscillationCoefficient: PropTypes.Requireable; onBegin: PropTypes.Requireable<(...args: any[]) => any>; onComplete: PropTypes.Requireable<(...args: any[]) => any>; }; static defaultProps: { hidden: boolean; duration: number; easing: string; type: string; style: string; direction: string; canvasPadding: number; size: () => number; speed: () => number; color: string; particlesAmountCoefficient: number; oscillationCoefficient: number; onBegin: () => void; onComplete: () => void; }; private _progress; private _particles; private _canvas; private _wrapper; private _ctx; private _raf; state: { status: string; progress: number; }; _rect: { width: number; height: number; }; componentWillReceiveProps(props: ParticleEffectButtonProps): void; render(): import("react/jsx-runtime").JSX.Element; _canvasRef: (ref: HTMLCanvasElement | null) => void; _wrapperRef: (ref: HTMLDivElement | null) => void; _startAnimation: () => void; _cycleStatus(): void; _loop: () => void; _addParticles(progress: number): void; _addParticle(opts: ParticleOptions): void; _updateParticles(): void; _renderParticles(): void; _isHorizontal(): boolean; } export {};