# Module: Configuration Module Exports
# Purpose: Central export point for all configuration system components (loader, accessor, validators, cache).
# Dependencies: loader, accessor, validators, interpolators, context_manager

# Configuration System Module Index
# Central import point for the new configuration system

# Core configuration functionality
export use loader.nu *
export use accessor.nu *
export use accessor_generated.nu *  # Schema-driven generated accessors
export use migration.nu *

# Encryption functionality
export use encryption.nu *
export use commands.nu *

# Convenience function to get the complete configuration
# Use as: `use config; config` or `config main`
export def main [] {
    get-config
}

# Quick access to common configuration sections
export def paths [] {
    get-paths
}

export def debug [] {
    get-debug
}

export def sops [] {
    get-sops
}

export def validation [] {
    get-validation
}

# Migration helpers
export def migrate [] {
    use migration.nu show-migration-status
    show-migration-status
}

export def migrate-now [
    --dry-run = false
] {
    use migration.nu generate-user-config
    generate-user-config --dry-run $dry_run
}

# Configuration validation
export def validate [] {
    validate-current-config
}

# Initialize user configuration
export def init [] {
    init-user-config
}
