import type { Logger } from 'homebridge';
import type { RoombaPlatformConfig } from './settings.js';
export declare function getRoombas(email: string, password: string, log: Logger, config: RoombaPlatformConfig): Promise<Robot[]>;
export interface Robot {
    name: string;
    blid: string;
    sku?: string;
    password: string;
    autoConfig?: boolean;
    ip: string;
    model: string;
    multiRoom: boolean;
    softwareVer?: string;
    info: DeviceInfo;
}
export interface DeviceInfo {
    serialNum?: string;
    ver?: string;
    hostname?: string;
    robotname?: string;
    robotid?: string;
    mac?: string;
    sw: string;
    sku?: string;
    nc?: number;
    proto?: string;
    cap?: object;
}
declare module 'dorita980' {
    class RoombaLocal {
        constructor(username: string, password: string, ip: string, version?: 2 | 3, options?: object | number);
        on(event: 'connect', listener: () => void): this;
        on(event: 'reconnect', listener: () => void): this;
        on(event: 'close', listener: () => void): this;
        on(event: 'offline', listener: () => void): this;
        on(event: 'update', listener: (data: Data) => void): this;
        on(event: 'mission', listener: (data: cleanMissionStatus) => void): this;
        on(event: 'error', listener: (error: Error) => void): this;
        on(event: 'state', listener: (data: unknown) => void): this;
        removeAllListeners(event?: string | symbol): this;
        end(): void;
        getTime(): Promise<fullRobotState>;
        getBbrun(): Promise<fullRobotState>;
        getLangs(): Promise<fullRobotState>;
        getSys(): Promise<fullRobotState>;
        getWirelessLastStatus(): Promise<fullRobotState>;
        getWeek(): Promise<fullRobotState>;
        getPreferences(waitForFields?: string[]): this;
        getRobotState(waitForFields?: string[]): this;
        getMission(calwaitForFields?: string[]): this;
        getBasicMission(waitForFields?: string[]): this;
        getWirelessConfig(): Promise<fullRobotState>;
        getWirelessStatus(): Promise<fullRobotState>;
        getCloudConfig(): Promise<fullRobotState>;
        getSKU(): Promise<fullRobotState>;
        start(): Promise<{
            ok: null;
        }>;
        clean(): Promise<{
            ok: null;
        }>;
        cleanRoom(callback?: (args: any) => Promise<{
            ok: null;
        }>): this;
        pause(): Promise<{
            ok: null;
        }>;
        stop(): Promise<{
            ok: null;
        }>;
        resume(): Promise<{
            ok: null;
        }>;
        dock(): Promise<{
            ok: null;
        }>;
        find(): Promise<{
            ok: null;
        }>;
        evac(): Promise<{
            ok: null;
        }>;
        train(): Promise<{
            ok: null;
        }>;
        setWeek(callback?: (args: any) => Promise<{
            ok: null;
        }>): this;
        setPreferences(callback?: (args: any) => Promise<{
            ok: null;
        }>): this;
        setCarpetBoostAuto(): Promise<{
            ok: null;
        }>;
        setCarpetBoostPerformance(): Promise<{
            ok: null;
        }>;
        setCarpetBoostEco(): Promise<{
            ok: null;
        }>;
        setEdgeCleanOn(): Promise<{
            ok: null;
        }>;
        setEdgeCleanOff(): Promise<{
            ok: null;
        }>;
        setCleaningPassesAuto(): Promise<{
            ok: null;
        }>;
        setCleaningPassesOne(): Promise<{
            ok: null;
        }>;
        setCleaningPassesTwo(): Promise<{
            ok: null;
        }>;
        setAlwaysFinishOn(): Promise<{
            ok: null;
        }>;
        setAlwaysFinishOff(): Promise<{
            ok: null;
        }>;
    }
    interface fullRobotState {
    }
    interface cleanMissionStatus {
        cleanMissionStatus: {
            cycle: string;
            phase: string;
            expireM: number;
            rechrgM: number;
            error: number;
            notReady: number;
            mssnM: number;
            sqft: number;
            initiator: string;
            nMssn: number;
        };
        pose: {
            theta: number;
            point: {
                x: number;
                y: number;
            };
        };
    }
    interface Data {
        state: {
            reported: {
                soundVer: string;
                uiSwVer: string;
                navSwVer: string;
                wifiSwVer: string;
                mobilityVer: string;
                bootloaderVer: string;
                umiVer: string;
                softwareVer: string;
            };
        };
    }
}
//# sourceMappingURL=roomba.d.ts.map