import { ParsedStyle } from '../types'; export interface FigmaReaction { trigger: FigmaTrigger; action?: FigmaAction; actions?: FigmaAction[]; } export interface FigmaTrigger { type: 'ON_CLICK' | 'ON_HOVER' | 'ON_PRESS' | 'ON_KEY_DOWN' | 'AFTER_TIMEOUT' | 'MOUSE_ENTER' | 'MOUSE_LEAVE' | 'MOUSE_UP' | 'MOUSE_DOWN'; timeout?: number; device?: 'KEYBOARD' | 'XBOX_ONE' | 'PS4' | 'SWITCH_PRO' | 'UNKNOWN_CONTROLLER'; keyCodes?: number[]; } export interface FigmaAction { type: 'NODE' | 'BACK' | 'CLOSE' | 'URL' | 'SET_VARIABLE' | 'CONDITIONAL'; destinationId?: string; navigation?: 'NAVIGATE' | 'SWAP' | 'OVERLAY' | 'SCROLL_TO' | 'CHANGE_TO'; transition?: FigmaTransition; preserveScrollPosition?: boolean; overlayRelativePosition?: { x: number; y: number; }; url?: string; variableId?: string; variableValue?: any; conditionalBlocks?: FigmaConditionalBlock[]; } export interface FigmaTransition { type: 'DISSOLVE' | 'SMART_ANIMATE' | 'MOVE_IN' | 'MOVE_OUT' | 'PUSH' | 'SLIDE_IN' | 'SLIDE_OUT' | 'SCROLL_ANIMATE'; duration: number; easing: FigmaEasing; direction?: 'LEFT' | 'RIGHT' | 'TOP' | 'BOTTOM'; matchLayers?: boolean; } export interface FigmaEasing { type: 'LINEAR' | 'EASE_IN' | 'EASE_OUT' | 'EASE_IN_AND_OUT' | 'EASE_IN_BACK' | 'EASE_OUT_BACK' | 'EASE_IN_AND_OUT_BACK' | 'CUSTOM_CUBIC_BEZIER' | 'GENTLE' | 'QUICK' | 'BOUNCY' | 'SLOW' | 'CUSTOM_SPRING'; easingFunctionCubicBezier?: { x1: number; y1: number; x2: number; y2: number; }; easingFunctionSpring?: { mass: number; stiffness: number; damping: number; initialVelocity: number; }; } export interface FigmaConditionalBlock { condition?: any; actions: FigmaAction[]; } /** * Convert CSS animation styles to Figma prototyping reactions */ export declare function convertAnimationToFigmaReactions(styles: ParsedStyle[]): FigmaReaction[]; /** * Generate Figma prototype suggestions based on CSS animations */ export declare function generatePrototypeSuggestions(styles: ParsedStyle[]): { reactions: FigmaReaction[]; recommendations: string[]; };