import { ActionSpec, ControlPartSpec, ControlPartTypeId, Datapoint, UniqueDatapoint, } from "jm-castle-ac-dc-types"; import { ActionExecutionType } from "./control/parts/ActionExecution.mjs"; import { FreezersControlType } from "./control/parts/FreezersControl.mjs"; import { ControlPart } from "./control/Types.mjs"; export type ControlPartType = { id: ControlPartTypeId; name: string; description?: string; examples?: ControlPartSpec[]; input: Record; output: Record; makeControlPart?: (spec: ControlPartSpec) => ControlPart; checkControlPartSpec: ( spec: ControlPartSpec, actions: Record | undefined, controlDatapoints: { __global: Record } & Record< string, Record > ) => { result: boolean; errors: string[]; }; }; const allControlParts: Record = { "sys-freezers-control": FreezersControlType, "sys-action": ActionExecutionType, }; export const supportedControlPartTypes = allControlParts;