type CSSFillMode = "none" | "forwards" | "backwards" | "both"; type CSSDirection = "normal" | "reverse" | "alternate" | "alternate-reverse"; type CSSIterationCount = number | "infinite"; type PresetEasing = "linear" | "ease" | "ease-in" | "ease-out" | "ease-in-out" | "step-start" | "step-end"; type CubicBezierEasing = `cubic-bezier(${string})`; type StepsEasing = `steps(${string})`; type CSSEasing = PresetEasing | CubicBezierEasing | StepsEasing; interface AnimateOptions { from: string; to: string; duration?: number; easing?: CSSEasing; delay?: number; fill?: CSSFillMode; iterations?: CSSIterationCount; direction?: CSSDirection; name?: string; } interface KeyframesDefinition { [stop: string]: string; } interface CompiledAnimation { className: string; keyframesCss: string; animationCss: string; } interface AnimationRegistryOptions { cacheLimit?: number; } interface AnimationRegistry { compileAnimation(opts: AnimateOptions): Promise; compileKeyframes(name: string, stops: KeyframesDefinition): Promise; extractCss(): string; reset(): void; /** Check apakah className sudah terdaftar di registry */ has(className: string): boolean; /** Expand animation to include browser-specific prefixes using native Rust optimization */ expandAnimation(css: string): Promise; /** Transform animation for better compatibility */ transformAnimationForCompatibility(css: string): Promise; } declare function createAnimationRegistry(options?: AnimationRegistryOptions): AnimationRegistry; declare function initAnimate(): Promise; declare function getDefaultAnimationRegistry(): AnimationRegistry; declare function compileAnimation(optsOrName: AnimateOptions | string, secondArg?: AnimationRegistry | Partial): Promise; declare function compileKeyframes(name: string, stops: KeyframesDefinition, registry?: AnimationRegistry): Promise; declare function animate(opts: AnimateOptions, registry?: AnimationRegistry): Promise; declare function keyframes(name: string, stops: KeyframesDefinition, registry?: AnimationRegistry): Promise; declare function extractAnimationCss(registry?: AnimationRegistry): string; declare function resetAnimationRegistry(registry?: AnimationRegistry): void; interface InjectAnimationCssOptions { document?: Document; styleId?: string; silent?: boolean; } declare function injectAnimationCss(registry?: AnimationRegistry, options?: InjectAnimationCssOptions): void; declare const animations: { readonly fadeIn: () => Promise; readonly fadeOut: () => Promise; readonly slideUp: () => Promise; readonly slideDown: () => Promise; readonly slideLeft: () => Promise; readonly slideRight: () => Promise; readonly scaleIn: () => Promise; readonly scaleOut: () => Promise; readonly blurIn: () => Promise; readonly bounceIn: () => Promise; readonly spinIn: () => Promise; }; export { type AnimateOptions, createAnimationRegistry as AnimationRegistry, type AnimationRegistryOptions, type AnimationRegistry as AnimationRegistryType, type CSSDirection, type CSSEasing, type CSSFillMode, type CSSIterationCount, type CompiledAnimation, type CubicBezierEasing, type InjectAnimationCssOptions, type KeyframesDefinition, type PresetEasing, type StepsEasing, animate, animations, compileAnimation, compileKeyframes, createAnimationRegistry, extractAnimationCss, getDefaultAnimationRegistry, initAnimate, injectAnimationCss, keyframes, resetAnimationRegistry };