import { OnModuleDestroy } from '@nestjs/common';
import { CommandBus, EventBus } from '@nestjs/cqrs';
import { Password, Username } from './common';
import { Observable } from 'rxjs';
import { UltimateGoveeConfig } from './ultimate-govee.config';
import { DeviceDiscoveredEvent } from './domain/devices/cqrs';
import { DeviceModel } from './domain';
import { ModuleRef } from '@nestjs/core';
import { ChannelToggle } from './domain/channels/channel.types';
import { DevicesService } from './domain/devices/devices.service';
import { Device } from './domain/devices/device';
export declare class UltimateGoveeService implements OnModuleDestroy {
    private readonly config;
    private readonly deviceService;
    private readonly commandBus;
    private readonly eventBus;
    private readonly channels;
    private readonly logger;
    private readonly subscriptions;
    constructor(config: UltimateGoveeConfig, deviceService: DevicesService, moduleRef: ModuleRef, commandBus: CommandBus, eventBus: EventBus);
    channel<ChannelName extends keyof ChannelToggle>(name: ChannelName): ChannelToggle[ChannelName];
    get deviceDiscovered(): Observable<DeviceDiscoveredEvent>;
    constructDevice(deviceModel: DeviceModel): Device;
    connect(username: Username, password: Password): Promise<void>;
    closeSubscriptions(): void;
    onModuleDestroy(): void;
}
//# sourceMappingURL=ultimate-govee.service.d.ts.map