/** * Auto-Execution Engine * * Automatically executes Steps sequentially. * * Key features: * 1. Sequential execution: Executes Steps in number order * 2. Context sharing: All steps share the same context object * 3. Error handling: Stops immediately when error occurs during Step execution * 4. Transaction integration: Integrates with Transaction Manager for transaction management * 5. Execution logging: Records logs before and after each step execution */ import { Context, AutoExecutionOptions } from './types'; /** * Auto-Execution Engine class */ export declare class AutoExecutor { private readonly options; private readonly stats; private readonly totalStartTime; /** * Debug mode caching (performance optimization) * Check environment variable only once at class load instead of every step * * Logging policy (simple rules): * * 1. Test environment: Always OFF (for clean test output) * - NODE_ENV=test → No logs * * 2. Explicit control (highest priority): * - FEATURE_LOGS=true → Force ON (any environment except test) * - FEATURE_LOGS=false → Force OFF (any environment) * * 3. Default behavior (when FEATURE_LOGS not set): * - development → ON (helpful for debugging) * - production → OFF (clean production logs) * * Examples: * - Local dev: (no env vars) → Logs ON * - Local dev (quiet): FEATURE_LOGS=false → Logs OFF * - Production debug: FEATURE_LOGS=true → Logs ON * - Production normal: (no env vars) → Logs OFF */ private static readonly isDebugMode; constructor(options: AutoExecutionOptions); /** * Execute all Steps sequentially * * @returns Completed Context (pure business data only) * @throws {FeatureError} When error occurs during Step execution */ execute(): Promise; /** * Output Feature start header */ private logHeader; /** * Output Step detail log */ private logStep; /** * Output overall Summary */ private logSummary; /** * Clone Context (deep copy) */ private cloneContext; /** * Format Context changes (before → after) */ private formatContextDiff; /** * Format Context for display */ private formatContextForDisplay; /** * Format object to string (with length limit) */ private formatObject; } //# sourceMappingURL=auto-executor.d.ts.map