import { AutomationCustomer, AutomationJsonObject, AutomationJsonSchema, AutomationJsonValue, AutomationResourceReference } from '../Common'; import { AutomationCapabilityEffectClass } from '../Capabilities'; import { AutomationExecutionContextInput, AutomationExecutionEffectMode, AutomationExecutionScope, AutomationExecutionSource, AutomationFlowSnapshotReference } from './Execution'; export declare enum AutomationArtifactStatus { UPLOADING = "uploading", SCANNING = "scanning", AVAILABLE = "available", REJECTED = "rejected", EXPIRED = "expired" } export declare enum AutomationArtifactOrigin { UPLOAD = "upload", CAPTURED_EVENT = "capturedEvent", EXECUTION = "execution", GENERATED = "generated" } export interface AutomationArtifactReference { id: string; name: string; mimeType: string; size: number; origin: AutomationArtifactOrigin; status: AutomationArtifactStatus; checksum?: string | null; expiresAt?: string | null; owner?: AutomationResourceReference | null; } export declare enum AutomationTestCaseVisibility { PRIVATE = "private", SHARED = "shared" } export declare enum AutomationTestAssertionKind { EXECUTION_STATUS = "executionStatus", NODE_REACHED = "nodeReached", NODE_NOT_REACHED = "nodeNotReached", PATH_EXISTS = "pathExists", PATH_TYPE = "pathType", PATH_VALUE = "pathValue", ERROR_CODE = "errorCode", MAX_DURATION = "maxDuration", MAX_COST = "maxCost" } export declare enum AutomationTestAssertionStatus { PENDING = "pending", PASSED = "passed", FAILED = "failed", SKIPPED = "skipped" } export interface AutomationTestAssertion { id: string; kind: AutomationTestAssertionKind; nodeId?: string | null; path?: string | null; expected?: AutomationJsonValue; configuration?: AutomationJsonObject | null; } export interface AutomationTestAssertionResult { assertionId: string; status: AutomationTestAssertionStatus; message?: string | null; actual?: AutomationJsonValue; } /** Configuración común utilizada por preflight e inicio de una prueba. */ export interface AutomationTestConfiguration { flowId: string; flowVersionId?: string | null; draftRevision?: number | null; entryPointId: string; scope: AutomationExecutionScope; requestedEffectMode: AutomationExecutionEffectMode; source: AutomationExecutionSource; customer?: AutomationCustomer | null; input?: AutomationJsonObject | null; context?: AutomationExecutionContextInput | null; nodeInputOverrides?: Record | null; artifactIds?: string[] | null; testTargetOverrides?: AutomationJsonObject | null; } export interface StartAutomationTestRequest extends AutomationTestConfiguration { idempotencyKey: string; correlationId?: string | null; testCaseId?: string | null; testCaseRevision?: number | null; preflightToken?: string | null; } export interface AutomationTestPreflightRequest extends AutomationTestConfiguration { } export declare enum AutomationTestPreflightStatus { READY = "ready", WARNING = "warning", BLOCKED = "blocked" } export declare enum AutomationTestPreflightIssueSeverity { INFO = "info", WARNING = "warning", BLOCKER = "blocker" } export interface AutomationTestPreflightIssue { code: string; severity: AutomationTestPreflightIssueSeverity; message: string; nodeId?: string | null; details?: AutomationJsonObject | null; } export interface AutomationTestPreflightNode { nodeId: string; nodeDefinitionCode: string; nodeDefinitionVersion: number; reachable: boolean; executable: boolean; issues: AutomationTestPreflightIssue[]; } export interface AutomationTestPreflightEffect { nodeId: string; effectClass: AutomationCapabilityEffectClass; action: string; description?: string | null; originalTarget?: AutomationResourceReference | null; effectiveTarget?: AutomationResourceReference | null; estimatedItems?: number | null; } export interface AutomationTestPreflightLimits { maxDurationMs?: number | null; maxSteps?: number | null; maxIterations?: number | null; maxItems?: number | null; estimatedCost?: number | null; currency?: string | null; } export interface AutomationTestPreflightResult { status: AutomationTestPreflightStatus; snapshot: AutomationFlowSnapshotReference; requestedEffectMode: AutomationExecutionEffectMode; effectiveEffectMode: AutomationExecutionEffectMode; nodes: AutomationTestPreflightNode[]; effects: AutomationTestPreflightEffect[]; issues: AutomationTestPreflightIssue[]; limits: AutomationTestPreflightLimits; requiresConfirmation: boolean; preflightToken: string; expiresAt: string; } export interface AutomationTestCase { id: string; spaceId: string; flowId: string; name: string; description?: string | null; revision: number; visibility: AutomationTestCaseVisibility; configuration: AutomationTestConfiguration; assertions: AutomationTestAssertion[]; createdBy: string; createdAt: string; updatedBy?: string | null; updatedAt?: string | null; } /** Schema opcional para que el Estudio genere un simulador por Entry Point. */ export interface AutomationEntryPointTestSchema { entryPointId: string; inputSchema?: AutomationJsonSchema | null; contextSchema?: AutomationJsonSchema | null; allowedArtifactMimeTypes?: string[] | null; maxArtifactSize?: number | null; maxArtifacts?: number | null; }