/**
 * Configuration validation and sanitization for Pentair Platform
 */
import { PlatformConfig } from 'homebridge';
import { TemperatureUnits } from './types';
export interface ValidationResult {
    isValid: boolean;
    errors: string[];
    warnings: string[];
    sanitizedConfig?: PentairConfig;
}
export interface TemperatureUnitValidationResult {
    isConsistent: boolean;
    detectedUnit: TemperatureUnits | null;
    configuredUnit: TemperatureUnits;
    analysisCount: number;
    warning?: string;
}
export type PentairConfig = {
    ipAddress: string;
    username: string;
    password: string;
    maxBufferSize: number;
    temperatureUnits: TemperatureUnits;
    minimumTemperature: number;
    maximumTemperature: number;
    supportVSP: boolean;
    airTemp: boolean;
    includeAllCircuits?: boolean;
} & PlatformConfig;
export declare class ConfigValidator {
    private static validateRequiredFields;
    private static setDummyCredentials;
    private static validateRequiredIpAddress;
    private static validateRequiredUsername;
    private static validateRequiredPassword;
    private static validateTemperatureUnits;
    private static validateTemperatureRangeConfig;
    private static validateOptionalFields;
    private static validateBufferSizeConfig;
    private static performSecurityChecks;
    private static finalizeSanitizedConfig;
    static validate(config: PlatformConfig): ValidationResult;
    private static validateIpAddress;
    private static validateUsername;
    private static validatePassword;
    private static parseTemperatureValue;
    private static validateTemperatureBounds;
    private static validateTemperatureRange;
    private static validateBoolean;
    private static validateBufferSize;
    private static isPrivateNetwork;
    private static sanitizeInput;
    /**
     * Runtime validation of temperature unit consistency with IntelliCenter
     * Analyzes temperature readings to detect if they match the configured units
     */
    static validateTemperatureUnitConsistency(temperatureReadings: number[], configuredUnit: TemperatureUnits): TemperatureUnitValidationResult;
    private static processValidTemperatureReadings;
    private static validateDetectedTemperatureUnit;
    private static filterValidTemperatureReadings;
    private static calculateTemperatureStats;
    private static detectTemperatureUnit;
    private static tryDetectFahrenheit;
    private static tryDetectCelsius;
    private static isWithinTemperatureRanges;
    private static createValidationResult;
    private static createInconsistentResult;
    /**
     * Calculate confidence level for temperature unit detection
     */
    private static calculateConfidence;
    private static getConfidenceRanges;
    private static determineConfidenceLevel;
}
//# sourceMappingURL=configValidation.d.ts.map