import { OnModuleDestroy } from '@nestjs/common';
import { EventBus, IEventHandler } from '@nestjs/cqrs';
import { Subject } from 'rxjs';
import { IoTData, IoTService } from '../../../data';
import { DeviceRefeshEvent } from '../../devices/cqrs/events/device-refresh.event';
import { DeviceStateCommandEvent } from '../../devices/cqrs/events/device-state-command.event';
import { ChannelService } from '../channel.service';
import { CommandExpiredEvent } from '../../devices/cqrs/events/command-expired.event';
export declare class IoTChannelService extends ChannelService<IoTData, true> implements OnModuleDestroy, IEventHandler<DeviceRefeshEvent>, IEventHandler<DeviceStateCommandEvent>, IEventHandler<CommandExpiredEvent> {
    private readonly iot;
    readonly togglable: true;
    readonly name: 'iot';
    readonly expiredCommands: string[];
    readonly refreshDevice$: Subject<DeviceRefeshEvent>;
    constructor(enabled: boolean, iot: IoTService, eventBus: EventBus);
    handle(event: DeviceRefeshEvent | DeviceStateCommandEvent | CommandExpiredEvent): Promise<void>;
    disconnect(): Promise<void>;
    connect(iotData: IoTData, deviceIds?: string[]): Promise<void>;
    publishMessage(commandId: string, topic: string, payload: object, debug?: boolean): Promise<void>;
    onModuleDestroy(): Promise<void>;
}
//# sourceMappingURL=iot-channel.service.d.ts.map