import { Status } from "../../DataFrame"; import { IDIService } from "../../IDIService"; import { ITypedEvent } from "../../TypedEvent"; import { DeviceUsedInScenes } from "./DevicesService"; import { DeviceTasksInfo, IDevice, ManuallyPairedDevice } from './IDevice'; import { IDeviceChannel } from "./IDeviceChannel"; import { IDeviceState, IDeviceStateData } from './IDeviceState'; import { IDeviceTask } from "./IDeviceTask"; import { DeviceTaskExecutionResult } from './TaskExecutionResult'; export interface IDevicesService extends IDIService { OnDeviceStateChangedEvent(): ITypedEvent<{ Device: IDevice; State: IDeviceState; }>; OnDeviceStateRefreshedOrChangedEvent(): ITypedEvent<{ Device: IDevice; State: IDeviceState; }>; OnDeviceRegisteredEvent(): ITypedEvent; OnDeviceRemovedEvent(): ITypedEvent; OnDeviceFoundEvent(): ITypedEvent; OnDevicesTasksExecutionChangeEvent(): ITypedEvent; CanDisplaySceneDevices(): boolean; CanEditDevicesInfo(): boolean; CanAddAndRemoveAndConfigureDevices(): boolean; GetDeviceChannelByChannelId(channelId: string): IDeviceChannel | null; GetDevicesAsync(): Promise; GetDevicesAsync(withScenes: boolean): Promise; SyncDevicesStatesAsync(forceSlow?: boolean): Promise; GetDevice(guid: string): IDevice | undefined; FindDevicesAsync(): Promise; GetFoundDevicesAsync(): Promise; StopSearchingForDevices(): Promise; RegisterDeviceAsync(device: IDevice): Promise; RemoveDeviceAsync(device: IDevice, force?: boolean): Promise; ExecuteDeviceTaskAsync(device: IDevice, task: IDeviceTask): Promise; WaitForSynchronizationAsync(): Promise; WaitForDevicesStatesSynchronizationAsync(): Promise; ExecuteDevicesTasksAsync(tasks: [Device: IDevice, Task: IDeviceTask][]): Promise; GetDevicesForManualPairingAsync(protocolExtensionGuids?: string[]): Promise; GetDevicesForManualPairingAsync(protocolExtensionGuid?: string): Promise; AddManuallyPairedDevice(device: ManuallyPairedDevice): Promise; CheckIfDeviceUsedInScenesAsync(deviceGuid: string): Promise; CheckIfDeviceUsedInScenesAsync(device: IDevice): Promise; EnableFastStatesSyncAsync(): Promise; DisableFastStatesSyncAsync(): Promise; IsFastStatesSyncEnabledAsync(): Promise; ProtocolGuidToProtocolName(guid: string): string | null; } export declare class DeviceTaskPairExecutionResult { Device: IDevice | null; Channel: number; Task: IDeviceTask | null; Result: DeviceTaskExecutionResult; }