"use strict";
/**
 * Clone URL Registration Types
 * Issue #71: Clone URL registration feature
 */
Object.defineProperty(exports, "__esModule", { value: true });
exports.isCloneJobStatus = isCloneJobStatus;
exports.isCloneError = isCloneError;
exports.isValidationError = isValidationError;
// Type guards
/**
 * Check if value is a valid CloneJobStatus
 */
function isCloneJobStatus(value) {
    return (typeof value === 'string' &&
        ['pending', 'running', 'completed', 'failed', 'cancelled'].includes(value));
}
/**
 * Check if value is a valid CloneError
 */
function isCloneError(value) {
    if (!value || typeof value !== 'object') {
        return false;
    }
    const obj = value;
    const validCategories = ['validation', 'network', 'auth', 'filesystem', 'git', 'system'];
    return (typeof obj.category === 'string' &&
        validCategories.includes(obj.category) &&
        typeof obj.code === 'string' &&
        typeof obj.message === 'string' &&
        typeof obj.recoverable === 'boolean' &&
        typeof obj.suggestedAction === 'string');
}
/**
 * Check if error is a validation error
 */
function isValidationError(error) {
    return error.category === 'validation';
}
