import { AnsiLogger } from 'matterbridge/logger';
import { ServiceArea } from 'matterbridge/matter/clusters';
import { MapInfo, RoomIndexMap } from '../core/application/models/index.js';
import { RoborockIoTApi } from '../roborockCommunication/api/iotClient.js';
import { RawRoomMappingData, Scene } from '../roborockCommunication/models/index.js';
import { ClientRouter } from '../roborockCommunication/routing/clientRouter.js';
import { MessageRoutingService } from './index.js';
/** Manages cleaning areas, rooms, maps, and scenes. */
export declare class AreaManagementService {
    private readonly logger;
    private readonly serviceRouting;
    private supportedAreas;
    private supportedRoutines;
    private selectedAreas;
    private supportedAreaIndexMaps;
    private iotApi;
    private messageClient;
    constructor(logger: AnsiLogger, serviceRouting: MessageRoutingService | undefined);
    setIotApi(iotApi: RoborockIoTApi): void;
    setMessageClient(messageClient: ClientRouter | undefined): void;
    setSelectedAreas(duid: string, selectedAreas: number[]): void;
    getSelectedAreas(duid: string): number[];
    setSupportedAreas(duid: string, supportedAreas: ServiceArea.Area[]): void;
    setSupportedAreaIndexMap(duid: string, indexMap: RoomIndexMap): void;
    setSupportedRoutines(duid: string, routineAsRooms: ServiceArea.Area[]): void;
    getSupportedAreas(duid: string): ServiceArea.Area[];
    getSupportedAreasIndexMap(duid: string): RoomIndexMap | undefined;
    getSupportedRoutines(duid: string): ServiceArea.Area[] | undefined;
    getMapInfo(duid: string): Promise<MapInfo>;
    getRoomMap(duid: string, activeMap: number): Promise<RawRoomMappingData>;
    getScenes(homeId: number): Promise<Scene[] | undefined>;
    startScene(sceneId: number): Promise<unknown>;
    /** Clear all area management data. */
    clearAll(): void;
}
//# sourceMappingURL=areaManagementService.d.ts.map