import type { Home } from './types/Home.ts';
import type { Event } from './types/event/Event.ts';
export type DirigeraClient = Awaited<ReturnType<typeof createDirigeraClient>>;
export type { AirPurifier } from './types/device/AirPurifier.ts';
export type { Blinds } from './types/device/Blinds.ts';
export type { Capabilities } from './types/Capabilities.ts';
export type { Controller } from './types/device/Controller.ts';
export type { Device } from './types/device/Device.ts';
export type { DeviceSet } from './types/DeviceSet.ts';
export type { EnvironmentSensor } from './types/device/EnvironmentSensor.ts';
export type { Home } from './types/Home.ts';
export type { Hub } from './types/device/Hub.ts';
export type { Light } from './types/device/Light.ts';
export type { LightSensor } from './types/device/LightSensor.ts';
export type { MotionSensor } from './types/device/MotionSensor.ts';
export type { Music } from './types/Music.ts';
export type { OccupancySensor } from './types/device/OccupancySensor.ts';
export type { OpenCloseSensor } from './types/device/OpenCloseSensor.ts';
export type { Outlet } from './types/device/Outlet.ts';
export type { Repeater } from './types/device/Repeater.ts';
export type { Room } from './types/Room.ts';
export type { Scene } from './types/Scene.ts';
export type { Speaker } from './types/device/Speaker.ts';
export type { User } from './types/User.ts';
export type { WaterSensor } from './types/device/WaterSensor.ts';
export type { Event } from './types/event/Event.ts';
export type { DeviceAddedEvent } from './types/event/DeviceAddedEvent.ts';
export type { DeviceConfigurationChangedEvent } from './types/event/DeviceConfigurationChangedEvent.ts';
export type { DeviceDiscoveredEvent } from './types/event/DeviceDiscoveredEvent.ts';
export type { DeviceRemovedEvent } from './types/event/DeviceRemovedEvent.ts';
export type { DeviceSetCreatedEvent } from './types/event/DeviceSetCreatedEvent.ts';
export type { DeviceSetDeletedEvent } from './types/event/DeviceSetDeletedEvent.ts';
export type { DeviceSetUpdatedEvent } from './types/event/DeviceSetUpdatedEvent.ts';
export type { DeviceStateChangedEvent } from './types/event/DeviceStateChangedEvent.ts';
export type { MusicUpdatedEvent } from './types/event/MusicUpdatedEvent.ts';
export type { PingEvent } from './types/event/PingEvent.ts';
export type { PongEvent } from './types/event/PongEvent.ts';
export type { RemotePressEvent } from './types/event/RemotePressEvent.ts';
export type { RoomCreatedEvent } from './types/event/RoomCreatedEvent.ts';
export type { RoomDeletedEvent } from './types/event/RoomDeletedEvent.ts';
export type { RoomUpdatedEvent } from './types/event/RoomUpdatedEvent.ts';
export type { SceneCompletedEvent } from './types/event/SceneCompletedEvent.ts';
export type { SceneCreatedEvent } from './types/event/SceneCreatedEvent.ts';
export type { SceneDeletedEvent } from './types/event/SceneDeletedEvent.ts';
export type { SceneTriggeredEvent } from './types/event/SceneTriggeredEvent.ts';
export type { SceneUpdatedEvent } from './types/event/SceneUpdatedEvent.ts';
export type { TerminationEvent } from './types/event/TerminationEvent.ts';
export declare function createDirigeraClient({ gatewayIP, accessToken, rejectUnauthorized, }?: {
    gatewayIP?: string;
    accessToken?: string;
    rejectUnauthorized?: boolean;
}): Promise<{
    authenticate({ verbose }?: {
        verbose?: boolean;
    }): Promise<string>;
    home(): Promise<Home>;
    hub: {
        status(): Promise<import("./types/device/Hub.ts").Hub>;
        checkFirmwareUpdate(): Promise<void>;
        installFirmwareUpdate(): Promise<void>;
    };
    devices: {
        list(): Promise<import("./types/device/Device.ts").Device[]>;
        get({ id }: {
            id: string;
        }): Promise<import("./types/device/Device.ts").Device>;
        setCustomName({ id, customName, }: {
            id: string;
            customName: string;
        }): Promise<void>;
        setAttributes({ id, attributes, transitionTime, }: {
            id: string;
            attributes: Partial<import("./types/device/Device.ts").Device["attributes"]>;
            transitionTime?: number;
        }): Promise<void>;
        startIdentifying({ id }: {
            id: string;
        }): Promise<void>;
        stopIdentifying({ id }: {
            id: string;
        }): Promise<void>;
    };
    lights: {
        list(): Promise<import("./types/device/Light.ts").Light[]>;
        get({ id }: {
            id: string;
        }): Promise<import("./types/device/Light.ts").Light>;
        setIsOn({ id, isOn }: {
            id: string;
            isOn: boolean;
        }): Promise<void>;
        setLightLevel({ id, lightLevel, transitionTime, }: {
            id: string;
            lightLevel: number;
            transitionTime?: number;
        }): Promise<void>;
        setLightTemperature({ id, colorTemperature, transitionTime, }: {
            id: string;
            colorTemperature: number;
            transitionTime?: number;
        }): Promise<void>;
        setLightColor({ id, colorHue, colorSaturation, transitionTime, }: {
            id: string;
            colorHue: number;
            colorSaturation: number;
            transitionTime?: number;
        }): Promise<void>;
        setStartupOnOff({ id, startupOnOff, }: {
            id: string;
            startupOnOff: import("./types/device/Light.ts").Light["attributes"]["startupOnOff"];
        }): Promise<void>;
    };
    outlets: {
        list(): Promise<import("./types/device/Outlet.ts").Outlet[]>;
        get({ id }: {
            id: string;
        }): Promise<import("./types/device/Outlet.ts").Outlet>;
        setIsOn({ id, isOn }: {
            id: string;
            isOn: boolean;
        }): Promise<void>;
        setStartupOnOff({ id, startupOnOff, }: {
            id: string;
            startupOnOff: import("./types/device/Outlet.ts").Outlet["attributes"]["startupOnOff"];
        }): Promise<void>;
        setStatusLight({ id, statusLight, }: {
            id: string;
            statusLight: import("./types/device/Outlet.ts").Outlet["attributes"]["statusLight"];
        }): Promise<void>;
        setChildLock({ id, childLock, }: {
            id: string;
            childLock: import("./types/device/Outlet.ts").Outlet["attributes"]["childLock"];
        }): Promise<void>;
        resetEnergyConsumption({ id }: {
            id: string;
        }): Promise<void>;
    };
    controllers: {
        list(): Promise<import("./types/device/Controller.ts").Controller[]>;
        get({ id }: {
            id: string;
        }): Promise<import("./types/device/Controller.ts").Controller>;
        setControlMode({ id, controlMode, }: {
            id: string;
            controlMode: import("./types/device/Controller.ts").GenericSwitch["attributes"]["controlMode"];
        }): Promise<void>;
    };
    speakers: {
        list(): Promise<import("./types/device/Speaker.ts").Speaker[]>;
        get({ id }: {
            id: string;
        }): Promise<import("./types/device/Speaker.ts").Speaker>;
        setVolume({ id, volume }: {
            id: string;
            volume: number;
        }): Promise<void>;
        setPlayback({ id, playback, }: {
            id: string;
            playback: import("./types/device/Speaker.ts").Speaker["attributes"]["playback"];
        }): Promise<void>;
    };
    blinds: {
        list(): Promise<import("./types/device/Blinds.ts").Blinds[]>;
        get({ id }: {
            id: string;
        }): Promise<import("./types/device/Blinds.ts").Blinds>;
        setTargetLevel({ id, blindsTargetLevel, }: {
            id: string;
            blindsTargetLevel: number;
        }): Promise<void>;
        setState({ id, blindsState, }: {
            id: string;
            blindsState: import("./types/device/Blinds.ts").Blinds["attributes"]["blindsState"];
        }): Promise<void>;
    };
    airPurifiers: {
        list(): Promise<import("./types/device/AirPurifier.ts").AirPurifier[]>;
        get({ id }: {
            id: string;
        }): Promise<import("./types/device/AirPurifier.ts").AirPurifier>;
        setFanMode({ id, fanMode, }: {
            id: string;
            fanMode: import("./types/device/AirPurifier.ts").AirPurifier["attributes"]["fanMode"];
        }): Promise<void>;
        setMotorState({ id, motorState, }: {
            id: string;
            motorState: import("./types/device/AirPurifier.ts").AirPurifier["attributes"]["motorState"];
        }): Promise<void>;
        setChildLock({ id, childLock, }: {
            id: string;
            childLock: import("./types/device/AirPurifier.ts").AirPurifier["attributes"]["childLock"];
        }): Promise<void>;
        setStatusLight({ id, statusLight, }: {
            id: string;
            statusLight: import("./types/device/AirPurifier.ts").AirPurifier["attributes"]["statusLight"];
        }): Promise<void>;
    };
    repeaters: {
        list(): Promise<import("./types/device/Repeater.ts").Repeater[]>;
        get({ id }: {
            id: string;
        }): Promise<import("./types/device/Repeater.ts").Repeater>;
    };
    motionSensors: {
        list(): Promise<import("./types/device/MotionSensor.ts").MotionSensor[]>;
        get({ id }: {
            id: string;
        }): Promise<import("./types/device/MotionSensor.ts").MotionSensor>;
        setOnDuration({ id, onDuration, }: {
            id: string;
            onDuration: import("./types/device/MotionSensor.ts").MotionSensor["attributes"]["sensorConfig"]["onDuration"];
        }): Promise<void>;
        setScheduleOn({ id, scheduleOn, }: {
            id: string;
            scheduleOn: import("./types/device/MotionSensor.ts").MotionSensor["attributes"]["sensorConfig"]["scheduleOn"];
        }): Promise<void>;
        setSchedule({ id, schedule, }: {
            id: string;
            schedule: import("./types/device/MotionSensor.ts").MotionSensor["attributes"]["sensorConfig"]["schedule"];
        }): Promise<void>;
    };
    occupancySensors: {
        list(): Promise<import("./types/device/OccupancySensor.ts").OccupancySensor[]>;
        get({ id }: {
            id: string;
        }): Promise<import("./types/device/OccupancySensor.ts").OccupancySensor>;
        setOnDuration({ id, onDuration, }: {
            id: string;
            onDuration: import("./types/device/OccupancySensor.ts").OccupancySensor["attributes"]["sensorConfig"]["onDuration"];
        }): Promise<void>;
        setScheduleOn({ id, scheduleOn, }: {
            id: string;
            scheduleOn: import("./types/device/OccupancySensor.ts").OccupancySensor["attributes"]["sensorConfig"]["scheduleOn"];
        }): Promise<void>;
        setSchedule({ id, schedule, }: {
            id: string;
            schedule: import("./types/device/OccupancySensor.ts").OccupancySensor["attributes"]["sensorConfig"]["schedule"];
        }): Promise<void>;
    };
    lightSensors: {
        list(): Promise<import("./types/device/LightSensor.ts").LightSensor[]>;
        get({ id }: {
            id: string;
        }): Promise<import("./types/device/LightSensor.ts").LightSensor>;
    };
    environmentSensors: {
        list(): Promise<import("./types/device/EnvironmentSensor.ts").EnvironmentSensor[]>;
        get({ id }: {
            id: string;
        }): Promise<import("./types/device/EnvironmentSensor.ts").EnvironmentSensor>;
    };
    openCloseSensors: {
        list(): Promise<import("./types/device/OpenCloseSensor.ts").OpenCloseSensor[]>;
        get({ id }: {
            id: string;
        }): Promise<import("./types/device/OpenCloseSensor.ts").OpenCloseSensor>;
    };
    waterSensors: {
        list(): Promise<import("./types/device/WaterSensor.ts").WaterSensor[]>;
        get({ id }: {
            id: string;
        }): Promise<import("./types/device/WaterSensor.ts").WaterSensor>;
    };
    deviceSets: {
        list(): Promise<import("./types/DeviceSet.ts").DeviceSet[]>;
        create({ name, icon }: Pick<import("./types/DeviceSet.ts").DeviceSet, "name" | "icon">): Promise<{
            id: string;
        }>;
        delete({ id }: {
            id: string;
        }): Promise<void>;
        update({ id, name, icon }: import("./types/DeviceSet.ts").DeviceSet): Promise<void>;
        updateConfiguration({ id, deviceIds, roomId, remoteLinkIds, }: {
            id: string;
            deviceIds: string[];
            roomId?: string;
            remoteLinkIds?: string[];
        }): Promise<void>;
        setIsOn({ id, isOn }: {
            id: string;
            isOn: boolean;
        }): Promise<void>;
        setAttributes({ id, attributes, transitionTime, }: {
            id: string;
            attributes: Partial<import("./types/device/Device.ts").Device["attributes"]>;
            transitionTime?: number;
        }): Promise<void>;
    };
    rooms: {
        list(): Promise<import("./types/Room.ts").Room[]>;
        get({ id }: {
            id: string;
        }): Promise<import("./types/Room.ts").Room>;
        create({ name, icon, color }: Pick<import("./types/Room.ts").Room, "name" | "icon" | "color">): Promise<{
            id: string;
        }>;
        delete({ id }: {
            id: string;
        }): Promise<void>;
        update({ id, name, icon, color }: import("./types/Room.ts").Room): Promise<void>;
        moveDevices({ id, deviceIds }: {
            id: string;
            deviceIds: string[];
        }): Promise<void>;
        setIsOn({ id, deviceType, isOn, }: {
            id: string;
            deviceType?: import("./types/device/Device.ts").Device["deviceType"];
            isOn: boolean;
        }): Promise<void>;
        setAttributes({ id, deviceType, attributes, transitionTime, }: {
            id: string;
            deviceType?: import("./types/device/Device.ts").Device["deviceType"];
            attributes: Partial<import("./types/device/Device.ts").Device["attributes"]>;
            transitionTime?: number;
        }): Promise<void>;
    };
    scenes: {
        list(): Promise<import("./types/Scene.ts").Scene[]>;
        get({ id }: {
            id: string;
        }): Promise<import("./types/Scene.ts").Scene>;
        trigger({ id }: {
            id: string;
        }): Promise<void>;
        undo({ id }: {
            id: string;
        }): Promise<void>;
        create({ info, type, actions, triggers, }: Pick<import("./types/Scene.ts").Scene, "info" | "type" | "actions" | "triggers">): Promise<{
            id: string;
        }>;
        delete({ id }: {
            id: string;
        }): Promise<void>;
        update({ id, info, type, actions, triggers, }: Pick<import("./types/Scene.ts").Scene, "id" | "info" | "type" | "actions" | "triggers">): Promise<void>;
    };
    music: {
        get(): Promise<import("./types/Music.ts").Music>;
    };
    users: {
        list(): Promise<import("./types/User.ts").User[]>;
        getCurrentUser(): Promise<import("./types/User.ts").User>;
        setCurrentUserName({ name }: {
            name: string;
        }): Promise<void>;
        delete({ id }: {
            id: string;
        }): Promise<void>;
    };
    startListeningForUpdates(callback: (updateEvent: Event) => void): void;
    stopListeningForUpdates(): void;
}>;
