import { AutomationError, AutomationJsonObject, AutomationJsonSchema, AutomationSourceApplication } from '../Common'; export declare enum AutomationCapabilityKind { TRIGGER = "trigger", ACTION = "action", CONDITION = "condition" } export declare enum AutomationCapabilityEffectClass { NONE = "none", READ = "read", WRITE = "write", COMMUNICATION = "communication", BULK = "bulk" } export declare enum AutomationCapabilityIdempotency { NONE = "none", SUPPORTED = "supported", REQUIRED = "required" } /** Capacidades operativas que el runtime puede aplicar de forma confiable. */ export interface AutomationCapabilityExecutionSupport { effectClass: AutomationCapabilityEffectClass; supportsSimulation: boolean; supportsTestTargets: boolean; supportsUntilNode: boolean; supportsFromNode: boolean; supportsNodeOnly: boolean; supportsCancellation: boolean; idempotency: AutomationCapabilityIdempotency; defaultTimeoutMs?: number | null; maxAttempts?: number | null; maxTestItems?: number | null; inputSchema?: AutomationJsonSchema | null; outputSchema?: AutomationJsonSchema | null; simulationOutputSchema?: AutomationJsonSchema | null; sensitivePaths?: string[] | null; requiredPermissions?: string[] | null; } /** * Capacidad publicada por una aplicación de negocio para que Automation pueda * descubrirla y representarla sin incorporar reglas de ese dominio. */ export interface AutomationCapability { code: string; sourceApplication: AutomationSourceApplication; kind: AutomationCapabilityKind; name: string; description?: string | null; inputSchema?: AutomationJsonSchema | null; outputSchema?: AutomationJsonSchema | null; requiredPermissions: string[]; enabled: boolean; version: number; /** Metadata opcional para definitions anteriores a la política de ejecución. */ executionSupport?: AutomationCapabilityExecutionSupport | null; } export interface AutomationCapabilityQuery { sourceApplications?: AutomationSourceApplication[]; kinds?: AutomationCapabilityKind[]; enabledOnly?: boolean; version?: number; } export interface AutomationCapabilityReference { code: string; version: number; sourceApplication: AutomationSourceApplication; } export interface AutomationCapabilityInvocation { invocationId: string; executionId: string; nodeId: string; capability: AutomationCapabilityReference; input: AutomationJsonObject; context: AutomationJsonObject; } export interface AutomationCapabilityResult { invocationId: string; success: boolean; output?: AutomationJsonObject | null; error?: AutomationError | null; completedAt: string; }