import { MotionProps, Variants } from 'framer-motion';
import React, { ElementType } from 'react';
type AnimationType = 'text' | 'word' | 'character' | 'line' | 'mix';
type AnimationVariant = 'fadeIn' | 'blurIn' | 'blurInUp' | 'blurInDown' | 'slideUp' | 'slideDown' | 'slideLeft' | 'slideRight' | 'scaleUp' | 'scaleDown';
export interface TextAnimateProps extends MotionProps {
    /**
     * 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 {};
