import React, { ElementType } from 'react';
/**
 * 等价 framer-motion `Variants` 的本地类型别名。
 *
 * 历史 API 接受 framer-motion `Variants` 对象自定义动画；去除 framer-motion 后
 * 保留同名类型以维持对外兼容（任意键值结构），但请注意：自定义 variants 在新
 * 纯 CSS 实现下统一退化为 fade-in 视觉效果（参见 style.ts 中 `data-animation="custom"`），
 * 因为 JS 对象描述无法在不引入运行时动画库的前提下完全转换为任意 CSS。
 */
export type Variants = Record<string, Record<string, unknown>>;
type AnimationType = 'text' | 'word' | 'character' | 'line' | 'mix';
type AnimationVariant = 'fadeIn' | 'blurIn' | 'blurInUp' | 'blurInDown' | 'slideUp' | 'slideDown' | 'slideLeft' | 'slideRight' | 'scaleUp' | 'scaleDown';
export interface TextAnimateProps extends Omit<React.HTMLAttributes<HTMLElement>, 'children'> {
    /**
     * The text content to animate
     */
    children: React.ReactNode;
    /**
     * The class name to be applied to the component
     */
    className?: string;
    /**
     * The class name to be applied to each segment
     */
    segmentClassName?: string;
    /**
     * The delay before the animation starts
     */
    delay?: number;
    /**
     * The duration of the animation
     */
    duration?: number;
    /**
     * Custom motion variants for the animation
     */
    variants?: Variants;
    /**
     * The element type to render
     */
    as?: ElementType;
    /**
     * How to split the text ("text", "word", "character")
     */
    by?: AnimationType;
    /**
     * Whether to start animation when component enters viewport
     */
    startOnView?: boolean;
    /**
     * Whether to animate only once
     */
    once?: boolean;
    /**
     * The animation preset to use
     */
    animation?: AnimationVariant;
    /**
     * Whether to enable accessibility features (default: true)
     */
    accessible?: boolean;
}
export declare const resolveSegments: (children: React.ReactNode, by: AnimationType) => React.ReactNode[];
export declare const TextAnimate: React.MemoExoticComponent<({ children, delay, duration, variants, className, segmentClassName, as: Component, startOnView, once, by, animation, accessible, ...props }: TextAnimateProps) => React.JSX.Element>;
export {};
