/**
 * Platform configuration manager.
 * Provides validation, defaults, and device allow/deny checks using whiteList/blackList.
 */
import type { AnsiLogger } from 'matterbridge/logger';
import { AdvancedFeatureSetting, CleanModeSettings, EmailNotificationSettings, MatterOverrideSettings, RoborockPluginPlatformConfig } from '../model/RoborockPluginPlatformConfig.js';
/**
 * Manages platform configuration with validation and defaults.
 */
export declare class PlatformConfigManager {
    private readonly config;
    private readonly log;
    private constructor();
    /**
     * Create a PlatformConfigManager with defaults applied.
     */
    static create(config: RoborockPluginPlatformConfig, log: AnsiLogger): PlatformConfigManager;
    validateConfig(): boolean;
    /**
     * Validate authentication configuration.
     * Returns true if authentication can proceed.
     */
    validateAuthentication(): boolean;
    get alwaysExecuteAuthentication(): boolean;
    get username(): string;
    get password(): string;
    get verificationCode(): string;
    get authenticationMethod(): 'VerificationCode' | 'Password';
    get region(): string;
    get rawConfig(): RoborockPluginPlatformConfig;
    get refreshInterval(): number;
    get hasWhiteListConfig(): boolean;
    get unregisterOnShutdown(): boolean;
    get isServerModeEnabled(): boolean;
    get isMultipleMapEnabled(): boolean;
    get isAdvancedFeatureEnabled(): boolean;
    get isClearStorageOnStartupEnabled(): boolean;
    get isCustomCleanModeMappingEnabled(): boolean;
    get advancedFeatureSettings(): AdvancedFeatureSetting;
    get cleanModeSettings(): CleanModeSettings;
    get showRoutinesAsRoom(): boolean;
    get forceRunAtDefault(): boolean;
    get includeDockStationStatus(): boolean;
    get includeVacuumErrorStatus(): boolean;
    get useVacationModeToSendVacuumToDock(): boolean;
    get overrideMatterConfiguration(): boolean;
    get matterOverrideSettings(): MatterOverrideSettings;
    getProductNameForDevice(serialNumber: string): string | undefined;
    ensureDeviceProductNameEntry(serialNumber: string, defaultProductName: string): boolean;
    get isEmailNotificationEnabled(): boolean;
    get emailNotificationSettings(): EmailNotificationSettings | undefined;
    isDeviceAllowed(device: {
        duid?: string;
    }): boolean;
}
//# sourceMappingURL=platformConfigManager.d.ts.map