"""Centralized constants module for xpcsviewer.

This module provides application-wide constants organized by domain:
- thresholds: Numeric comparison thresholds
- timeouts: Time-related constants
- limits: Size/count limits
- defaults: Default configuration values

Usage:
    from xpcsviewer.constants import MIN_Q_VALUE, MAX_CACHE_SIZE_MB
    from xpcsviewer.constants.timeouts import FILE_LOAD_TIMEOUT
"""

from xpcsviewer.constants.defaults import (
    DEFAULT_COLORMAP,
    DEFAULT_LOG_LEVEL,
    DEFAULT_THEME,
    DEFAULT_WINDOW_HEIGHT,
    DEFAULT_WINDOW_WIDTH,
)
from xpcsviewer.constants.fitting import (
    BATCH_SIZE_LARGE,
    BATCH_SIZE_SMALL,
    DOUBLE_EXP_PARAMS,
    FFT_DEFAULT_SIZE,
    MAX_PARALLEL_WORKERS,
    MAX_RETRY_ATTEMPTS,
    MEMORY_EFFICIENCY_HIGH,
    MEMORY_EFFICIENCY_LOW,
    MEMORY_EFFICIENCY_MEDIUM,
    MIN_PARALLEL_BATCH,
    PARALLEL_FITTING_THRESHOLD,
    SINGLE_EXP_PARAMS,
    WORKER_THRESHOLD_LARGE,
    WORKER_THRESHOLD_MEDIUM,
)
from xpcsviewer.constants.limits import (
    CRITICAL_MEMORY_THRESHOLD_MB,
    DIRECT_READ_LIMIT_MB,
    LARGE_DATASET_THRESHOLD_MB,
    MAX_CACHE_SIZE_MB,
    MAX_FILES_IN_LIST,
    MAX_HISTORY_ENTRIES,
    MAX_LEGEND_ITEMS,
    MAX_PLOT_POINTS,
    MAX_RECENT_PATHS,
    MAX_THREAD_POOL_SIZE,
    MEMORY_CLEANUP_TIMEOUT_S,
    MEMORY_WARNING_THRESHOLD_MB,
    MIN_AVERAGING_FILES,
    MIN_CACHE_ENTRIES,
    MIN_DISPLAY_POINTS,
    MIN_DOWNSAMPLE_POINTS,
    MIN_HISTORY_SAMPLES,
    MIN_LEARNING_SAMPLES,
    NDIM_2D,
    NDIM_3D,
    POINTS_THRESHOLD_HIGH,
    POINTS_THRESHOLD_MEDIUM,
    STREAMING_CHUNK_SIZE_MB,
)
from xpcsviewer.constants.thresholds import (
    DECIMATION_FACTOR_THRESHOLD,
    G2_CONVERGENCE_THRESHOLD,
    INTENSITY_FLOOR,
    LOW_CONFIDENCE_THRESHOLD,
    MAX_DECIMATION_DIM,
    MAX_Q_VALUE,
    MEMORY_PRESSURE_CRITICAL,
    MEMORY_PRESSURE_HIGH,
    MEMORY_PRESSURE_MODERATE,
    MIN_DECIMATION_DIM,
    MIN_FRAMES,
    MIN_Q_POINTS,
    MIN_Q_VALUE,
)
from xpcsviewer.constants.timeouts import (
    CACHE_CLEANUP_INTERVAL,
    CACHE_ENTRY_TIMEOUT,
    CACHE_LONG_EXPIRY,
    FILE_LOAD_TIMEOUT,
    HDF5_CONNECTION_TIMEOUT,
    PLOT_RENDER_TIMEOUT,
    PROGRESS_DIALOG_DELAY,
)

__all__ = [
    "BATCH_SIZE_LARGE",
    "BATCH_SIZE_SMALL",
    "CACHE_CLEANUP_INTERVAL",
    "CACHE_ENTRY_TIMEOUT",
    "CACHE_LONG_EXPIRY",
    "CRITICAL_MEMORY_THRESHOLD_MB",
    "DECIMATION_FACTOR_THRESHOLD",
    "DEFAULT_COLORMAP",
    "DEFAULT_LOG_LEVEL",
    "DEFAULT_THEME",
    "DEFAULT_WINDOW_HEIGHT",
    "DEFAULT_WINDOW_WIDTH",
    "DIRECT_READ_LIMIT_MB",
    "DOUBLE_EXP_PARAMS",
    "FFT_DEFAULT_SIZE",
    "FILE_LOAD_TIMEOUT",
    "G2_CONVERGENCE_THRESHOLD",
    "HDF5_CONNECTION_TIMEOUT",
    "INTENSITY_FLOOR",
    "LARGE_DATASET_THRESHOLD_MB",
    "LOW_CONFIDENCE_THRESHOLD",
    "MAX_CACHE_SIZE_MB",
    "MAX_DECIMATION_DIM",
    "MAX_FILES_IN_LIST",
    "MAX_HISTORY_ENTRIES",
    "MAX_LEGEND_ITEMS",
    "MAX_PARALLEL_WORKERS",
    "MAX_PLOT_POINTS",
    "MAX_Q_VALUE",
    "MAX_RECENT_PATHS",
    "MAX_RETRY_ATTEMPTS",
    "MAX_THREAD_POOL_SIZE",
    "MEMORY_EFFICIENCY_HIGH",
    "MEMORY_EFFICIENCY_LOW",
    "MEMORY_EFFICIENCY_MEDIUM",
    "MEMORY_PRESSURE_CRITICAL",
    "MEMORY_PRESSURE_HIGH",
    "MEMORY_PRESSURE_MODERATE",
    "MEMORY_WARNING_THRESHOLD_MB",
    "MIN_CACHE_ENTRIES",
    "MIN_DECIMATION_DIM",
    "MIN_DISPLAY_POINTS",
    "MIN_DOWNSAMPLE_POINTS",
    "MIN_FRAMES",
    "MIN_HISTORY_SAMPLES",
    "MIN_LEARNING_SAMPLES",
    "MIN_PARALLEL_BATCH",
    "MIN_Q_POINTS",
    "MIN_Q_VALUE",
    "NDIM_2D",
    "NDIM_3D",
    "PARALLEL_FITTING_THRESHOLD",
    "PLOT_RENDER_TIMEOUT",
    "POINTS_THRESHOLD_HIGH",
    "POINTS_THRESHOLD_MEDIUM",
    "PROGRESS_DIALOG_DELAY",
    "SINGLE_EXP_PARAMS",
    "STREAMING_CHUNK_SIZE_MB",
    "WORKER_THRESHOLD_LARGE",
    "WORKER_THRESHOLD_MEDIUM",
]
