import { GeneratedWorkflowData } from '@teamflojo/floimg-studio-shared'; import { CanvasSnapshot, ExecutionContext } from '../stores/aiChatStore'; /** * Analytics data for successful workflow generation */ export interface GenerationSuccessData { nodeCount: number; hasAINodes: boolean; promptLength: number; isConversation: boolean; } /** * Analytics data for failed workflow generation */ export interface GenerationFailedData { errorType: "invalid_node_type" | "generation_error" | "rate_limit" | "network" | "unknown"; promptLength: number; isConversation: boolean; } interface AIPanelProps { onApplyWorkflow: (workflow: GeneratedWorkflowData) => void; /** Apply workflow as a new workflow (fork) - clears workflow name/ID */ onApplyAsNewWorkflow?: (workflow: GeneratedWorkflowData) => void; /** Current canvas state for AI context */ canvasSnapshot?: CanvasSnapshot; /** Last execution results for AI context */ executionContext?: ExecutionContext; /** Called when workflow generation succeeds (for analytics) */ onGenerationSuccess?: (data: GenerationSuccessData) => void; /** Called when workflow generation fails (for analytics) */ onGenerationFailed?: (data: GenerationFailedData) => void; } /** * AIPanel - Persistent slide-out panel for AI workflow generation * * Features: * - Stays open while editing canvas * - Maintains conversation history * - Aware of current canvas state * - Includes execution results context */ export declare function AIPanel({ onApplyWorkflow, onApplyAsNewWorkflow, canvasSnapshot, executionContext, onGenerationSuccess, onGenerationFailed, }: AIPanelProps): import("react/jsx-runtime").JSX.Element | null; export {};