import type { EnergyDataPoint } from '../../index'; import { EventBus } from '../../core/events/EventBus'; import { Logger } from "../../utils/Logger"; import { ConfigurationService } from "../ConfigurationService"; /** * Data Validation Service * * Comprehensive validation service ensuring data integrity and structure * compliance for energy flow datasets. Performs multi-level validation * including structure, content, and value range verification. * * Validation Levels: * 1. Structure Validation - Array format and basic structure checks * 2. Content Validation - Required sectors and breakdown verification * 3. Type Validation - Ensures proper data types for all values * 4. Range Validation - Warns about unusual values or potential errors * 5. Duplicate Detection - Prevents duplicate years in dataset * * Error Handling: * Throws DataValidationError with detailed context for failed validations, * including field names, indices, and descriptive error messages. * Emits validation events for service coordination and monitoring. * * Required Data Structure: * Each data point must contain all major fuel types (solar, nuclear, hydro, * wind, geothermal, gas, coal, biomass, petroleum) with consumption * breakdowns across sectors (electricity, residential, agriculture, * industrial, transportation). * * Provides comprehensive validation for energy flow datasets with * multi-level checks ensuring data integrity, proper structure, * and content completeness. Maintains strict validation rules * to prevent downstream calculation errors. */ export declare class DataValidationService { private configurationService; private eventBus; private logger; constructor(configurationService: ConfigurationService, eventBus: EventBus, logger: Logger); /** * Validate complete data array with comprehensive checks * Performs structure, content, and type validation for entire dataset * @param data - Array of energy data points to validate * @throws DataValidationError - If any validation check fails */ validateData(data: EnergyDataPoint[]): void; } //# sourceMappingURL=DataValidationService.d.ts.map