/**
 * External Issue Adapter Module
 *
 * Shared contract for normalizing external issues (Linear, Jira, Asana) into
 * a canonical IssueEnvelope format with deterministic spawn context mapping.
 */
// Types and interfaces
export { ISSUE_SOURCES, ExternalIssueError, ExternalIssueAdapterError, toNormalizedEnvelope, } from './types.js';
// Validation
export { validateIssueEnvelope, validateOrThrow, } from './validation.js';
// Mapper
export { mapToSpawnContext, } from './mapper.js';
// Adapters
export { LinearIssueAdapter, JiraIssueAdapter, AsanaIssueAdapter, ShortcutIssueAdapter, } from './adapters.js';
// Mapping store
export { ExternalExecutionMappingStore } from './mapping-store.js';
// Source helpers
export { normalizeJiraIssue, normalizeJiraIssueToEnvelope, buildJiraTicketDescription, buildJiraMetadata, buildJiraSpawnContextMessage, getJiraIssueByKey, isJiraConfigured, getJiraProjectKey, importJiraIssueToPmo, } from './jira.js';
// Linear helpers
export { normalizeLinearIssue, normalizeLinearIssueToEnvelope, buildLinearTicketDescription, buildLinearMetadata, buildLinearSpawnContextMessage, buildLinearIssueChoiceCommand, getLinearIssueByIdentifier, listLinearIssues, } from './linear.js';
// Asana helpers
export { normalizeAsanaTask, normalizeAsanaTaskToEnvelope, buildAsanaTicketDescription, buildAsanaMetadata, buildAsanaSpawnContextMessage, buildAsanaTaskChoiceCommand, getAsanaTaskByGid, listAsanaTasks, importAsanaTaskToPmo, } from './asana.js';
// Shortcut helpers
export { normalizeShortcutStory, normalizeShortcutStoryToEnvelope, buildShortcutTicketDescription, buildShortcutMetadata, buildShortcutSpawnContextMessage, buildShortcutStoryChoiceCommand, getShortcutStoryByKey, listShortcutStories, importShortcutStoryToPmo, } from './shortcut.js';
export { resolveMirrorToPmo, } from './work-start.js';
// Outbound sync
export { OutboundSyncHandler, initOutboundSync, stopOutboundSync, } from './outbound-sync.js';
//# sourceMappingURL=index.js.map