import type { Logger } from '../../types/cli.types';
/**
 * Error types for destroy command
 */
export declare enum DestroyErrorType {
    CONFIGURATION_ERROR = "CONFIGURATION_ERROR",
    CREDENTIAL_ERROR = "CREDENTIAL_ERROR",
    STACK_STATE_ERROR = "STACK_STATE_ERROR",
    STACK_OPERATION_ERROR = "STACK_OPERATION_ERROR",
    NETWORK_ERROR = "NETWORK_ERROR",
    BACKUP_ERROR = "BACKUP_ERROR",
    VALIDATION_ERROR = "VALIDATION_ERROR",
    USER_CANCELLATION = "USER_CANCELLATION"
}
/**
 * Custom error class for destroy command
 */
export declare class DestroyError extends Error {
    readonly type: DestroyErrorType;
    readonly context?: Record<string, any> | undefined;
    readonly originalError?: Error | undefined;
    constructor(type: DestroyErrorType, message: string, context?: Record<string, any> | undefined, originalError?: Error | undefined);
}
/**
 * Error handler for destroy command
 * Provides clear error messages and troubleshooting hints
 */
export declare class ErrorHandler {
    private readonly logger;
    constructor(logger: Logger);
    /**
     * Handle and display error with appropriate message and troubleshooting hints
     */
    handleError(error: Error | DestroyError, context?: Record<string, any>): void;
    /**
     * Handle DestroyError with specific error type handling
     */
    private handleDestroyError;
    /**
     * Handle configuration errors
     */
    private handleConfigurationError;
    /**
     * Handle credential errors
     */
    private handleCredentialError;
    /**
     * Handle stack state errors
     */
    private handleStackStateError;
    /**
     * Provide troubleshooting hints based on stack state
     */
    private provideStackStateTroubleshooting;
    /**
     * Handle stack operation errors
     */
    private handleStackOperationError;
    /**
     * Handle network errors
     */
    private handleNetworkError;
    /**
     * Handle backup errors
     */
    private handleBackupError;
    /**
     * Handle validation errors
     */
    private handleValidationError;
    /**
     * Handle user cancellation
     */
    private handleUserCancellation;
    /**
     * Handle generic errors
     */
    private handleGenericError;
    /**
     * Create a configuration error
     */
    static configurationError(message: string, context?: Record<string, any>): DestroyError;
    /**
     * Create a credential error
     */
    static credentialError(message: string, context?: Record<string, any>, originalError?: Error): DestroyError;
    /**
     * Create a stack state error
     */
    static stackStateError(message: string, context?: Record<string, any>): DestroyError;
    /**
     * Create a stack operation error
     */
    static stackOperationError(message: string, context?: Record<string, any>, originalError?: Error): DestroyError;
    /**
     * Create a network error
     */
    static networkError(message: string, context?: Record<string, any>, originalError?: Error): DestroyError;
    /**
     * Create a backup error
     */
    static backupError(message: string, context?: Record<string, any>, originalError?: Error): DestroyError;
    /**
     * Create a validation error
     */
    static validationError(message: string, context?: Record<string, any>): DestroyError;
    /**
     * Create a user cancellation error
     */
    static userCancellation(message?: string): DestroyError;
}
