yukinovel
Version:
Yukinovel is a simple web visual novel engine.
44 lines (43 loc) • 1.77 kB
TypeScript
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;
}