import { DatapointState, Device, DeviceControlResponse, DeviceStatus, DeviceTypeId, LocalDatapoint, SimulationDeviceTypeId, SimulationSpec } from "jm-castle-ac-dc-types"; import { DatacollectorPart } from "../engines/data-collector/Types.mjs"; import { EngineContextConsumer } from "../engines/Types.mjs"; import { DeviceInstance } from "./DeviceInstance.mjs"; export declare type DeviceType = { id: DeviceTypeId; name: string; description?: string; examples?: Device[]; isSimulation: boolean; simulation?: SimulationSpec; datapoints: Record; controlDatapoints: Record; fetchStatus: (deviceInstance: DeviceInstance) => Promise; executeControlRequest?: (device: Device, states: DatapointState[]) => Promise; makeDatacollectorPart?: (deviceInstance: DeviceInstance, ...datapoints: string[]) => Promise; disconnectFromDevice: (deviceInstance: DeviceInstance) => Promise; addDeviceEventConsumer?: (consumer: EngineContextConsumer, device: Device) => void; }; export declare const supportedDeviceTypes: Record; export declare const isSimulation: (deviceType: DeviceTypeId) => deviceType is SimulationDeviceTypeId;