import React, { CSSProperties } from 'react'; interface HauntedProps { glowOptions?: { animationTime?: number; boxShadowOff?: string; boxShadowOn?: string; }; creatureOptions?: { distance?: number; numberOf?: number; animationTime?: number; repeat?: boolean; dimensions?: { width: number; height: number; }; }; disableFun?: boolean; Creature?: React.ElementType | null; style?: CSSProperties; children?: React.ReactNode; } /** * @component */ declare function Haunted({ glowOptions, creatureOptions, disableFun, Creature, style, children, }: HauntedProps): React.JSX.Element; interface EyeProps { animationTime?: number; open?: boolean; openedClipPath?: string; closedClipPath?: string; irisColor?: string; eyeBallColor?: string; pupilColor?: string; pupilSize?: number; follow?: boolean; pupilCoords?: { cx: number; cy: number; }; width?: number; } /** * @Component * Component for an eye which follows the mouse. */ declare function Eye({ animationTime, open, openedClipPath, closedClipPath, irisColor, eyeBallColor, pupilColor, pupilSize, follow, pupilCoords, width, }: EyeProps): React.JSX.Element; interface EyeLayout { left: { opened: string; closed: string; }; right: { opened: string; closed: string; }; pupil: { cx: number; cy: number; }; } type EyeLayoutPresets = 'unfriendly' | 'menacing' | 'neutral'; interface EyesProps { open?: boolean; eyeLayout?: EyeLayoutPresets | EyeLayout; animationTime?: number; width?: number; irisColor?: string; eyeBallColor?: string; pupilColor?: string; style?: CSSProperties; pupilSize?: number; follow?: boolean; } declare function Eyes({ open, eyeLayout, animationTime, width, irisColor, eyeBallColor, pupilColor, style, pupilSize, follow, }: EyesProps): React.JSX.Element; interface MagicalTextProps { text: string; animationTime?: number; colors?: string[]; style?: React.CSSProperties; textStyle?: React.CSSProperties; disableFun?: boolean; fadeText?: boolean; Adornment?: React.ElementType; showAdornments?: boolean; adornmentOptions?: { animationType?: string | React.ElementType; }; } /** * @component * This is a component that displays text in a faded fashion with optional adornments (such as sparkles or hearts). * * Inspiration: * https://patorjk.com/text-color-fader - Initial goal * https://www.youtube.com/watch?v=yu0Cm4BqQv0 - Idea for the sparkles and movement of the color fade * https://linear.app/readme - What inspired the above youtube video * */ declare function MagicalText({ text, animationTime, colors, style, textStyle, disableFun, fadeText, showAdornments, Adornment, adornmentOptions, }: MagicalTextProps): React.JSX.Element; interface MagicalTextScaleAnimatorProps { Adornment?: React.ElementType; container?: React.RefObject; delay?: number; duration?: number; opacity?: number; width?: number; height?: number; colors?: string[]; } declare function MagicalTextScaleAnimator({ Adornment, container, delay, duration, opacity, width, height, colors, }: MagicalTextScaleAnimatorProps): React.JSX.Element; interface MagicalTextSparkleAnimatorProps { Adornment?: React.ElementType; container?: React.RefObject; delay?: number; duration?: number; getColor?: (pos: number) => string | null; width?: number; height?: number; colors?: string[]; } declare function MagicalTextSparkleAnimator({ Adornment, container, delay, duration, getColor, width, height, colors, }: MagicalTextSparkleAnimatorProps): React.JSX.Element; interface LightsOutProps { size?: number; darkColor?: string; clickToTurnOnLights?: boolean; zIndex?: number; onLightsOnStart?: (() => void) | undefined; onLightsOnEnd?: (() => void) | undefined; } declare function LightsOut({ size, darkColor, clickToTurnOnLights, zIndex, onLightsOnStart, onLightsOnEnd, }: LightsOutProps): React.JSX.Element; interface GhostSVGProps { width: number; height: number; style?: React.CSSProperties; className?: string; onClick?: () => void; onMouseEnter?: () => void; onMouseLeave?: () => void; onFocus?: () => void; onBlur?: () => void; onKeyDown?: (event: React.KeyboardEvent) => void; ref: React.RefObject | null; } /** * @component * A component that returns an SVG component that can be used with several of the components in this library. * Original SVG was CC0 (source: https://www.svgrepo.com/svg/400277/ghost) */ declare const GhostSVG: ({ width, height, style, className, onClick, onMouseEnter, onMouseLeave, onFocus, onBlur, onKeyDown, ref, }: GhostSVGProps) => React.JSX.Element; interface GhostAltSVGProps { width: number; height: number; style?: React.CSSProperties; className?: string; onClick?: () => void; onMouseEnter?: () => void; onMouseLeave?: () => void; onFocus?: () => void; onBlur?: () => void; onKeyDown?: (event: React.KeyboardEvent) => void; } /** * @component * A component that returns an SVG component that can be used with several of the components in this library. * Original SVG was CC0 (source: https://www.svgrepo.com/svg/400277/ghost) */ declare function GhostAltSVG({ width, height, style, className, onClick, onMouseEnter, onMouseLeave, onFocus, onBlur, onKeyDown, }: GhostAltSVGProps): React.JSX.Element; interface HeartSVGProps { width: number; height: number; style?: React.CSSProperties; className?: string; onClick?: () => void; onMouseEnter?: () => void; onMouseLeave?: () => void; onFocus?: () => void; onBlur?: () => void; onKeyDown?: (event: React.KeyboardEvent) => void; ref: React.RefObject | null; } /** * A component that returns an SVG component that can be used with several of the components in this library. * Original SVG was CC0 (source: https://www.svgrepo.com/svg/165566/heart) */ declare const HeartSVG: ({ width, height, style, className, onClick, onMouseEnter, onMouseLeave, onFocus, onBlur, onKeyDown, ref, }: HeartSVGProps) => React.JSX.Element; interface StarCrossSVGProps { pathRef: React.Ref; width: number; height: number; style?: React.CSSProperties; className?: string; onClick?: () => void; onMouseEnter?: () => void; onMouseLeave?: () => void; onFocus?: () => void; onBlur?: () => void; onKeyDown?: (event: React.KeyboardEvent) => void; ref: React.RefObject | null; } /** * @component * A component that returns an SVG component that can be used with several of the components in this library. * It takes in a pathRef component which is used in the MagicalTextSparkleAnimator (for MagicalText). */ declare const StarCrossSVG: ({ pathRef, width, height, style, className, onClick, onMouseEnter, onMouseLeave, onFocus, onBlur, onKeyDown, ref, }: StarCrossSVGProps) => React.JSX.Element; interface DoomFireTorchProps { height?: number; width?: number; pixelSize?: number; fireColors?: string[]; fireEnabled?: boolean; fireStrength?: number; fireRadius?: number; flammable?: Set; fireDecay?: number; } /** * * @param height {number} Height of canvas in pixels. * @param width {number} Width of canvas in pixels. * @param pixelSize {number} How big a pixel should be in the output. Larger means more pixelated. * @param fireColors {string[]} Array of CSS color values. * @param fireEnabled {boolean} If the fire is on. * @param fireStrength {number} Number between 0 and 1, represents the "strength" of the fire. * @param fireRadius {number} Radius of fire. * @param flammable {String} Pixels that can catch fire. * @param fireDecay {number} How fast the fire decays * @constructor */ declare const DoomFireTorch: ({ height, width, pixelSize, fireColors, fireEnabled, fireStrength, fireRadius, flammable, fireDecay, }: DoomFireTorchProps) => React.JSX.Element; interface DoomFireProps { height?: number; width?: number; pixelSize?: number; fireColors?: string[]; fireEnabled?: boolean; fireStrength?: number; } /** * * @param height {number} Height of canvas in pixels. * @param width {number} Width of canvas in pixels. * @param pixelSize {number} How big a pixel should be in the output. Larger means more pixelated. * @param fireColors {string[]} Array of CSS color values. * @param fireEnabled {boolean} If the fire is on. * @param fireStrength {number} Number between 0 and 1, represents the "strength" of the fire. * @constructor */ declare const DoomFire: ({ height, width, pixelSize, fireColors, fireEnabled, fireStrength, }: DoomFireProps) => React.JSX.Element; export { DoomFire, DoomFireTorch, Eye, Eyes, GhostAltSVG, GhostSVG, Haunted, HeartSVG, LightsOut, MagicalText, MagicalTextScaleAnimator, MagicalTextSparkleAnimator, StarCrossSVG }; export type { DoomFireProps, DoomFireTorchProps, EyeLayout, EyeLayoutPresets, EyeProps, EyesProps, GhostAltSVGProps, GhostSVGProps, HauntedProps, HeartSVGProps, LightsOutProps, MagicalTextProps, MagicalTextScaleAnimatorProps, MagicalTextSparkleAnimatorProps, StarCrossSVGProps };