/**
 * External Issue Fetcher Port Interface
 *
 * Output port for fetching issues/tickets from external systems (GitHub, Jira).
 * Returns a normalized ExternalIssue that can be appended to feature context.
 *
 * Following Clean Architecture:
 * - Application layer depends on this interface
 * - Infrastructure layer provides concrete implementations
 */
/**
 * Base error for issue fetcher failures.
 */
export class IssueFetcherError extends Error {
    constructor(message) {
        super(message);
        this.name = 'IssueFetcherError';
    }
}
/**
 * Thrown when the requested issue/ticket is not found.
 */
export class IssueNotFoundError extends IssueFetcherError {
    constructor(message) {
        super(message);
        this.name = 'IssueNotFoundError';
    }
}
/**
 * Thrown when authentication to the external service fails.
 */
export class IssueAuthenticationError extends IssueFetcherError {
    constructor(message) {
        super(message);
        this.name = 'IssueAuthenticationError';
    }
}
/**
 * Thrown when the external service is unavailable (e.g., gh CLI not installed).
 */
export class IssueServiceUnavailableError extends IssueFetcherError {
    constructor(message) {
        super(message);
        this.name = 'IssueServiceUnavailableError';
    }
}
