import type { MacAddress, SwitchBotBLEModel, SwitchBotBLEModelFriendlyName, SwitchBotBLEModelName } from '../device.js';
export interface switchbot {
    discover: (arg0: {
        duration?: any;
        model: string;
        quick: boolean;
        id?: MacAddress;
    }) => Promise<any>;
    wait: (arg0: number) => any;
}
interface serviceData {
    model: SwitchBotBLEModel;
    modelName: SwitchBotBLEModelName;
    modelFriendlyName: SwitchBotBLEModelFriendlyName;
}
export type botServiceData = serviceData & {
    model: SwitchBotBLEModel.Bot;
    modelName: SwitchBotBLEModelName.Bot;
    modelFriendlyName: SwitchBotBLEModelFriendlyName.Bot;
    mode: boolean;
    state: boolean;
    battery: number;
};
export type colorBulbServiceData = serviceData & {
    model: SwitchBotBLEModel.ColorBulb;
    modelName: SwitchBotBLEModelName.ColorBulb;
    modelFriendlyName: SwitchBotBLEModelFriendlyName.ColorBulb;
    color_temperature: number;
    power: boolean;
    state: boolean;
    red: number;
    green: number;
    blue: number;
    brightness: number;
    delay: number;
    preset: number;
    color_mode: number;
    speed: number;
    loop_index: number;
};
export type contactSensorServiceData = serviceData & {
    model: SwitchBotBLEModel.ContactSensor;
    modelName: SwitchBotBLEModelName.ContactSensor;
    modelFriendlyName: SwitchBotBLEModelFriendlyName.ContactSensor;
    movement: boolean;
    tested: boolean;
    battery: number;
    contact_open: boolean;
    contact_timeout: boolean;
    lightLevel: string;
    button_count: number;
    doorState: string;
};
export type curtainServiceData = serviceData & {
    model: SwitchBotBLEModel.Curtain;
    modelName: SwitchBotBLEModelName.Curtain;
    modelFriendlyName: SwitchBotBLEModelFriendlyName.Curtain;
    calibration: boolean;
    battery: number;
    inMotion: boolean;
    position: number;
    lightLevel: number;
    deviceChain: number;
};
export type curtain3ServiceData = serviceData & {
    model: SwitchBotBLEModel.Curtain3;
    modelName: SwitchBotBLEModelName.Curtain3;
    modelFriendlyName: SwitchBotBLEModelFriendlyName.Curtain3;
    calibration: boolean;
    battery: number;
    inMotion: boolean;
    position: number;
    lightLevel: number;
    deviceChain: number;
};
export type stripLightServiceData = serviceData & {
    model: SwitchBotBLEModel.StripLight;
    modelName: SwitchBotBLEModelName.StripLight;
    modelFriendlyName: SwitchBotBLEModelFriendlyName.StripLight;
    power: boolean;
    state: boolean;
    red: number;
    green: number;
    blue: number;
    brightness: number;
    delay: number;
    preset: number;
    color_mode: number;
    speed: number;
    loop_index: number;
};
export type lockServiceData = serviceData & {
    model: SwitchBotBLEModel.Lock;
    modelName: SwitchBotBLEModelName.Lock;
    modelFriendlyName: SwitchBotBLEModelFriendlyName.Lock;
    battery: number;
    calibration: boolean;
    status: string;
    update_from_secondary_lock: boolean;
    door_open: boolean;
    double_lock_mode: boolean;
    unclosed_alarm: boolean;
    unlocked_alarm: boolean;
    auto_lock_paused: boolean;
    night_latch: boolean;
};
export type lockProServiceData = serviceData & {
    model: SwitchBotBLEModel.LockPro;
    modelName: SwitchBotBLEModelName.LockPro;
    modelFriendlyName: SwitchBotBLEModelFriendlyName.LockPro;
    battery: number;
    calibration: boolean;
    status: string;
    update_from_secondary_lock: boolean;
    door_open: boolean;
    double_lock_mode: boolean;
    unclosed_alarm: boolean;
    unlocked_alarm: boolean;
    auto_lock_paused: boolean;
    night_latch: boolean;
};
export type meterServiceData = serviceData & {
    model: SwitchBotBLEModel.Meter;
    modelName: SwitchBotBLEModelName.Meter;
    modelFriendlyName: SwitchBotBLEModelFriendlyName.Meter;
    celsius: number;
    fahrenheit: number;
    fahrenheit_mode: boolean;
    humidity: number;
    battery: number;
};
export type meterPlusServiceData = serviceData & {
    model: SwitchBotBLEModel.MeterPlus;
    modelName: SwitchBotBLEModelName.MeterPlus;
    modelFriendlyName: SwitchBotBLEModelFriendlyName.MeterPlus;
    celsius: number;
    fahrenheit: number;
    fahrenheit_mode: boolean;
    humidity: number;
    battery: number;
};
export type meterProServiceData = serviceData & {
    model: SwitchBotBLEModel.MeterPro;
    modelName: SwitchBotBLEModelName.MeterPro;
    modelFriendlyName: SwitchBotBLEModelFriendlyName.MeterPro;
    celsius: number;
    fahrenheit: number;
    fahrenheit_mode: boolean;
    humidity: number;
    battery: number;
};
export type meterProCO2ServiceData = serviceData & {
    model: SwitchBotBLEModel.MeterProCO2;
    modelName: SwitchBotBLEModelName.MeterProCO2;
    modelFriendlyName: SwitchBotBLEModelFriendlyName.MeterProCO2;
    celsius: number;
    fahrenheit: number;
    fahrenheit_mode: boolean;
    humidity: number;
    battery: number;
    co2: number;
};
export type outdoorMeterServiceData = serviceData & {
    model: SwitchBotBLEModel.OutdoorMeter;
    modelName: SwitchBotBLEModelName.OutdoorMeter;
    modelFriendlyName: SwitchBotBLEModelFriendlyName.OutdoorMeter;
    celsius: number;
    fahrenheit: number;
    fahrenheit_mode: boolean;
    humidity: number;
    battery: number;
};
export type motionSensorServiceData = serviceData & {
    model: SwitchBotBLEModel.MotionSensor;
    modelName: SwitchBotBLEModelName.MotionSensor;
    modelFriendlyName: SwitchBotBLEModelFriendlyName.MotionSensor;
    tested: boolean;
    movement: boolean;
    battery: number;
    led: number;
    iot: number;
    sense_distance: number;
    lightLevel: string;
    is_light: boolean;
};
export type plugMiniUSServiceData = serviceData & {
    model: SwitchBotBLEModel.PlugMiniUS;
    modelName: SwitchBotBLEModelName.PlugMini;
    modelFriendlyName: SwitchBotBLEModelFriendlyName.PlugMini;
    state: string;
    delay: boolean;
    timer: boolean;
    syncUtcTime: boolean;
    wifiRssi: number;
    overload: boolean;
    currentPower: number;
};
export type plugMiniJPServiceData = serviceData & {
    model: SwitchBotBLEModel.PlugMiniJP;
    modelName: SwitchBotBLEModelName.PlugMini;
    modelFriendlyName: SwitchBotBLEModelFriendlyName.PlugMini;
    state: string;
    delay: boolean;
    timer: boolean;
    syncUtcTime: boolean;
    wifiRssi: number;
    overload: boolean;
    currentPower: number;
};
export type blindTiltServiceData = serviceData & {
    model: SwitchBotBLEModel.BlindTilt;
    modelName: SwitchBotBLEModelName.BlindTilt;
    modelFriendlyName: SwitchBotBLEModelFriendlyName.BlindTilt;
    calibration: boolean;
    battery: number;
    inMotion: boolean;
    tilt: number;
    lightLevel: number;
    sequenceNumber: number;
};
export type ceilingLightServiceData = serviceData & {
    model: SwitchBotBLEModel.CeilingLight;
    modelName: SwitchBotBLEModelName.CeilingLight;
    modelFriendlyName: SwitchBotBLEModelFriendlyName.CeilingLight;
    color_temperature: number;
    power: boolean;
    state: boolean;
    red: number;
    green: number;
    blue: number;
    brightness: number;
    delay: number;
    preset: number;
    color_mode: number;
    speed: number;
    loop_index: number;
};
export type ceilingLightProServiceData = serviceData & {
    model: SwitchBotBLEModel.CeilingLightPro;
    modelName: SwitchBotBLEModelName.CeilingLightPro;
    modelFriendlyName: SwitchBotBLEModelFriendlyName.CeilingLightPro;
    color_temperature: number;
    power: boolean;
    state: boolean;
    red: number;
    green: number;
    blue: number;
    brightness: number;
    delay: number;
    preset: number;
    color_mode: number;
    speed: number;
    loop_index: number;
};
export type hub2ServiceData = serviceData & {
    model: SwitchBotBLEModel.Hub2;
    modelName: SwitchBotBLEModelName.Hub2;
    modelFriendlyName: SwitchBotBLEModelFriendlyName.Hub2;
    celsius: number;
    fahrenheit: number;
    fahrenheit_mode: boolean;
    humidity: number;
    lightLevel: number;
};
export type batteryCirculatorFanServiceData = serviceData & {
    model: SwitchBotBLEModel.Unknown;
    modelName: SwitchBotBLEModelName.Unknown;
    modelFriendlyName: SwitchBotBLEModelFriendlyName.Unknown;
    state: string;
    fanSpeed: number;
};
export type waterLeakDetectorServiceData = serviceData & {
    model: SwitchBotBLEModel.Leak;
    modelName: SwitchBotBLEModelName.Leak;
    modelFriendlyName: SwitchBotBLEModelFriendlyName.Leak;
    leak: boolean;
    tampered: boolean;
    battery: number;
    low_battery: boolean;
};
export type humidifierServiceData = serviceData & {
    model: SwitchBotBLEModel.Humidifier;
    modelName: SwitchBotBLEModelName.Humidifier;
    modelFriendlyName: SwitchBotBLEModelFriendlyName.Humidifier;
    onState: boolean;
    autoMode: boolean;
    percentage: number;
    humidity: number;
};
export type humidifier2ServiceData = serviceData & {
    model: SwitchBotBLEModel.Humidifier2;
    modelName: SwitchBotBLEModelName.Humidifier2;
    modelFriendlyName: SwitchBotBLEModelFriendlyName.Humidifier2;
    onState: boolean;
    autoMode: boolean;
    percentage: number;
    humidity: number;
    childLock: boolean;
    overHumidifyProtection: boolean;
    tankRemoved: boolean;
    tiltedAlert: boolean;
    filterMissing: boolean;
    temperature: number;
    filterRunTime: number;
    filterAlert: boolean;
    waterLevel: number;
};
export type robotVacuumCleanerServiceData = serviceData & {
    model: SwitchBotBLEModel.Unknown;
    modelName: SwitchBotBLEModelName.Unknown;
    modelFriendlyName: SwitchBotBLEModelFriendlyName.Unknown;
    state: string;
    battery: number;
};
export type keypadDetectorServiceData = serviceData & {
    model: SwitchBotBLEModel.Keypad;
    modelName: SwitchBotBLEModelName.Keypad;
    modelFriendlyName: SwitchBotBLEModelFriendlyName.Keypad;
    event: boolean;
    tampered: boolean;
    battery: number;
    low_battery: boolean;
};
export type relaySwitch1ServiceData = serviceData & {
    model: SwitchBotBLEModel.RelaySwitch1;
    modelName: SwitchBotBLEModelName.RelaySwitch1;
    modelFriendlyName: SwitchBotBLEModelFriendlyName.RelaySwitch1;
    mode: boolean;
    state: boolean;
    sequence_number: number;
};
export type relaySwitch1PMServiceData = serviceData & {
    model: SwitchBotBLEModel.RelaySwitch1PM;
    modelName: SwitchBotBLEModelName.RelaySwitch1PM;
    modelFriendlyName: SwitchBotBLEModelFriendlyName.RelaySwitch1PM;
    mode: boolean;
    state: boolean;
    sequence_number: number;
    power: number;
    voltage: number;
    current: number;
};
export type remoteServiceData = serviceData & {
    model: SwitchBotBLEModel.Remote;
    modelName: SwitchBotBLEModelName.Remote;
    modelFriendlyName: SwitchBotBLEModelFriendlyName.Remote;
    battery: number;
};
export {};
//# sourceMappingURL=bledevicestatus.d.ts.map