import React from 'react';

export interface WorkflowBuilderProps {
    WORKFLOW_URLS: any;
    ALERT_TOP_BAR: React.ElementType | React.ReactNode;
    currentSubscription: any;
    INTEGRATION_DATA: any;
    SET_INTEGRATION_DATA: any;
    ENTITY_ID: string;
    TOKEN: string;
    openIntegrationDrawer?: (data: any, action?: string) => void;
    api?: any;
    navigate?: any;
    USER_DATA: any;
    pro_integration: boolean;
    allowedAccount?: string;
    openUpgradeModal: () => void;
    openAddonModal?: () => void;
    analytics: any;
}

export interface ExecutionDataProps {
    WORKFLOW_URLS: any;
    ENTITY_ID: string;
    TOKEN: string;
    api?: any;
    navigate?: any;
    openUpgradeModal: () => void;
    currentSubscription: any;
    analytics: any;
    isAccountLevel: boolean;
    USER_DATA: any;
}

export interface IntegrationFormProps {
    selectedNode: any;
    onClose: () => void;
    onSubmit: (data: any) => void;
    drawerWidth?: string;
    openIntegrationDrawer?: (data: any) => void;
    initialState?: any;
    setSelectedNode: (node: any) => void;
    nodes?: any[];
    setNodes?: (nodes: any[]) => void;
    ENTITY_ID: string;
    WORKFLOW_URLS: any;
    INTEGRATION_DATA: any;
    SET_INTEGRATION_DATA: (data: any) => void;
    PLAYGROUND_ENABLED?: boolean;
    TOKEN: string;
    api?: any;
    actionRef?: React.RefObject<any>;
    MCP_INTEGRATION_FORM?: boolean;
    [key: string]: any; // Allow additional props
}

export declare const WorkflowBuilder: React.ComponentType<WorkflowBuilderProps>;
export declare const ExecutionData: React.ComponentType<ExecutionDataProps>;
export declare const IntegrationForm: React.ComponentType<IntegrationFormProps>;
