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