"""
StreamLens Data Models

This module provides the core data structures used throughout StreamLens for
representing network flows, protocol information, and decoded packet data.

The models are organized into several categories:
- Core models: FlowStats, FrameTypeStats
- Protocol models: ProtocolInfo, DecodedField, ProtocolRegistry  
- Analysis models: EnhancedAnalysisData, TimingAnalysis
- Result models: AnalysisResult, DissectionResult
"""

# Core data models
from .flow_stats import FlowStats, FrameTypeStats
from .analysis_results import AnalysisResult, DissectionResult

# Protocol models (new)
from .protocols import (
    ProtocolInfo, 
    DecodedField, 
    ProtocolRegistry,
    StandardProtocol,
    EnhancedProtocol
)

# Enhanced analysis models (refactored)
from .enhanced_analysis import (
    EnhancedAnalysisData,
    TimingAnalysis,
    QualityMetrics,
    DecodedData
)

__all__ = [
    # Core models
    'FlowStats',
    'FrameTypeStats',
    'AnalysisResult', 
    'DissectionResult',
    
    # Protocol models
    'ProtocolInfo',
    'DecodedField',
    'ProtocolRegistry',
    'StandardProtocol',
    'EnhancedProtocol',
    
    # Enhanced analysis
    'EnhancedAnalysisData',
    'TimingAnalysis',
    'QualityMetrics',
    'DecodedData'
]