/**
 * Comprehensive Error Handling System
 * Provides better error messages, recovery strategies, and user guidance
 */
export declare enum ErrorCode {
    INVALID_WORKFLOW_STRUCTURE = "INVALID_WORKFLOW_STRUCTURE",
    MISSING_REQUIRED_FIELD = "MISSING_REQUIRED_FIELD",
    INVALID_COMPONENT_TYPE = "INVALID_COMPONENT_TYPE",
    INVALID_DEPENDENCY_REFERENCE = "INVALID_DEPENDENCY_REFERENCE",
    CIRCULAR_DEPENDENCY = "CIRCULAR_DEPENDENCY",
    FILE_NOT_FOUND = "FILE_NOT_FOUND",
    FILE_WRITE_ERROR = "FILE_WRITE_ERROR",
    PERMISSION_DENIED = "PERMISSION_DENIED",
    DIRECTORY_NOT_EMPTY = "DIRECTORY_NOT_EMPTY",
    GENERATOR_FAILED = "GENERATOR_FAILED",
    TEMPLATE_ERROR = "TEMPLATE_ERROR",
    PARTIAL_GENERATION = "PARTIAL_GENERATION",
    SERVICE_CONNECTION_FAILED = "SERVICE_CONNECTION_FAILED",
    DATABASE_ERROR = "DATABASE_ERROR",
    NETWORK_ERROR = "NETWORK_ERROR",
    NOT_A_GIT_REPO = "NOT_A_GIT_REPO",
    UNCOMMITTED_CHANGES = "UNCOMMITTED_CHANGES",
    GIT_OPERATION_FAILED = "GIT_OPERATION_FAILED",
    VERSION_ALREADY_EXISTS = "VERSION_ALREADY_EXISTS",
    VERSION_NOT_FOUND = "VERSION_NOT_FOUND",
    INVALID_SEMVER = "INVALID_SEMVER",
    MANIFEST_MISMATCH = "MANIFEST_MISMATCH"
}
export declare enum ErrorSeverity {
    FATAL = "FATAL",// Cannot continue, must abort
    ERROR = "ERROR",// Can potentially recover
    WARNING = "WARNING",// Can continue with caution
    INFO = "INFO"
}
export interface RecoveryStrategy {
    description: string;
    automated: boolean;
    steps: string[];
    command?: string;
}
export interface BangstackError {
    code: ErrorCode;
    severity: ErrorSeverity;
    message: string;
    details?: string;
    context?: Record<string, any>;
    recoveryStrategies?: RecoveryStrategy[];
    relatedErrors?: BangstackError[];
}
/**
 * Enhanced error class with recovery suggestions
 */
export declare class EnhancedError extends Error {
    readonly code: ErrorCode;
    readonly severity: ErrorSeverity;
    readonly details?: string;
    readonly context?: Record<string, any>;
    readonly recoveryStrategies: RecoveryStrategy[];
    readonly relatedErrors: BangstackError[];
    constructor(error: BangstackError);
    /**
     * Format error for display to user
     */
    format(): string;
    /**
     * Check if error is recoverable
     */
    isRecoverable(): boolean;
    /**
     * Get automated recovery strategy if available
     */
    getAutomatedRecovery(): RecoveryStrategy | null;
}
/**
 * Error factory for creating specific error types
 */
export declare class ErrorFactory {
    static invalidWorkflowStructure(missingField: string, location?: string): EnhancedError;
    static invalidDependencyReference(component: string, dependency: string, availableComponents: string[]): EnhancedError;
    static fileNotFound(filePath: string, expectedLocation?: string): EnhancedError;
    static partialGeneration(succeededComponents: string[], failedComponents: string[], errors: Array<{
        component: string;
        error: string;
    }>): EnhancedError;
    static uncommittedChanges(files: string[]): EnhancedError;
    static versionAlreadyExists(version: string, existingInfo: {
        commit: string;
        date: string;
    }): EnhancedError;
    static manifestMismatch(expected: string[], detected: string[]): EnhancedError;
    static serviceConnectionFailed(service: string, provider: string, error: string): EnhancedError;
}
/**
 * Error aggregator for collecting multiple errors
 */
export declare class ErrorAggregator {
    private errors;
    private warnings;
    add(error: BangstackError): void;
    hasErrors(): boolean;
    hasWarnings(): boolean;
    getErrors(): BangstackError[];
    getWarnings(): BangstackError[];
    format(): string;
    clear(): void;
}
//# sourceMappingURL=error-handler.d.ts.map