import React from 'react'; import { ZSpaceManager } from '../../core/mixins/zSpaceLayer'; import { SpringConfig } from '../../animations/hooks/useMultiSpringBasic'; export interface ZSpaceLayer { id: string; zIndex: number; elevation: number; opacity: number; scale: number; blur: number; transform: string; } export interface ZSpaceAnimationConfig { /** Enable z-space animations */ enabled?: boolean; /** Spring configuration for z-space transitions */ springConfig?: SpringConfig; /** Default transition duration */ duration?: number; /** Enable layered animations */ layered?: boolean; /** Layer stagger delay */ staggerDelay?: number; /** Maximum concurrent animations */ maxConcurrent?: number; /** Enable depth-based scaling */ depthScaling?: boolean; /** Depth scaling factor */ depthScaleFactor?: number; /** Enable blur effects based on depth */ depthBlur?: boolean; /** Maximum blur amount */ maxBlur?: number; } export type ZSpaceConfig = ZSpaceAnimationConfig; export declare function useZSpaceAnimation(initialLayers?: ZSpaceLayer[], config?: ZSpaceAnimationConfig): { layers: ZSpaceLayer[]; animatingLayers: Set; addLayer: (layer: Omit, options?: { animateIn?: boolean; initialElevation?: number; duration?: number; }) => void; removeLayer: (layerId: string, options?: { animateOut?: boolean; duration?: number; onComplete?: () => void; }) => void; updateLayer: (layerId: string, updates: Partial, options?: { animate?: boolean; duration?: number; }) => void; getLayer: (layerId: string) => ZSpaceLayer | undefined; getAllLayers: () => ZSpaceLayer[]; animateToZSpace: (layerId: string, targetElevation: number, options?: { duration?: number; easing?: string; onComplete?: () => void; }) => void; animateLayeredTransition: (layerUpdates: Array<{ id: string; elevation: number; delay?: number; }>, globalOptions?: { staggerDelay?: number; duration?: number; }) => void; bringToFront: (layerId: string, options?: { duration?: number; onComplete?: () => void; }) => void; sendToBack: (layerId: string, options?: { duration?: number; onComplete?: () => void; }) => void; createDepthStack: (layerIds: string[], baseElevation?: number, elevationStep?: number) => void; animateFocusTransition: (focusedLayerId: string, backgroundLayers: string[], options?: { focusElevation?: number; backgroundElevation?: number; duration?: number; }) => void; getLayerStyles: (layerId: string) => {}; isLayerAnimating: (layerId: string) => boolean; getAnimationProgress: (layerId: string) => number; config: { enabled: boolean; springConfig: SpringConfig; duration: number; layered: boolean; staggerDelay: number; maxConcurrent: number; depthScaling: boolean; depthScaleFactor: number; depthBlur: boolean; maxBlur: number; }; zSpaceManager: ZSpaceManager; }; export declare function useParallaxZSpace(layers: Array<{ id: string; depth: number; content: React.ReactNode; }>, config?: ZSpaceAnimationConfig & { mouseInfluence?: number; scrollInfluence?: number; }): { mousePosition: { x: number; y: number; }; scrollPosition: number; layers: ZSpaceLayer[]; animatingLayers: Set; addLayer: (layer: Omit, options?: { animateIn?: boolean; initialElevation?: number; duration?: number; }) => void; removeLayer: (layerId: string, options?: { animateOut?: boolean; duration?: number; onComplete?: () => void; }) => void; updateLayer: (layerId: string, updates: Partial, options?: { animate?: boolean; duration?: number; }) => void; getLayer: (layerId: string) => ZSpaceLayer | undefined; getAllLayers: () => ZSpaceLayer[]; animateToZSpace: (layerId: string, targetElevation: number, options?: { duration?: number; easing?: string; onComplete?: () => void; }) => void; animateLayeredTransition: (layerUpdates: Array<{ id: string; elevation: number; delay?: number; }>, globalOptions?: { staggerDelay?: number; duration?: number; }) => void; bringToFront: (layerId: string, options?: { duration?: number; onComplete?: () => void; }) => void; sendToBack: (layerId: string, options?: { duration?: number; onComplete?: () => void; }) => void; createDepthStack: (layerIds: string[], baseElevation?: number, elevationStep?: number) => void; animateFocusTransition: (focusedLayerId: string, backgroundLayers: string[], options?: { focusElevation?: number; backgroundElevation?: number; duration?: number; }) => void; getLayerStyles: (layerId: string) => {}; isLayerAnimating: (layerId: string) => boolean; getAnimationProgress: (layerId: string) => number; config: { enabled: boolean; springConfig: SpringConfig; duration: number; layered: boolean; staggerDelay: number; maxConcurrent: number; depthScaling: boolean; depthScaleFactor: number; depthBlur: boolean; maxBlur: number; }; zSpaceManager: ZSpaceManager; }; export declare function useCardStackZSpace(cardCount: number, config?: ZSpaceAnimationConfig & { cardSpacing?: number; maxRotation?: number; interactionRadius?: number; }): { hoveredCard: number | null; handleCardHover: (cardIndex: number) => void; handleCardLeave: () => void; cardCount: number; layers: ZSpaceLayer[]; animatingLayers: Set; addLayer: (layer: Omit, options?: { animateIn?: boolean; initialElevation?: number; duration?: number; }) => void; removeLayer: (layerId: string, options?: { animateOut?: boolean; duration?: number; onComplete?: () => void; }) => void; updateLayer: (layerId: string, updates: Partial, options?: { animate?: boolean; duration?: number; }) => void; getLayer: (layerId: string) => ZSpaceLayer | undefined; getAllLayers: () => ZSpaceLayer[]; animateToZSpace: (layerId: string, targetElevation: number, options?: { duration?: number; easing?: string; onComplete?: () => void; }) => void; animateLayeredTransition: (layerUpdates: Array<{ id: string; elevation: number; delay?: number; }>, globalOptions?: { staggerDelay?: number; duration?: number; }) => void; bringToFront: (layerId: string, options?: { duration?: number; onComplete?: () => void; }) => void; sendToBack: (layerId: string, options?: { duration?: number; onComplete?: () => void; }) => void; createDepthStack: (layerIds: string[], baseElevation?: number, elevationStep?: number) => void; animateFocusTransition: (focusedLayerId: string, backgroundLayers: string[], options?: { focusElevation?: number; backgroundElevation?: number; duration?: number; }) => void; getLayerStyles: (layerId: string) => {}; isLayerAnimating: (layerId: string) => boolean; getAnimationProgress: (layerId: string) => number; config: { enabled: boolean; springConfig: SpringConfig; duration: number; layered: boolean; staggerDelay: number; maxConcurrent: number; depthScaling: boolean; depthScaleFactor: number; depthBlur: boolean; maxBlur: number; }; zSpaceManager: ZSpaceManager; }; export declare function useDepthNavigation(navigationItems: Array<{ id: string; label: string; depth: number; }>, config?: ZSpaceAnimationConfig): { activeItem: string | null; navigationPath: string[]; navigateTo: (itemId: string) => void; goBack: () => void; goHome: () => void; canGoBack: boolean; layers: ZSpaceLayer[]; animatingLayers: Set; addLayer: (layer: Omit, options?: { animateIn?: boolean; initialElevation?: number; duration?: number; }) => void; removeLayer: (layerId: string, options?: { animateOut?: boolean; duration?: number; onComplete?: () => void; }) => void; updateLayer: (layerId: string, updates: Partial, options?: { animate?: boolean; duration?: number; }) => void; getLayer: (layerId: string) => ZSpaceLayer | undefined; getAllLayers: () => ZSpaceLayer[]; animateToZSpace: (layerId: string, targetElevation: number, options?: { duration?: number; easing?: string; onComplete?: () => void; }) => void; animateLayeredTransition: (layerUpdates: Array<{ id: string; elevation: number; delay?: number; }>, globalOptions?: { staggerDelay?: number; duration?: number; }) => void; bringToFront: (layerId: string, options?: { duration?: number; onComplete?: () => void; }) => void; sendToBack: (layerId: string, options?: { duration?: number; onComplete?: () => void; }) => void; createDepthStack: (layerIds: string[], baseElevation?: number, elevationStep?: number) => void; animateFocusTransition: (focusedLayerId: string, backgroundLayers: string[], options?: { focusElevation?: number; backgroundElevation?: number; duration?: number; }) => void; getLayerStyles: (layerId: string) => {}; isLayerAnimating: (layerId: string) => boolean; getAnimationProgress: (layerId: string) => number; config: { enabled: boolean; springConfig: SpringConfig; duration: number; layered: boolean; staggerDelay: number; maxConcurrent: number; depthScaling: boolean; depthScaleFactor: number; depthBlur: boolean; maxBlur: number; }; zSpaceManager: ZSpaceManager; }; export type ZSpaceAnimationResult = ReturnType; //# sourceMappingURL=useZSpaceAnimation.d.ts.map