/** * Unified build status management for Poltergeist * Consolidates build status validation, error handling, and result processing */ import type { BuildStatus } from '../types.js'; /** * Standardized build status values */ export declare enum BuildStatusType { SUCCESS = "success", FAILED = "failure", BUILDING = "building", IDLE = "idle", UNKNOWN = "unknown" } export interface BuildMetrics { duration: number; exitCode?: number; output?: string; outputInfo?: string; } export interface BuildError { message: string; summary?: string; exitCode?: number; type?: 'compilation' | 'runtime' | 'configuration' | 'unknown'; } /** * Centralized build status management and error handling * * Note: Uses static-only class for namespacing and API organization. * This provides clear boundaries and logical grouping of related functions. */ export declare class BuildStatusManager { /** * Create a successful build status */ static createSuccessStatus(targetName: string, metrics: BuildMetrics, options?: { gitHash?: string; builder?: string; buildTime?: number; }): BuildStatus; /** * Create a failed build status with error details */ static createFailureStatus(targetName: string, error: BuildError, metrics: Partial, options?: { gitHash?: string; builder?: string; }): BuildStatus; /** * Create a building status */ static createBuildingStatus(targetName: string, options?: { gitHash?: string; builder?: string; }): BuildStatus; /** * Check if a build status represents success */ static isSuccess(status: BuildStatus | string): boolean; /** * Check if a build status represents failure */ static isFailure(status: BuildStatus | string): boolean; /** * Check if a build is currently in progress */ static isBuilding(status: BuildStatus | string): boolean; /** * Extract error summary from build output using common patterns */ static extractErrorSummary(errorOutput: string): string; /** * Categorize error type based on content */ static categorizeError(errorOutput: string, _exitCode?: number): BuildError['type']; /** * Create a BuildError object from raw error data */ static createError(errorMessage: string, exitCode?: number, rawOutput?: string): BuildError; /** * Format build duration as human-readable string */ static formatDuration(durationMs: number): string; /** * Get error message with fallback logic */ static getErrorMessage(status: BuildStatus): string; /** * Format build notification message */ static formatNotificationMessage(status: BuildStatus, outputInfo?: string): string; /** * Interpret exit code meaning */ static interpretExitCode(exitCode: number): string; /** * Create BuildMetrics from timing and result data */ static createMetrics(startTime: number, endTime?: number, exitCode?: number, output?: string, outputInfo?: string): BuildMetrics; /** * Validate build status type */ static isValidStatus(status: string): status is BuildStatusType; /** * Get status display color for terminal output */ static getStatusColor(status: BuildStatus | string): 'green' | 'red' | 'yellow' | 'blue' | 'gray'; } //# sourceMappingURL=build-status-manager.d.ts.map