import { MatterbridgeDynamicPlatform, PlatformConfig, PlatformMatterbridge } from 'matterbridge';
import { AnsiLogger, LogLevel } from 'matterbridge/logger';
import NodePersist from 'node-persist';
import { RoborockPluginPlatformConfig } from './model/RoborockPluginPlatformConfig.js';
import { DeviceConfigurator } from './platform/deviceConfigurator.js';
import { DeviceDiscovery } from './platform/deviceDiscovery.js';
import { DeviceRegistry } from './platform/deviceRegistry.js';
import { PlatformConfigManager } from './platform/platformConfigManager.js';
import { PlatformState } from './platform/platformState.js';
import { PlatformRunner } from './platformRunner.js';
import { RoborockService } from './services/roborockService.js';
export default function initializePlugin(matterbridge: PlatformMatterbridge, log: AnsiLogger, config: PlatformConfig): RoborockMatterbridgePlatform;
/**
 * Roborock vacuum platform for Matterbridge.
 * Orchestrates device discovery, configuration, and lifecycle management.
 */
export declare class RoborockMatterbridgePlatform extends MatterbridgeDynamicPlatform {
    config: RoborockPluginPlatformConfig;
    platformRunner: PlatformRunner;
    persist: NodePersist.LocalStorage;
    readonly registry: DeviceRegistry;
    readonly configManager: PlatformConfigManager;
    readonly discovery: DeviceDiscovery;
    readonly configurator: DeviceConfigurator;
    readonly state: PlatformState;
    private rvcInterval;
    private snackbarMessage;
    get roborockService(): RoborockService | undefined;
    set roborockService(value: RoborockService | undefined);
    get rrHomeId(): number | undefined;
    set rrHomeId(value: number | undefined);
    constructor(matterbridge: PlatformMatterbridge, logger: AnsiLogger, config: RoborockPluginPlatformConfig);
    onStart(reason?: string): Promise<void>;
    onConfigure(): Promise<void>;
    onShutdown(reason?: string): Promise<void>;
    onChangeLoggerLevel(logLevel: LogLevel): Promise<void>;
}
//# sourceMappingURL=module.d.ts.map