"use strict";
/**
 * CLI-specific type definitions with enhanced dependency injection and progress callback support
 */
Object.defineProperty(exports, "__esModule", { value: true });
exports.FileError = exports.ValidationError = exports.CLIError = void 0;
// CLI-specific error types
class CLIError extends Error {
    exitCode;
    showHelp;
    constructor(message, exitCode = 1, showHelp = false) {
        super(message);
        this.exitCode = exitCode;
        this.showHelp = showHelp;
        this.name = 'CLIError';
    }
}
exports.CLIError = CLIError;
class ValidationError extends CLIError {
    constructor(message) {
        super(message, 1, true);
        this.name = 'ValidationError';
    }
}
exports.ValidationError = ValidationError;
class FileError extends CLIError {
    filePath;
    constructor(message, filePath) {
        super(message, 1, false);
        this.filePath = filePath;
        this.name = 'FileError';
    }
}
exports.FileError = FileError;
//# sourceMappingURL=types.js.map