import { type CSSProperties, type HTMLAttributes, type MemoExoticComponent, type ReactNode } from 'react';
type GradualBlurPosition = 'top' | 'bottom' | 'left' | 'right';
type GradualBlurCurve = 'linear' | 'bezier' | 'ease-in' | 'ease-out' | 'ease-in-out';
type GradualBlurTarget = 'parent' | 'page';
type GradualBlurAnimated = boolean | 'scroll';
type GradualBlurPreset = 'top' | 'bottom' | 'left' | 'right' | 'subtle' | 'intense' | 'smooth' | 'sharp' | 'header' | 'footer' | 'sidebar' | 'page-header' | 'page-footer';
type GradualBlurConfig = {
animated: GradualBlurAnimated;
className: string;
curve: GradualBlurCurve;
desktopHeight?: string;
desktopWidth?: string;
divCount: number;
duration: string;
easing: string;
exponential: boolean;
gpuOptimized?: boolean;
height: string;
hoverIntensity?: number;
mobileHeight?: string;
mobileWidth?: string;
onAnimationComplete?: () => void;
opacity: number;
position: GradualBlurPosition;
preset?: GradualBlurPreset;
responsive: boolean;
strength: number;
style: CSSProperties;
tabletHeight?: string;
tabletWidth?: string;
target: GradualBlurTarget;
width?: string;
zIndex: number;
};
type GradualBlurProps = Omit, 'children' | 'style'> & Partial & {
children?: ReactNode;
style?: CSSProperties;
};
declare const GRADUAL_BLUR_PRESETS: {
top: {
position: "top";
height: string;
};
bottom: {
position: "bottom";
height: string;
};
left: {
position: "left";
height: string;
};
right: {
position: "right";
height: string;
};
subtle: {
height: string;
strength: number;
opacity: number;
divCount: number;
};
intense: {
height: string;
strength: number;
divCount: number;
exponential: true;
};
smooth: {
height: string;
curve: "bezier";
divCount: number;
};
sharp: {
height: string;
curve: "linear";
divCount: number;
};
header: {
position: "top";
height: string;
curve: "ease-out";
};
footer: {
position: "bottom";
height: string;
curve: "ease-out";
};
sidebar: {
position: "left";
height: string;
strength: number;
};
'page-header': {
position: "top";
height: string;
target: "page";
strength: number;
};
'page-footer': {
position: "bottom";
height: string;
target: "page";
strength: number;
};
};
declare const GRADUAL_BLUR_CURVE_FUNCTIONS: {
linear: (progress: number) => number;
bezier: (progress: number) => number;
'ease-in': (progress: number) => number;
'ease-out': (progress: number) => number;
'ease-in-out': (progress: number) => number;
};
declare const GradualBlurBase: ({ animated, className, curve, desktopHeight, desktopWidth, divCount, duration, easing, exponential, gpuOptimized, height, hoverIntensity, mobileHeight, mobileWidth, onAnimationComplete, onMouseEnter, onMouseLeave, opacity, position, preset, responsive, strength, style, tabletHeight, tabletWidth, target, width, zIndex, ...props }: GradualBlurProps) => import("react/jsx-runtime").JSX.Element;
declare const GradualBlur: MemoExoticComponent & {
CURVE_FUNCTIONS: typeof GRADUAL_BLUR_CURVE_FUNCTIONS;
PRESETS: typeof GRADUAL_BLUR_PRESETS;
};
export { GradualBlur, GRADUAL_BLUR_CURVE_FUNCTIONS, GRADUAL_BLUR_PRESETS };
export type { GradualBlurAnimated, GradualBlurCurve, GradualBlurPosition, GradualBlurPreset, GradualBlurProps, GradualBlurTarget, };