import * as React from 'react';

export interface PulseAnimationProps {
  /** Applied as data-hook HTML attribute that can be used in the tests */
  dataHook?: string;
  /** Node to animate (one child node) */
  children: React.ReactNode;
  /** Triggers the animation transition */
  active?: boolean;
  /** A callback fired immediately after the animation starts. */
  onStart?: (event: React.AnimationEvent<HTMLDivElement>) => void;
  /** A callback fired immediately after the animation ends. */
  onEnd?: (event: React.AnimationEvent<HTMLDivElement>) => void;
  /** When set to true, the child component animate repetitively until stopped by other event
   * @default true
   */
  loop?: boolean;
  /** Set a delay before the animation execution. When provided a number- sets this as `ms`.*/
  delay?: string | number;
  /** The color of the animation */
  color: 'B10' | 'R10' | 'P10' | 'G10';
  /** Sets the border-radius css property of the animation */
  borderRadius?: React.CSSProperties['borderRadius'];
  /** Changes fluidity from fit-content to 100% and allows children to stretch to its parent container width
   * @default false
   */
  fluid?: boolean;
}

export default class PulseAnimation extends React.PureComponent<PulseAnimationProps> {}
