#![deny(unsafe_code)]
#![warn(missing_docs)]
pub mod aggregation;
pub mod aggregation_rule;
pub mod classification;
pub mod conversion;
pub mod demand;
pub mod forecast;
pub mod imbalance;
pub mod interval;
pub mod lifecycle;
pub mod load_profile;
pub mod measurement_point;
pub mod measurement_series;
pub mod obis;
pub mod power_quality;
pub mod quality;
pub mod register;
pub mod resample;
pub mod resolution;
pub mod smgw;
pub mod substitute;
pub mod tariff_window;
pub mod validation;
pub mod virtual_meter;
pub use aggregation::{AggregationConfig, BillingPeriod, HtNtSplit, aggregate};
pub use aggregation_rule::AggregationRule;
pub use classification::{IntervalLengthClass, Messtyp, classify_messtyp, detect_interval_length};
pub use conversion::{GasConversionParams, gas_m3_to_kwh_hs, normalize_interval_to_kwh};
pub use demand::{DemandInterval, DemandWindow};
pub use forecast::{
AnnualForecast, ForecastMethod, SubstituteValueEntry, prior_period_substitutes,
project_annual_consumption,
};
pub use imbalance::{ImbalanceSaldo, compute_imbalance};
pub use interval::{MeterInterval, QualityFlag, Sparte};
pub use lifecycle::{
MeterExchangeEvent, MeterLifecycleEvent, MeterLifecycleEventType, MeterStatus,
};
pub use load_profile::LoadProfile;
pub use measurement_point::{EnergyFlow, MarktRolle, MeasurementPoint};
pub use measurement_series::{
MeasurementSeries, MeasurementSource, ProvenanceEntry, ProvenanceEventType,
};
pub use obis::{ObisCode, ObisParseError};
pub use power_quality::PowerQualityInterval;
pub use quality::{
QualityConfig, QualityGrade, QualityReport, hampel_filter, score_intervals,
score_intervals_f64, score_intervals_raw,
};
pub use register::{EnergyDirection, MeterRegister, RegisterUnit};
pub use resample::{ResampleConfig, ResampledBucket, resample};
pub use resolution::IntervalResolution;
pub use smgw::{
CertificateType, ClsChannel, ClsChannelStatus, ClsDeviceType, GatewayCertificate,
GatewayStatus, SmgwSession,
};
pub use substitute::{
FillGapsConfig, SubstituteMethod, SubstitutionReason, fill_gaps, fill_gaps_with_config,
linear_interpolation,
};
pub use tariff_window::{HtNtSchedule, TariffWindow, TariffWindowDays};
pub use validation::{
ValidationConfig, ValidationIssue, ValidationResult, ValidationRuleId, ValidationSeverity,
validate_intervals,
};
pub use virtual_meter::{VirtualMeterError, compute_virtual_meter};