"""
Application Layer - Use cases, commands, and orchestration.

This layer contains:
- commands/: Individual operations (CreateSubtask, UpdateDescription, etc.)
- queries/: Read-only queries
- sync/: Synchronization orchestrator
- watch: File watching for auto-sync
"""

from .ai_acceptance import (
    ACCategory,
    ACGenerationOptions,
    ACGenerationResult,
    ACGenerationSuggestion,
    ACStyle,
    AIAcceptanceCriteriaGenerator,
    GeneratedAC,
    generate_acceptance_criteria,
)
from .ai_dependency import (
    AIDependencyDetector,
    DependencyOptions,
    DependencyResult,
    DependencyStrength,
    DependencyType,
    DetectedDependency,
    StoryDependencies,
    detect_dependencies,
)
from .ai_duplicate import (
    AIDuplicateDetector,
    DuplicateOptions,
    DuplicateResult,
    DuplicateType,
    SimilarityLevel,
    SimilarityMatch,
    StoryDuplicates,
    detect_duplicates,
)
from .ai_estimate import (
    AIEstimator,
    ComplexityBreakdown,
    ComplexityFactor,
    EstimationOptions,
    EstimationResult,
    EstimationScale,
    EstimationSuggestion,
    estimate_stories,
)
from .ai_gap import (
    AIGapAnalyzer,
    CategoryAnalysis,
    GapCategory,
    GapConfidence,
    GapOptions,
    GapPriority,
    GapResult,
    IdentifiedGap,
    analyze_gaps,
)
from .ai_generate import (
    AIStoryGenerator,
    GeneratedStory,
    GenerationOptions,
    GenerationResult,
    GenerationStyle,
    generate_stories_from_description,
)
from .ai_label import (
    AILabeler,
    LabelCategory,
    LabelingOptions,
    LabelingResult,
    LabelingSuggestion,
    SuggestedLabel,
    label_stories,
)
from .ai_prompts import (
    DEFAULT_PROMPTS,
    PromptConfig,
    PromptManager,
    PromptTemplate,
    PromptType,
    PromptVariable,
    get_custom_prompt,
    get_prompt_manager,
    render_prompt,
    set_prompt_manager,
)
from .ai_quality import (
    AIQualityScorer,
    DimensionScore,
    QualityDimension,
    QualityLevel,
    QualityOptions,
    QualityResult,
    StoryQualityScore,
    score_story_quality,
)
from .ai_refine import (
    AIStoryRefiner,
    IssueCategory,
    IssueSeverity,
    QualityIssue,
    RefinementOptions,
    RefinementResult,
    StoryAnalysis,
    refine_stories,
)
from .ai_split import (
    AIStorySplitter,
    SplitOptions,
    SplitReason,
    SplitResult,
    SplitStory,
    SplitSuggestion,
    suggest_splits,
)
from .ai_sync_summary import (
    AISyncSummaryGenerator,
    SummaryOptions,
    SyncAction,
    SyncedEntity,
    SyncEntityType,
    SyncOperation,
    SyncSummary,
    generate_sync_summary,
)
from .commands import (
    AddCommentCommand,
    Command,
    CommandResult,
    CreateSubtaskCommand,
    TransitionStatusCommand,
    UpdateDescriptionCommand,
)
from .notifications import (
    DiscordNotifier,
    GenericWebhookNotifier,
    NotificationConfig,
    NotificationEvent,
    NotificationLevel,
    NotificationManager,
    NotificationProvider,
    NotificationType,
    SlackNotifier,
    TeamsNotifier,
    create_notification_manager,
)
from .scheduler import (
    CronSchedule,
    DailySchedule,
    HourlySchedule,
    IntervalSchedule,
    Schedule,
    ScheduleDisplay,
    ScheduledSyncRunner,
    ScheduleStats,
    ScheduleType,
    parse_schedule,
)
from .sync import SyncOrchestrator, SyncResult
from .watch import (
    FileChange,
    FileWatcher,
    WatchDisplay,
    WatchEvent,
    WatchOrchestrator,
    WatchStats,
)
from .webhook import (
    WebhookDisplay,
    WebhookEvent,
    WebhookEventType,
    WebhookHandler,
    WebhookParser,
    WebhookServer,
    WebhookStats,
)
from .webhook_multi import (
    AzureDevOpsWebhookParser,
    GitHubWebhookParser,
    GitLabWebhookParser,
    JiraWebhookParser,
    LinearWebhookParser,
    MultiTrackerEvent,
    MultiTrackerStats,
    MultiTrackerWebhookConfig,
    MultiTrackerWebhookServer,
    TrackerType,
    WebhookEventCategory,
    WebhookPayloadParser,
    create_multi_tracker_server,
)


__all__ = [
    "ACCategory",
    "ACGenerationOptions",
    "ACGenerationResult",
    "ACGenerationSuggestion",
    "ACStyle",
    "AIAcceptanceCriteriaGenerator",
    "AIDependencyDetector",
    "AIDuplicateDetector",
    "AIEstimator",
    "AIGapAnalyzer",
    "AILabeler",
    "AIQualityScorer",
    "AIStoryGenerator",
    "AIStoryRefiner",
    "AIStorySplitter",
    "AISyncSummaryGenerator",
    "AddCommentCommand",
    "AzureDevOpsWebhookParser",
    "CategoryAnalysis",
    "Command",
    "CommandResult",
    "ComplexityBreakdown",
    "ComplexityFactor",
    "CreateSubtaskCommand",
    "CronSchedule",
    "DailySchedule",
    "DependencyOptions",
    "DependencyResult",
    "DependencyStrength",
    "DependencyType",
    "DetectedDependency",
    "DimensionScore",
    "DiscordNotifier",
    "DuplicateOptions",
    "DuplicateResult",
    "DuplicateType",
    "EstimationOptions",
    "EstimationResult",
    "EstimationScale",
    "EstimationSuggestion",
    "FileChange",
    "FileWatcher",
    "GapCategory",
    "GapConfidence",
    "GapOptions",
    "GapPriority",
    "GapResult",
    "GeneratedAC",
    "GeneratedStory",
    "GenerationOptions",
    "GenerationResult",
    "GenerationStyle",
    "GenericWebhookNotifier",
    "GitHubWebhookParser",
    "GitLabWebhookParser",
    "GitlabSyncCommand",
    "HourlySchedule",
    "IdentifiedGap",
    "IntervalSchedule",
    "IssueCategory",
    "IssueSeverity",
    "JiraWebhookParser",
    "LabelCategory",
    "LabelingOptions",
    "LabelingResult",
    "LabelingSuggestion",
    "LinearWebhookParser",
    "MultiTrackerEvent",
    "MultiTrackerStats",
    "MultiTrackerWebhookConfig",
    "MultiTrackerWebhookServer",
    "NotificationConfig",
    "NotificationEvent",
    "NotificationLevel",
    "NotificationManager",
    "NotificationProvider",
    "NotificationType",
    "PromptConfig",
    "PromptManager",
    "PromptTemplate",
    "PromptType",
    "PromptVariable",
    "QualityDimension",
    "QualityIssue",
    "QualityLevel",
    "QualityOptions",
    "QualityResult",
    "RefinementOptions",
    "RefinementResult",
    "Schedule",
    "ScheduleDisplay",
    "ScheduleStats",
    "ScheduleType",
    "ScheduledSyncRunner",
    "SimilarityLevel",
    "SimilarityMatch",
    "SlackNotifier",
    "SplitOptions",
    "SplitReason",
    "SplitResult",
    "SplitStory",
    "SplitSuggestion",
    "StoryAnalysis",
    "StoryDependencies",
    "StoryDuplicates",
    "StoryQualityScore",
    "SuggestedLabel",
    "SummaryOptions",
    "SyncAction",
    "SyncEntityType",
    "SyncOperation",
    "SyncOrchestrator",
    "SyncResult",
    "SyncSummary",
    "SyncedEntity",
    "TeamsNotifier",
    "TrackerType",
    "TransitionStatusCommand",
    "UpdateDescriptionCommand",
    "WatchDisplay",
    "WatchEvent",
    "WatchOrchestrator",
    "WatchStats",
    "WebhookDisplay",
    "WebhookEvent",
    "WebhookEventCategory",
    "WebhookEventType",
    "WebhookHandler",
    "WebhookParser",
    "WebhookPayloadParser",
    "WebhookServer",
    "WebhookStats",
    "analyze_gaps",
    "create_multi_tracker_server",
    "create_notification_manager",
    "detect_dependencies",
    "detect_duplicates",
    "estimate_stories",
    "generate_acceptance_criteria",
    "generate_stories_from_description",
    "generate_sync_summary",
    "get_custom_prompt",
    "get_prompt_manager",
    "label_stories",
    "parse_schedule",
    "refine_stories",
    "render_prompt",
    "score_story_quality",
    "set_prompt_manager",
    "suggest_splits",
]
