/**
 * AI Workflow Builder - Visual workflow creation and automation component
 * Features: Drag-and-drop workflow design, AI agent integration, execution monitoring
 */
import React from 'react';
export interface WorkflowNode {
    id: string;
    type: 'trigger' | 'action' | 'condition' | 'ai-agent' | 'data-transform' | 'delay' | 'webhook';
    position: {
        x: number;
        y: number;
    };
    data: {
        title: string;
        description: string;
        config: Record<string, any>;
        inputs: Array<{
            id: string;
            name: string;
            type: 'string' | 'number' | 'boolean' | 'object' | 'array';
            required: boolean;
            defaultValue?: any;
        }>;
        outputs: Array<{
            id: string;
            name: string;
            type: 'string' | 'number' | 'boolean' | 'object' | 'array';
        }>;
        aiPrompt?: string;
        model?: string;
        provider?: string;
    };
    status: 'idle' | 'running' | 'completed' | 'failed' | 'paused';
    metadata: {
        createdAt: Date;
        updatedAt: Date;
        executionCount: number;
        lastExecuted?: Date;
        averageRuntime?: number;
    };
}
export interface WorkflowConnection {
    id: string;
    sourceNodeId: string;
    sourceOutputId: string;
    targetNodeId: string;
    targetInputId: string;
    condition?: {
        field: string;
        operator: 'equals' | 'not-equals' | 'greater' | 'less' | 'contains' | 'regex';
        value: any;
    };
}
export interface Workflow {
    id: string;
    name: string;
    description: string;
    nodes: WorkflowNode[];
    connections: WorkflowConnection[];
    triggers: Array<{
        type: 'manual' | 'schedule' | 'webhook' | 'event';
        config: Record<string, any>;
    }>;
    variables: Array<{
        id: string;
        name: string;
        type: string;
        value: any;
        description?: string;
    }>;
    status: 'draft' | 'active' | 'paused' | 'archived';
    metadata: {
        createdAt: Date;
        updatedAt: Date;
        version: number;
        executionCount: number;
        successRate: number;
    };
}
export interface WorkflowExecution {
    id: string;
    workflowId: string;
    status: 'pending' | 'running' | 'completed' | 'failed' | 'cancelled';
    startedAt: Date;
    completedAt?: Date;
    error?: string;
    nodeExecutions: Array<{
        nodeId: string;
        status: 'pending' | 'running' | 'completed' | 'failed' | 'skipped';
        startedAt: Date;
        completedAt?: Date;
        input: any;
        output?: any;
        error?: string;
        duration?: number;
    }>;
    totalDuration?: number;
    triggeredBy: string;
}
export interface AIWorkflowBuilderProps {
    workflowId?: string;
    initialWorkflow?: Partial<Workflow>;
    onWorkflowChanged?: (workflow: Workflow) => void;
    onExecutionStarted?: (execution: WorkflowExecution) => void;
    onExecutionCompleted?: (execution: WorkflowExecution) => void;
    enableCollaboration?: boolean;
    enableAIAssistant?: boolean;
    width?: number;
    height?: number;
    className?: string;
    style?: React.CSSProperties;
}
export declare const AIWorkflowBuilder: React.FC<AIWorkflowBuilderProps>;
export default AIWorkflowBuilder;
//# sourceMappingURL=AIWorkflowBuilder.d.ts.map