export declare enum CleanSpeed {
    STANDARD = "Standard",
    BOOST_IQ = "Boost_IQ",
    MAX = "Max",
    NO_SUCTION = "No_suction"
}
export declare enum ErrorCode {
    NO_ERROR = "no_error",
    STUCK_5_MIN = "Stuck_5_min",
    CRASH_BAR_STUCK = "Crash_bar_stuck",
    SENSOR_DIRTY = "sensor_dirty",
    NOT_ENOUGH_POWER = "N_enough_pow",
    WHEEL_STUCK = "Wheel_stuck",
    S_BRUSH_STUCK = "S_brush_stuck",
    FAN_STUCK = "Fan_stuck",
    R_BRUSH_STUCK = "R_brush_stuck"
}
export declare enum WorkStatus {
    RUNNING = "Running",
    STAND_BY = "standby",
    SLEEPING = "Sleeping",
    CHARGING = "Charging",
    COMPLETED = "completed",
    RECHARGE_NEEDED = "Recharge"
}
export declare enum Direction {
    FORWARD = "forward",
    BACKWARD = "backward",
    LEFT = "left",
    RIGHT = "right"
}
export declare enum WorkMode {
    AUTO = "auto",
    SMALL_ROOM = "SmallRoom",
    SPOT = "Spot",
    EDGE = "Edge",
    NO_SWEEP = "Nosweep"
}
export interface StatusResponse {
    devId: string;
    dps: {
        "1": boolean;
        "2": boolean;
        "3": string;
        "5": string;
        "15": string;
        "101": boolean;
        "102": string;
        "103": boolean;
        "104": number;
        "106": string;
    };
}
export interface RoboVacConfig {
    deviceId: string;
    localKey: string;
    ip?: string;
    port?: number;
}
export declare class RoboVac {
    api: any;
    PLAY_PAUSE: string;
    DIRECTION: string;
    WORK_MODE: string;
    WORK_STATUS: string;
    GO_HOME: string;
    CLEAN_SPEED: string;
    FIND_ROBOT: string;
    BATTERY_LEVEL: string;
    ERROR_CODE: string;
    connected: boolean;
    debugLog: boolean;
    statuses: StatusResponse;
    lastStatusUpdate: number;
    maxStatusUpdateAge: number;
    timeoutDuration: number;
    constructor(config: RoboVacConfig, debugLog?: boolean, timeoutDuration?: number);
    connect(): Promise<void>;
    disconnect(): Promise<void>;
    doWork(work: () => Promise<any>): Promise<any>;
    getStatuses(force?: boolean): Promise<{
        devId: string;
        dps: {
            [key: string]: string | boolean | number;
        };
    }>;
    getCleanSpeed(force?: boolean): Promise<CleanSpeed>;
    setCleanSpeed(cleanSpeed: CleanSpeed): Promise<void>;
    getPlayPause(force?: boolean): Promise<boolean>;
    setPlayPause(state: boolean): Promise<void>;
    play(): Promise<void>;
    pause(): Promise<void>;
    getWorkMode(force?: boolean): Promise<WorkMode>;
    setWorkMode(workMode: WorkMode): Promise<void>;
    startCleaning(force?: boolean): Promise<void>;
    getWorkStatus(force?: boolean): Promise<WorkStatus>;
    setWorkStatus(workStatus: WorkStatus): Promise<void>;
    goHome(): Promise<void>;
    setFindRobot(state: boolean): Promise<any>;
    getFindRobot(force?: boolean): Promise<boolean>;
    getBatteyLevel(force?: boolean): Promise<number>;
    getErrorCode(force?: boolean): Promise<ErrorCode>;
    set(data: {
        [key: string]: string | number | boolean;
    }): Promise<any>;
    formatStatus(): void;
}
