export interface AnimationConfig {
    duration?: number;
    easing?: string;
    delay?: number;
    repeat?: number | 'infinite';
    direction?: 'normal' | 'reverse' | 'alternate' | 'alternate-reverse';
    fillMode?: 'none' | 'forwards' | 'backwards' | 'both';
    onComplete?: () => void;
    onUpdate?: (progress: number) => void;
}
export interface TransitionEffect {
    name: string;
    duration: number;
    easing?: string;
    customCSS?: string;
}
export declare class AnimationManager {
    private activeAnimations;
    private transitionEffects;
    constructor();
    private registerDefaultTransitions;
    animateElement(element: HTMLElement, keyframes: Keyframe[] | PropertyIndexedKeyframes, config?: AnimationConfig): Promise<void>;
    animateCharacterEntrance(element: HTMLElement, effectName?: string, position?: {
        x?: number;
        y?: number;
    }): Promise<void>;
    animateCharacterExit(element: HTMLElement, effectName?: string): Promise<void>;
    animateSceneTransition(outElement: HTMLElement, inElement: HTMLElement, effectName?: string): Promise<void>;
    animateTypewriter(element: HTMLElement, text: string, speed?: number): Promise<void>;
    shakeScreen(intensity?: number, duration?: number): Promise<void>;
    createParallaxEffect(elements: HTMLElement[], speeds: number[], direction?: 'horizontal' | 'vertical'): void;
    createParticleEffect(container: HTMLElement, particleCount?: number, config?: {
        color?: string;
        size?: number;
        speed?: number;
        direction?: number;
        life?: number;
    }): void;
    private getEntranceKeyframes;
    private getExitKeyframes;
    stopAllAnimations(): void;
    registerTransitionEffect(name: string, effect: TransitionEffect): void;
}
