@opentrons/step-generation 0.3.0-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (222) hide show
  1. package/LICENSE +202 -0
  2. package/README.md +19 -0
  3. package/lib/__tests__/robotStateSelectors.test.d.ts +1 -0
  4. package/lib/__tests__/waitForTasks.test.d.ts +1 -0
  5. package/lib/__utils__/index.d.ts +1 -0
  6. package/lib/__utils__/makeImmutableStateUpdater.d.ts +4 -0
  7. package/lib/__utils__/testMatchers.d.ts +2 -0
  8. package/lib/commandCreators/atomic/__tests__/absorbanceReaderCloseLid.test.d.ts +1 -0
  9. package/lib/commandCreators/atomic/__tests__/absorbanceReaderOpenLid.test.d.ts +1 -0
  10. package/lib/commandCreators/atomic/__tests__/aspirate.test.d.ts +1 -0
  11. package/lib/commandCreators/atomic/__tests__/aspirateInPlace.test.d.ts +1 -0
  12. package/lib/commandCreators/atomic/__tests__/blowOutInPlace.test.d.ts +1 -0
  13. package/lib/commandCreators/atomic/__tests__/blowOutInWell.test.d.ts +1 -0
  14. package/lib/commandCreators/atomic/__tests__/captureImage.test.d.ts +1 -0
  15. package/lib/commandCreators/atomic/__tests__/comment.test.d.ts +1 -0
  16. package/lib/commandCreators/atomic/__tests__/configureForVolume.test.d.ts +1 -0
  17. package/lib/commandCreators/atomic/__tests__/configureNozzleLayout.test.d.ts +1 -0
  18. package/lib/commandCreators/atomic/__tests__/deactivateTemperature.test.d.ts +1 -0
  19. package/lib/commandCreators/atomic/__tests__/delay.test.d.ts +1 -0
  20. package/lib/commandCreators/atomic/__tests__/disengageMagnet.test.d.ts +1 -0
  21. package/lib/commandCreators/atomic/__tests__/dispense.test.d.ts +1 -0
  22. package/lib/commandCreators/atomic/__tests__/dispenseInPlace.test.d.ts +1 -0
  23. package/lib/commandCreators/atomic/__tests__/dropTip.test.d.ts +1 -0
  24. package/lib/commandCreators/atomic/__tests__/dropTipInPlace.test.d.ts +1 -0
  25. package/lib/commandCreators/atomic/__tests__/engageMagnet.test.d.ts +1 -0
  26. package/lib/commandCreators/atomic/__tests__/flexStackerEmpty.test.d.ts +1 -0
  27. package/lib/commandCreators/atomic/__tests__/flexStackerFillItems.test.d.ts +1 -0
  28. package/lib/commandCreators/atomic/__tests__/flexStackerRetrieve.test.d.ts +1 -0
  29. package/lib/commandCreators/atomic/__tests__/flexStackerStore.test.d.ts +1 -0
  30. package/lib/commandCreators/atomic/__tests__/heaterShakerOpenLatch.test.d.ts +1 -0
  31. package/lib/commandCreators/atomic/__tests__/liquidProbe.test.d.ts +1 -0
  32. package/lib/commandCreators/atomic/__tests__/moveLabware.test.d.ts +1 -0
  33. package/lib/commandCreators/atomic/__tests__/moveToAddressableArea.test.d.ts +1 -0
  34. package/lib/commandCreators/atomic/__tests__/moveToAddressableAreaForDropTip.test.d.ts +1 -0
  35. package/lib/commandCreators/atomic/__tests__/moveToWell.test.d.ts +1 -0
  36. package/lib/commandCreators/atomic/__tests__/pickUpTip.test.d.ts +1 -0
  37. package/lib/commandCreators/atomic/__tests__/prepareToAspirate.test.d.ts +1 -0
  38. package/lib/commandCreators/atomic/__tests__/setTemperature.test.d.ts +1 -0
  39. package/lib/commandCreators/atomic/__tests__/thermocyclerAtomicCommands.test.d.ts +1 -0
  40. package/lib/commandCreators/atomic/__tests__/thermocyclerCloseLid.test.d.ts +1 -0
  41. package/lib/commandCreators/atomic/__tests__/touchTip.test.d.ts +1 -0
  42. package/lib/commandCreators/atomic/__tests__/waitForTemperature.test.d.ts +1 -0
  43. package/lib/commandCreators/atomic/absorbanceReaderCloseLid.d.ts +3 -0
  44. package/lib/commandCreators/atomic/absorbanceReaderInitialize.d.ts +3 -0
  45. package/lib/commandCreators/atomic/absorbanceReaderOpenLid.d.ts +3 -0
  46. package/lib/commandCreators/atomic/absorbanceReaderRead.d.ts +3 -0
  47. package/lib/commandCreators/atomic/airGapInPlace.d.ts +3 -0
  48. package/lib/commandCreators/atomic/aspirate.d.ts +10 -0
  49. package/lib/commandCreators/atomic/aspirateInPlace.d.ts +3 -0
  50. package/lib/commandCreators/atomic/blowOutInPlace.d.ts +3 -0
  51. package/lib/commandCreators/atomic/blowOutInWell.d.ts +3 -0
  52. package/lib/commandCreators/atomic/captureImage.d.ts +3 -0
  53. package/lib/commandCreators/atomic/comment.d.ts +3 -0
  54. package/lib/commandCreators/atomic/configureForVolume.d.ts +3 -0
  55. package/lib/commandCreators/atomic/configureNozzleLayout.d.ts +3 -0
  56. package/lib/commandCreators/atomic/deactivateTemperature.d.ts +4 -0
  57. package/lib/commandCreators/atomic/delay.d.ts +3 -0
  58. package/lib/commandCreators/atomic/disengageMagnet.d.ts +4 -0
  59. package/lib/commandCreators/atomic/dispense.d.ts +10 -0
  60. package/lib/commandCreators/atomic/dispenseInPlace.d.ts +7 -0
  61. package/lib/commandCreators/atomic/dropTip.d.ts +13 -0
  62. package/lib/commandCreators/atomic/dropTipInPlace.d.ts +3 -0
  63. package/lib/commandCreators/atomic/engageMagnet.d.ts +4 -0
  64. package/lib/commandCreators/atomic/flexStackerEmpty.d.ts +3 -0
  65. package/lib/commandCreators/atomic/flexStackerFillItems.d.ts +2 -0
  66. package/lib/commandCreators/atomic/flexStackerRetrieve.d.ts +3 -0
  67. package/lib/commandCreators/atomic/flexStackerStore.d.ts +3 -0
  68. package/lib/commandCreators/atomic/heaterShakerCloseLatch.d.ts +3 -0
  69. package/lib/commandCreators/atomic/heaterShakerDeactivateHeater.d.ts +3 -0
  70. package/lib/commandCreators/atomic/heaterShakerOpenLatch.d.ts +3 -0
  71. package/lib/commandCreators/atomic/heaterShakerSetTargetShakeSpeed.d.ts +3 -0
  72. package/lib/commandCreators/atomic/heaterShakerStopShake.d.ts +3 -0
  73. package/lib/commandCreators/atomic/index.d.ts +36 -0
  74. package/lib/commandCreators/atomic/liquidProbe.d.ts +3 -0
  75. package/lib/commandCreators/atomic/moveLabware.d.ts +5 -0
  76. package/lib/commandCreators/atomic/moveToAddressableArea.d.ts +7 -0
  77. package/lib/commandCreators/atomic/moveToAddressableAreaForDropTip.d.ts +3 -0
  78. package/lib/commandCreators/atomic/moveToWell.d.ts +4 -0
  79. package/lib/commandCreators/atomic/pickUpTip.d.ts +9 -0
  80. package/lib/commandCreators/atomic/prepareToAspirate.d.ts +3 -0
  81. package/lib/commandCreators/atomic/setTemperature.d.ts +4 -0
  82. package/lib/commandCreators/atomic/thermocyclerCloseLid.d.ts +3 -0
  83. package/lib/commandCreators/atomic/thermocyclerDeactivateBlock.d.ts +3 -0
  84. package/lib/commandCreators/atomic/thermocyclerDeactivateLid.d.ts +3 -0
  85. package/lib/commandCreators/atomic/thermocyclerOpenLid.d.ts +3 -0
  86. package/lib/commandCreators/atomic/thermocyclerSetTargetBlockTemperature.d.ts +3 -0
  87. package/lib/commandCreators/atomic/thermocyclerSetTargetLidTemperature.d.ts +3 -0
  88. package/lib/commandCreators/atomic/thermocyclerStartRunExtendedProfile.d.ts +7 -0
  89. package/lib/commandCreators/atomic/touchTip.d.ts +7 -0
  90. package/lib/commandCreators/atomic/waitForTasks.d.ts +3 -0
  91. package/lib/commandCreators/atomic/waitForTemperature.d.ts +4 -0
  92. package/lib/commandCreators/compound/__tests__/absorbanceReaderCloseInitialize.test.d.ts +1 -0
  93. package/lib/commandCreators/compound/__tests__/absorbanceReaderCloseRead.test.d.ts +1 -0
  94. package/lib/commandCreators/compound/__tests__/airGapInTrash.test.d.ts +1 -0
  95. package/lib/commandCreators/compound/__tests__/airGapInWasteChute.test.d.ts +1 -0
  96. package/lib/commandCreators/compound/__tests__/airGapInWell.test.d.ts +1 -0
  97. package/lib/commandCreators/compound/__tests__/blowOutInTrash.test.d.ts +1 -0
  98. package/lib/commandCreators/compound/__tests__/blowOutinWasteChute.test.d.ts +1 -0
  99. package/lib/commandCreators/compound/__tests__/consolidate.test.d.ts +1 -0
  100. package/lib/commandCreators/compound/__tests__/dispenseInTrash.test.d.ts +1 -0
  101. package/lib/commandCreators/compound/__tests__/dispenseInWasteChute.test.d.ts +1 -0
  102. package/lib/commandCreators/compound/__tests__/distribute.test.d.ts +1 -0
  103. package/lib/commandCreators/compound/__tests__/dropTipInTrash.test.d.ts +1 -0
  104. package/lib/commandCreators/compound/__tests__/dropTipInWasteChute.test.d.ts +1 -0
  105. package/lib/commandCreators/compound/__tests__/heaterShaker.test.d.ts +1 -0
  106. package/lib/commandCreators/compound/__tests__/mix.test.d.ts +1 -0
  107. package/lib/commandCreators/compound/__tests__/replaceTip.test.d.ts +1 -0
  108. package/lib/commandCreators/compound/__tests__/thermocyclerProfileStep.test.d.ts +1 -0
  109. package/lib/commandCreators/compound/__tests__/thermocyclerStateStep.test.d.ts +1 -0
  110. package/lib/commandCreators/compound/__tests__/transfer.test.d.ts +1 -0
  111. package/lib/commandCreators/compound/__tests__/waitForModuleTask.test.d.ts +1 -0
  112. package/lib/commandCreators/compound/absorbanceReaderCloseInitialize.d.ts +2 -0
  113. package/lib/commandCreators/compound/absorbanceReaderCloseRead.d.ts +2 -0
  114. package/lib/commandCreators/compound/airGapInTrash.d.ts +9 -0
  115. package/lib/commandCreators/compound/airGapInWasteChute.d.ts +9 -0
  116. package/lib/commandCreators/compound/airGapInWell.d.ts +12 -0
  117. package/lib/commandCreators/compound/blowOutInTrash.d.ts +8 -0
  118. package/lib/commandCreators/compound/blowOutInWasteChute.d.ts +8 -0
  119. package/lib/commandCreators/compound/consolidate.d.ts +2 -0
  120. package/lib/commandCreators/compound/dispenseInTrash.d.ts +9 -0
  121. package/lib/commandCreators/compound/dispenseInWasteChute.d.ts +9 -0
  122. package/lib/commandCreators/compound/distribute.d.ts +2 -0
  123. package/lib/commandCreators/compound/dropTipInTrash.d.ts +7 -0
  124. package/lib/commandCreators/compound/dropTipInWasteChute.d.ts +7 -0
  125. package/lib/commandCreators/compound/heaterShaker.d.ts +2 -0
  126. package/lib/commandCreators/compound/index.d.ts +20 -0
  127. package/lib/commandCreators/compound/mix.d.ts +19 -0
  128. package/lib/commandCreators/compound/replaceTip.d.ts +21 -0
  129. package/lib/commandCreators/compound/thermocyclerProfileStep.d.ts +2 -0
  130. package/lib/commandCreators/compound/thermocyclerStateStep.d.ts +2 -0
  131. package/lib/commandCreators/compound/transfer.d.ts +2 -0
  132. package/lib/commandCreators/compound/waitForModuleTask.d.ts +6 -0
  133. package/lib/commandCreators/index.d.ts +2 -0
  134. package/lib/constants.d.ts +55 -0
  135. package/lib/errorCreators.d.ts +89 -0
  136. package/lib/fixtures/__tests__/fixtureGeneration.test.d.ts +1 -0
  137. package/lib/fixtures/commandFixtures.d.ts +511 -0
  138. package/lib/fixtures/data.d.ts +12 -0
  139. package/lib/fixtures/index.d.ts +3 -0
  140. package/lib/fixtures/robotStateFixtures.d.ts +39 -0
  141. package/lib/getNextRobotStateAndWarnings/__tests__/dispenseUpdateLiquidState.test.d.ts +1 -0
  142. package/lib/getNextRobotStateAndWarnings/__tests__/forAspirate.test.d.ts +1 -0
  143. package/lib/getNextRobotStateAndWarnings/__tests__/forBlowout.test.d.ts +1 -0
  144. package/lib/getNextRobotStateAndWarnings/__tests__/forDropTip.test.d.ts +1 -0
  145. package/lib/getNextRobotStateAndWarnings/__tests__/forMoveLabware.test.d.ts +1 -0
  146. package/lib/getNextRobotStateAndWarnings/__tests__/forPickUpTip.test.d.ts +1 -0
  147. package/lib/getNextRobotStateAndWarnings/__tests__/heaterShakerUpdates.test.d.ts +1 -0
  148. package/lib/getNextRobotStateAndWarnings/__tests__/stackerUpdates.test.d.ts +1 -0
  149. package/lib/getNextRobotStateAndWarnings/__tests__/temperatureUpdates.test.d.ts +1 -0
  150. package/lib/getNextRobotStateAndWarnings/__tests__/thermocyclerUpdates.test.d.ts +1 -0
  151. package/lib/getNextRobotStateAndWarnings/__tests__/updateMagneticModule.test.d.ts +1 -0
  152. package/lib/getNextRobotStateAndWarnings/absorbanceReaderUpdates.d.ts +5 -0
  153. package/lib/getNextRobotStateAndWarnings/dispenseUpdateLiquidState.d.ts +15 -0
  154. package/lib/getNextRobotStateAndWarnings/forAirGapInPlace.d.ts +3 -0
  155. package/lib/getNextRobotStateAndWarnings/forAspirate.d.ts +3 -0
  156. package/lib/getNextRobotStateAndWarnings/forBlowout.d.ts +3 -0
  157. package/lib/getNextRobotStateAndWarnings/forConfigureNozzleLayout.d.ts +11 -0
  158. package/lib/getNextRobotStateAndWarnings/forDispense.d.ts +3 -0
  159. package/lib/getNextRobotStateAndWarnings/forDropTip.d.ts +3 -0
  160. package/lib/getNextRobotStateAndWarnings/forLoadLiquid.d.ts +3 -0
  161. package/lib/getNextRobotStateAndWarnings/forMoveLabware.d.ts +3 -0
  162. package/lib/getNextRobotStateAndWarnings/forMoveToAddressableArea.d.ts +3 -0
  163. package/lib/getNextRobotStateAndWarnings/forMoveToWell.d.ts +3 -0
  164. package/lib/getNextRobotStateAndWarnings/forPickUpTip.d.ts +3 -0
  165. package/lib/getNextRobotStateAndWarnings/forWaitForTasks.d.ts +3 -0
  166. package/lib/getNextRobotStateAndWarnings/heaterShakerUpdates.d.ts +9 -0
  167. package/lib/getNextRobotStateAndWarnings/inPlaceCommandUpdates.d.ts +4 -0
  168. package/lib/getNextRobotStateAndWarnings/index.d.ts +4 -0
  169. package/lib/getNextRobotStateAndWarnings/magnetUpdates.d.ts +4 -0
  170. package/lib/getNextRobotStateAndWarnings/stackerUpdates.d.ts +9 -0
  171. package/lib/getNextRobotStateAndWarnings/temperatureUpdates.d.ts +5 -0
  172. package/lib/getNextRobotStateAndWarnings/thermocyclerUpdates.d.ts +22 -0
  173. package/lib/index.cjs +197 -0
  174. package/lib/index.d.ts +8 -0
  175. package/lib/index.mjs +16066 -0
  176. package/lib/robotStateSelectors.d.ts +31 -0
  177. package/lib/types.d.ts +693 -0
  178. package/lib/utils/__tests__/blowoutUtil.test.d.ts +1 -0
  179. package/lib/utils/__tests__/delayLocationHelper.test.d.ts +1 -0
  180. package/lib/utils/__tests__/getActiveNozzleAmount.test.d.ts +1 -0
  181. package/lib/utils/__tests__/getIsSafePipetteMovement.test.d.ts +1 -0
  182. package/lib/utils/__tests__/getLabwareSlot.test.d.ts +1 -0
  183. package/lib/utils/__tests__/glue.test.d.ts +1 -0
  184. package/lib/utils/__tests__/liquidClassUtils.test.d.ts +1 -0
  185. package/lib/utils/__tests__/misc.test.d.ts +1 -0
  186. package/lib/utils/__tests__/modulePipetteCollision.test.d.ts +1 -0
  187. package/lib/utils/__tests__/pythonFileUtils.test.d.ts +1 -0
  188. package/lib/utils/__tests__/pythonFormat.test.d.ts +1 -0
  189. package/lib/utils/__tests__/removePairs.test.d.ts +1 -0
  190. package/lib/utils/__tests__/safePipetteMovements.test.d.ts +1 -0
  191. package/lib/utils/__tests__/stripNoOpMixCommands.test.d.ts +1 -0
  192. package/lib/utils/__tests__/swatchColors.test.d.ts +1 -0
  193. package/lib/utils/__tests__/thermocyclerProfileConversions.test.d.ts +1 -0
  194. package/lib/utils/__tests__/traversals.test.d.ts +1 -0
  195. package/lib/utils/__tests__/utils.test.d.ts +1 -0
  196. package/lib/utils/absorbanceReaderCollision.d.ts +2 -0
  197. package/lib/utils/commandCreatorArgsGetters.d.ts +5 -0
  198. package/lib/utils/commandCreatorsTimeline.d.ts +2 -0
  199. package/lib/utils/constructInvariantContextFromAnalysis.d.ts +3 -0
  200. package/lib/utils/createTimelineFromRunCommands.d.ts +11 -0
  201. package/lib/utils/curryCommandCreator.d.ts +8 -0
  202. package/lib/utils/getActiveNozzleAmount.d.ts +7 -0
  203. package/lib/utils/getLabwareSlot.d.ts +2 -0
  204. package/lib/utils/getNozzleConfig.d.ts +2 -0
  205. package/lib/utils/heaterShakerCollision.d.ts +9 -0
  206. package/lib/utils/index.d.ts +22 -0
  207. package/lib/utils/liquidClassUtils.d.ts +15 -0
  208. package/lib/utils/liquidUtils.d.ts +13 -0
  209. package/lib/utils/misc.d.ts +180 -0
  210. package/lib/utils/modulePipetteCollision.d.ts +7 -0
  211. package/lib/utils/pythonFileUtils.d.ts +30 -0
  212. package/lib/utils/pythonFormat.d.ts +29 -0
  213. package/lib/utils/reduceCommandCreators.d.ts +2 -0
  214. package/lib/utils/removePairs.d.ts +1 -0
  215. package/lib/utils/safePipetteMovements.d.ts +49 -0
  216. package/lib/utils/stripNoOpCommands.d.ts +3 -0
  217. package/lib/utils/thermocyclerPipetteCollision.d.ts +2 -0
  218. package/lib/utils/thermocyclerProfileConversions.d.ts +19 -0
  219. package/lib/utils/thermocyclerStateDiff.d.ts +10 -0
  220. package/lib/utils/traversals.d.ts +127 -0
  221. package/lib/warningCreators.d.ts +7 -0
  222. package/package.json +45 -0
package/lib/types.d.ts ADDED
@@ -0,0 +1,693 @@
1
+ import type { ABSORBANCE_READER_TYPE, CreateCommand, FLEX_STACKER_MODULE_TYPE, FlexStackerStoredLabwareGroup, HEATERSHAKER_MODULE_TYPE, Height, LabwareDefinition2, LabwareLocation, LabwareMovementStrategy, LoadedLabwareLocation, MAGNETIC_BLOCK_TYPE, MAGNETIC_MODULE_TYPE, ModuleModel, ModuleType, PipetteMount as Mount, NozzleConfigurationStyle, PipetteName, PipetteV2Specs, PositionReference, PrimaryNozzleConfigurationStyle, ShakeSpeedParams, StackerStoredLabwareDefinitionURIs, TCExtendedProfileParams, TEMPERATURE_MODULE_TYPE, THERMOCYCLER_MODULE_TYPE, VACUUM_MODULE_TYPE, Width } from '@opentrons/shared-data';
2
+ import type { AUTOMATIC, CLEAN, DIRTY, EMPTY, MANUAL, TEMPERATURE_APPROACHING_TARGET, TEMPERATURE_AT_TARGET, TEMPERATURE_DEACTIVATED, VACUUM_MODE_POWER, VACUUM_MODE_PRESSURE, VACUUM_VENT_CLOSED, VACUUM_VENT_OPEN } from './constants';
3
+ export type DeckSlot = string;
4
+ type THERMOCYCLER_STATE = 'thermocyclerState';
5
+ type THERMOCYCLER_PROFILE = 'thermocyclerProfile';
6
+ export declare const TOUCHED_PIPETTABLE_LABWARE: 'TOUCHED_PIPETTABLE_LABWARE';
7
+ export interface LabwareTemporalProperties {
8
+ stack: string[];
9
+ stackedOnNode?: LoadedLabwareLocation;
10
+ contains?: string;
11
+ sterility?: typeof TOUCHED_PIPETTABLE_LABWARE;
12
+ setStoredLabwareCount?: number;
13
+ fillCount?: number;
14
+ }
15
+ export interface PipetteTemporalProperties {
16
+ mount: Mount;
17
+ entityId?: string;
18
+ wellName?: string;
19
+ nozzles?: NozzleConfigurationStyle;
20
+ tiprackId?: string;
21
+ tipWell?: string;
22
+ primaryNozzle?: PrimaryNozzleConfigurationStyle;
23
+ }
24
+ export interface MagneticModuleState {
25
+ type: typeof MAGNETIC_MODULE_TYPE;
26
+ engaged: boolean;
27
+ }
28
+ export type TemperatureStatus = typeof TEMPERATURE_DEACTIVATED | typeof TEMPERATURE_AT_TARGET | typeof TEMPERATURE_APPROACHING_TARGET;
29
+ export interface TemperatureModuleState {
30
+ type: typeof TEMPERATURE_MODULE_TYPE;
31
+ status: TemperatureStatus;
32
+ targetTemperature: number | null;
33
+ }
34
+ export interface ThermocyclerModuleState {
35
+ type: typeof THERMOCYCLER_MODULE_TYPE;
36
+ lidTargetTemp: number | null; /** null means lid is deactivated. */
37
+ /** What the thermal block is currently doing. */
38
+ currentBlockActivity: ProfileBlockActivity | TargetTempBlockActivity | DeactivatedBlockActivity;
39
+ /** If false, closed. If null, unknown. */
40
+ lidOpen: boolean | null;
41
+ /** Useful for generating unique task IDs every time a new profile is started. */
42
+ numProfilesStarted: number;
43
+ }
44
+ /**
45
+ * A profile has been started on this Thermocycler
46
+ * and not yet awaited, so it's possibly still ongoing.
47
+ */
48
+ export interface ProfileBlockActivity {
49
+ type: 'profile';
50
+ /** The steps of the profile that's currently running. */
51
+ profileElements: TCExtendedProfileParams['profileElements'];
52
+ /**
53
+ * The ID of the concurrent task that represents this profile.
54
+ *
55
+ * `null` for unknown. Theoretically, the task ID is always knowable,
56
+ * but sometimes it's only available from a startRunExtendedProfile result,
57
+ * and step-generation only has access to the startRunExtendedProfile params.
58
+ */
59
+ taskId: string | null;
60
+ }
61
+ /** The thermal block is targeting a constant temperature, outside of a profile. */
62
+ export interface TargetTempBlockActivity {
63
+ type: 'blockTargetTemp';
64
+ blockTargetTemp: number;
65
+ }
66
+ export interface DeactivatedBlockActivity {
67
+ type: 'blockDeactivated';
68
+ }
69
+ export interface HeaterShakerModuleState {
70
+ type: typeof HEATERSHAKER_MODULE_TYPE;
71
+ targetTemp: number | null;
72
+ targetSpeed: number | null;
73
+ latchOpen: boolean | null;
74
+ }
75
+ export interface MagneticBlockState {
76
+ type: typeof MAGNETIC_BLOCK_TYPE;
77
+ }
78
+ export interface Initialization {
79
+ mode: 'single' | 'multi';
80
+ wavelengths: number[];
81
+ referenceWavelength?: number;
82
+ }
83
+ export interface AbsorbanceReaderState {
84
+ type: typeof ABSORBANCE_READER_TYPE;
85
+ lidOpen: boolean | null;
86
+ initialization: Initialization | null;
87
+ }
88
+ export interface FlexStackerModuleState {
89
+ type: typeof FLEX_STACKER_MODULE_TYPE;
90
+ storedLabwareDetails: StackerStoredLabwareDefinitionURIs | null;
91
+ labwareInHopper: FlexStackerStoredLabwareGroup[] | null;
92
+ labwareOnShuttle: FlexStackerStoredLabwareGroup | null;
93
+ setStoredLabwareCount?: number;
94
+ fillCount?: number;
95
+ }
96
+ interface VacuumModulePressureState {
97
+ modeType: typeof VACUUM_MODE_PRESSURE;
98
+ currentPressure: number | null;
99
+ targetPressure: number | null;
100
+ }
101
+ interface VacuumModulePowerState {
102
+ modeType: typeof VACUUM_MODE_POWER;
103
+ currentPower: number | null;
104
+ targetPower: number | null;
105
+ }
106
+ export type VentStatus = typeof VACUUM_VENT_OPEN | typeof VACUUM_VENT_CLOSED;
107
+ export interface VacuumModuleState {
108
+ type: typeof VACUUM_MODULE_TYPE;
109
+ vacuumState: VacuumModulePressureState | VacuumModulePowerState | null;
110
+ ventStatus: VentStatus | null;
111
+ }
112
+ export type ModuleState = MagneticModuleState | TemperatureModuleState | ThermocyclerModuleState | HeaterShakerModuleState | MagneticBlockState | AbsorbanceReaderState | FlexStackerModuleState | VacuumModuleState;
113
+ export interface ModuleTemporalProperties {
114
+ slot: DeckSlot;
115
+ moduleState: ModuleState;
116
+ }
117
+ export interface LabwareEntity {
118
+ id: string;
119
+ labwareDefURI: string;
120
+ def: LabwareDefinition2;
121
+ pythonName: string;
122
+ }
123
+ export interface LabwareEntities {
124
+ [labwareId: string]: LabwareEntity;
125
+ }
126
+ export interface ModuleEntity {
127
+ id: string;
128
+ type: ModuleType;
129
+ model: ModuleModel;
130
+ pythonName: string;
131
+ }
132
+ export interface ModuleEntities {
133
+ [moduleId: string]: ModuleEntity;
134
+ }
135
+ export interface NormalizedPipetteById {
136
+ [pipetteId: string]: {
137
+ name: PipetteName;
138
+ id: string;
139
+ tiprackDefURI: string[];
140
+ };
141
+ }
142
+ export interface LiquidEntity {
143
+ displayName: string;
144
+ displayColor: string;
145
+ description: string | null;
146
+ pythonName: string;
147
+ liquidGroupId: string;
148
+ liquidClass?: string | null;
149
+ }
150
+ export interface LiquidEntities {
151
+ [liquidId: string]: LiquidEntity;
152
+ }
153
+ export type Ingredient = Omit<LiquidEntity, 'pythonName'>;
154
+ export interface Ingredients {
155
+ [liquidId: string]: Ingredient;
156
+ }
157
+ export type AdditionalEquipmentName = 'gripper' | 'wasteChute' | 'stagingArea' | 'trashBin';
158
+ export interface NormalizedAdditionalEquipmentById {
159
+ [additionalEquipmentId: string]: {
160
+ name: AdditionalEquipmentName;
161
+ id: string;
162
+ location: string;
163
+ pythonName?: string;
164
+ };
165
+ }
166
+ export type AdditionalEquipmentEntity = NormalizedAdditionalEquipmentById[keyof NormalizedAdditionalEquipmentById];
167
+ export interface AdditionalEquipmentEntities {
168
+ [additionalEquipmentId: string]: AdditionalEquipmentEntity;
169
+ }
170
+ interface TrashEntity {
171
+ id: string;
172
+ location: string;
173
+ pythonName: string;
174
+ }
175
+ export type WasteChuteEntity = TrashEntity;
176
+ export interface WasteChuteEntities {
177
+ [wasteChuteId: string]: WasteChuteEntity;
178
+ }
179
+ export type TrashBinEntity = TrashEntity;
180
+ export interface TrashBinEntities {
181
+ [trashBinId: string]: TrashBinEntity;
182
+ }
183
+ export interface StagingAreaEntity {
184
+ id: string;
185
+ location: string;
186
+ }
187
+ export interface StagingAreaEntities {
188
+ [stagingAreaId: string]: StagingAreaEntity;
189
+ }
190
+ export interface GripperEntity {
191
+ id: string;
192
+ }
193
+ export interface GripperEntities {
194
+ [gripperId: string]: GripperEntity;
195
+ }
196
+ export type NormalizedPipette = NormalizedPipetteById[keyof NormalizedPipetteById];
197
+ export interface TipRackWithDef extends LabwareDefinition2 {
198
+ tiprackDefURI: string;
199
+ }
200
+ export type PipetteEntity = NormalizedPipette & {
201
+ tiprackLabwareDef: LabwareDefinition2[];
202
+ spec: PipetteV2Specs;
203
+ pythonName: string;
204
+ };
205
+ export interface PipetteEntities {
206
+ [pipetteId: string]: PipetteEntity;
207
+ }
208
+ export type ChangeTipOptions = 'always' | 'once' | 'never' | 'perDest' | 'perSource';
209
+ export type PathOption = 'single' | 'multiAspirate' | 'multiDispense';
210
+ export interface InnerMixArgs {
211
+ volume: number;
212
+ times: number;
213
+ }
214
+ export interface InnerDelayArgs {
215
+ seconds: number;
216
+ }
217
+ interface CommonArgs {
218
+ /** NOTE: stepNumber probably shouldn't be optional but making it optional
219
+ * for the sake of not having to make too many changes for PD 8.5.2
220
+ * this should be refactored to not be optional for PD 8.6.0
221
+ * making it optional saves a lot of changes in unit tests
222
+ */
223
+ stepNumber?: number;
224
+ /** Optional user-readable name for this step */
225
+ name?: string | null;
226
+ /** Optional user-readable description/notes for this step */
227
+ description?: string | null;
228
+ }
229
+ export type SharedTransferLikeArgs = CommonArgs & {
230
+ tipRack: string;
231
+ pipette: string;
232
+ nozzles: NozzleConfigurationStyle;
233
+ primaryNozzle: PrimaryNozzleConfigurationStyle;
234
+ sourceLabware: string;
235
+ destLabware: string;
236
+ /** volume is interpreted differently by different Step types */
237
+ volume: number;
238
+ /** drop tip location entity id */
239
+ dropTipLocation: string;
240
+ /** Pre-wet tip with ??? uL liquid from the first source well. */
241
+ preWetTip: boolean;
242
+ /** Touch tip after every aspirate */
243
+ touchTipAfterAspirate: boolean;
244
+ /** Optional offset for touch tip after aspirate (if null, use PD default) */
245
+ touchTipAfterAspirateOffsetMmFromTop: number;
246
+ /** Optional offset for touch tip after aspirate (if null, use PD default) */
247
+ touchTipAfterAspirateMmFromEdge: number | null;
248
+ /** Optional speed for touch tip after aspirate (if null, use PD default) */
249
+ touchTipAfterAspirateSpeed: number | null;
250
+ /** changeTip is interpreted differently by different Step types */
251
+ changeTip: ChangeTipOptions;
252
+ /** Delay after every aspirate */
253
+ aspirateDelay: InnerDelayArgs | null | undefined;
254
+ /** Air gap after every aspirate */
255
+ aspirateAirGapVolume: number | null;
256
+ /** Flow rate in uL/sec for all aspirates */
257
+ aspirateFlowRateUlSec: number;
258
+ /** offset from bottom of well in mm */
259
+ aspirateOffsetFromBottomMm: number;
260
+ /** x offset mm */
261
+ aspirateXOffset: number;
262
+ /** y offset mm */
263
+ aspirateYOffset: number;
264
+ /** Air gap after dispense */
265
+ dispenseAirGapVolume: number | null;
266
+ /** Delay after every dispense */
267
+ dispenseDelay: InnerDelayArgs | null | undefined;
268
+ /** Touch tip in destination well after dispense */
269
+ touchTipAfterDispense: boolean;
270
+ /** Optional offset for touch tip after dispense (if null, use PD default) */
271
+ touchTipAfterDispenseOffsetMmFromTop: number;
272
+ /** Optional offset for touch tip after aspirate (if null, use PD default) */
273
+ touchTipAfterDispenseMmFromEdge: number | null;
274
+ /** Optional speed for touch tip after dispense (if null, use PD default) */
275
+ touchTipAfterDispenseSpeed: number | null;
276
+ /** Flow rate in uL/sec for all dispenses */
277
+ dispenseFlowRateUlSec: number;
278
+ /** offset from bottom of well in mm */
279
+ dispenseOffsetFromBottomMm: number;
280
+ /** x offset mm */
281
+ dispenseXOffset: number;
282
+ /** y offset mm */
283
+ dispenseYOffset: number;
284
+ /** will be non-null once introduced to quick transfer */
285
+ pushOut: number | null;
286
+ /** If given, blow out in the specified destination after dispense at the end of each asp-dispense cycle */
287
+ blowoutLocation: string | null | undefined;
288
+ blowoutFlowRateUlSec: number;
289
+ /** additional blowout params if the position needs to be more refined */
290
+ blowoutOffsetFromTopMm: number | null;
291
+ blowoutXPosition: number | null;
292
+ blowoutYPosition: number | null;
293
+ blowoutPositionReference: string | null;
294
+ liquidClass: string | null;
295
+ aspiratePositionReference: PositionReference;
296
+ aspirateZOffset: number;
297
+ aspirateSubmergeSpeed: number | null;
298
+ aspirateSubmergeXOffset: number;
299
+ aspirateSubmergeYOffset: number;
300
+ aspirateSubmergeZOffset: number;
301
+ aspirateSubmergePositionReference: PositionReference;
302
+ aspirateSubmergeDelay: InnerDelayArgs | null;
303
+ aspirateRetractSpeed: number | null;
304
+ aspirateRetractXOffset: number;
305
+ aspirateRetractYOffset: number;
306
+ aspirateRetractZOffset: number;
307
+ aspirateRetractPositionReference: PositionReference;
308
+ aspirateRetractDelay: InnerDelayArgs | null;
309
+ dispensePositionReference: PositionReference;
310
+ dispenseZOffset: number;
311
+ dispenseSubmergeSpeed: number | null;
312
+ dispenseSubmergeXOffset: number;
313
+ dispenseSubmergeYOffset: number;
314
+ dispenseSubmergeZOffset: number;
315
+ dispenseSubmergePositionReference: PositionReference;
316
+ dispenseSubmergeDelay: InnerDelayArgs | null;
317
+ dispenseRetractSpeed: number | null;
318
+ dispenseRetractXOffset: number;
319
+ dispenseRetractYOffset: number;
320
+ dispenseRetractZOffset: number;
321
+ dispenseRetractPositionReference: PositionReference;
322
+ dispenseRetractDelay: InnerDelayArgs | null;
323
+ tipTracking: TipTrackingOption;
324
+ tipsSelected: string[][];
325
+ tiprackSelected: string | null;
326
+ };
327
+ export type ConsolidateArgs = SharedTransferLikeArgs & {
328
+ commandCreatorFnName: 'consolidate';
329
+ sourceWells: string[];
330
+ destWell: string | null;
331
+ /** Mix in first well in chunk */
332
+ mixFirstAspirate: InnerMixArgs | null | undefined;
333
+ /** Mix in destination well after dispense */
334
+ mixInDestination: InnerMixArgs | null | undefined;
335
+ };
336
+ export type TransferArgs = SharedTransferLikeArgs & {
337
+ commandCreatorFnName: 'transfer';
338
+ sourceWells: string[];
339
+ destWells: string[] | null;
340
+ /** Mix in first well in chunk */
341
+ mixBeforeAspirate: InnerMixArgs | null | undefined;
342
+ /** Mix in destination well after dispense */
343
+ mixInDestination: InnerMixArgs | null | undefined;
344
+ };
345
+ export type DistributeArgs = SharedTransferLikeArgs & {
346
+ commandCreatorFnName: 'distribute';
347
+ sourceWell: string;
348
+ destWells: string[];
349
+ /** Disposal volume is added to the volume of the first aspirate of each asp-asp-disp cycle */
350
+ disposalVolume: number | null | undefined;
351
+ /** Volume to condition the tip with during aspiration sequence */
352
+ conditioningVolume: number | null;
353
+ /** Mix in first well in chunk */
354
+ mixBeforeAspirate: InnerMixArgs | null | undefined;
355
+ };
356
+ export type MixArgs = CommonArgs & {
357
+ commandCreatorFnName: 'mix';
358
+ tipRack: string;
359
+ labware: string;
360
+ pipette: string;
361
+ nozzles: NozzleConfigurationStyle;
362
+ wells: string[];
363
+ /** Mix volume (should not exceed pipette max) */
364
+ volume: number;
365
+ /** Times to mix (should be integer) */
366
+ times: number;
367
+ /** Touch tip after mixing */
368
+ touchTip: boolean;
369
+ touchTipMmFromTop: number;
370
+ /** change tip: see comments in step-generation/mix.js */
371
+ changeTip: ChangeTipOptions;
372
+ /** drop tip location entity id */
373
+ dropTipLocation: string;
374
+ /** If given, blow out in the specified destination after mixing each well */
375
+ blowoutLocation: string | null | undefined;
376
+ blowoutFlowRateUlSec: number;
377
+ blowoutOffsetFromTopMm: number;
378
+ /** mix position offset relative to this PositionReference */
379
+ positionReference: PositionReference;
380
+ /** x offset */
381
+ xOffset: number;
382
+ /** y offset */
383
+ yOffset: number;
384
+ /** z offset */
385
+ zOffset: number;
386
+ /** flow rates in uL/sec */
387
+ aspirateFlowRateUlSec: number;
388
+ dispenseFlowRateUlSec: number;
389
+ /** delays */
390
+ aspirateDelaySeconds: number | null | undefined;
391
+ dispenseDelaySeconds: number | null | undefined;
392
+ finalPushOut: number;
393
+ tipTracking: TipTrackingOption;
394
+ tipsSelected: string[][];
395
+ tiprackSelected: string | null;
396
+ primaryNozzle: PrimaryNozzleConfigurationStyle;
397
+ };
398
+ export type PauseArgs = CommonArgs & {
399
+ commandCreatorFnName: 'delay';
400
+ message?: string;
401
+ seconds?: number;
402
+ pauseTemperature?: number | null;
403
+ meta: {
404
+ hours?: number;
405
+ minutes?: number;
406
+ seconds?: number;
407
+ } | null | undefined;
408
+ };
409
+ export interface WaitForTemperatureArgs extends CommonArgs {
410
+ moduleId: string;
411
+ commandCreatorFnName: 'waitForTemperature';
412
+ celsius: number;
413
+ message?: string;
414
+ }
415
+ export interface WaitForModuleTaskArgs extends CommonArgs {
416
+ commandCreatorFnName: 'waitForModuleTask';
417
+ /** This step will wait for this to happen before moving on. */
418
+ waitCondition: 'thermocyclerProfileComplete';
419
+ moduleId: string;
420
+ }
421
+ export type EngageMagnetArgs = CommonArgs & {
422
+ height: number;
423
+ moduleId: string;
424
+ commandCreatorFnName: 'engageMagnet';
425
+ message?: string;
426
+ };
427
+ export type DisengageMagnetArgs = CommonArgs & {
428
+ moduleId: string;
429
+ commandCreatorFnName: 'disengageMagnet';
430
+ message?: string;
431
+ };
432
+ export interface SetTemperatureArgs extends CommonArgs {
433
+ moduleId: string;
434
+ commandCreatorFnName: 'setTemperature';
435
+ celsius: number;
436
+ message?: string;
437
+ }
438
+ export interface DeactivateTemperatureArgs extends CommonArgs {
439
+ moduleId: string;
440
+ commandCreatorFnName: 'deactivateTemperature';
441
+ message?: string;
442
+ }
443
+ export type SetShakeSpeedArgs = ShakeSpeedParams & {
444
+ moduleId: string;
445
+ commandCreatorFnName: 'setShakeSpeed';
446
+ message?: string;
447
+ };
448
+ export interface HeaterShakerArgs extends CommonArgs {
449
+ moduleId: string | null;
450
+ rpm: number | null;
451
+ commandCreatorFnName: 'heaterShaker';
452
+ targetTemperature: number | null;
453
+ latchOpen: boolean;
454
+ timerHours: number | null;
455
+ timerMinutes: number | null;
456
+ timerSeconds: number | null;
457
+ message?: string;
458
+ }
459
+ declare const PROFILE_CYCLE: 'profileCycle';
460
+ declare const PROFILE_STEP: 'profileStep';
461
+ interface ProfileStepItem {
462
+ type: typeof PROFILE_STEP;
463
+ id: string;
464
+ title: string;
465
+ temperature: string;
466
+ durationMinutes: string;
467
+ durationSeconds: string;
468
+ }
469
+ interface ProfileCycleItem {
470
+ type: typeof PROFILE_CYCLE;
471
+ id: string;
472
+ steps: ProfileStepItem[];
473
+ repetitions: string;
474
+ }
475
+ export type ProfileItem = ProfileStepItem | ProfileCycleItem;
476
+ /**
477
+ * Emits a concurrent Thermocycler profile step. The protocol will proceed to the next
478
+ * step immediately after the profile starts, and the profile will continue in the
479
+ * background.
480
+ */
481
+ export type ThermocyclerProfileStepArgs = CommonArgs & {
482
+ commandCreatorFnName: THERMOCYCLER_PROFILE;
483
+ moduleId: string;
484
+ profileElements: TCExtendedProfileParams['profileElements'];
485
+ profileTargetLidTemp: number;
486
+ profileVolume: number;
487
+ meta?: {
488
+ rawProfileItems: ProfileItem[];
489
+ };
490
+ message?: string;
491
+ };
492
+ export interface ThermocyclerStateStepArgs extends CommonArgs {
493
+ moduleId: string;
494
+ commandCreatorFnName: THERMOCYCLER_STATE;
495
+ blockTargetTemp: number | null;
496
+ lidTargetTemp: number | null;
497
+ lidOpen: boolean;
498
+ message?: string;
499
+ }
500
+ export interface AbsorbanceReaderInitializeArgs extends CommonArgs {
501
+ moduleId: string;
502
+ commandCreatorFnName: 'absorbanceReaderInitialize';
503
+ measureMode: 'single' | 'multi';
504
+ sampleWavelengths: number[];
505
+ referenceWavelength?: number | null;
506
+ message?: string;
507
+ }
508
+ export interface AbsorbanceReaderReadArgs extends CommonArgs {
509
+ moduleId: string;
510
+ commandCreatorFnName: 'absorbanceReaderRead';
511
+ fileName: string | null;
512
+ message?: string;
513
+ }
514
+ export interface AbsorbanceReaderLidArgs extends CommonArgs {
515
+ moduleId: string;
516
+ commandCreatorFnName: 'absorbanceReaderOpenLid' | 'absorbanceReaderCloseLid';
517
+ message?: string;
518
+ }
519
+ export type AbsorbanceReaderArgs = AbsorbanceReaderInitializeArgs | AbsorbanceReaderReadArgs | AbsorbanceReaderLidArgs;
520
+ export interface MoveLabwareArgs extends CommonArgs {
521
+ commandCreatorFnName: 'moveLabware';
522
+ labwareId: string;
523
+ newLocation: LabwareLocation;
524
+ strategy: LabwareMovementStrategy;
525
+ }
526
+ export interface CommentArgs extends CommonArgs {
527
+ commandCreatorFnName: 'comment';
528
+ message: string;
529
+ }
530
+ export interface CaptureImageArgs extends CommonArgs {
531
+ commandCreatorFnName: 'captureImage';
532
+ homeBefore: boolean;
533
+ fileName: string;
534
+ resolution: [Width, Height];
535
+ zoom: number;
536
+ contrast: number;
537
+ brightness: number;
538
+ saturation: number;
539
+ }
540
+ export interface FlexStackerEmptyArgs extends CommonArgs {
541
+ moduleId: string;
542
+ commandCreatorFnName: 'flexStackerEmpty';
543
+ interventionMessage: string | null;
544
+ }
545
+ export interface FlexStackerFillItemsArgs extends CommonArgs {
546
+ moduleId: string;
547
+ commandCreatorFnName: 'flexStackerFillItems';
548
+ fillLabwareUri: string | null;
549
+ fillLabwareIds: string[];
550
+ interventionMessage: string | null;
551
+ }
552
+ export interface FlexStackerStoreArgs extends CommonArgs {
553
+ moduleId: string;
554
+ commandCreatorFnName: 'flexStackerStore';
555
+ }
556
+ export interface FlexStackerRetrieveArgs extends CommonArgs {
557
+ moduleId: string;
558
+ commandCreatorFnName: 'flexStackerRetrieve';
559
+ }
560
+ export type FlexStackerArgs = FlexStackerEmptyArgs | FlexStackerFillItemsArgs | FlexStackerRetrieveArgs | FlexStackerStoreArgs;
561
+ export type CommandCreatorArgs = AbsorbanceReaderInitializeArgs | AbsorbanceReaderReadArgs | AbsorbanceReaderLidArgs | ConsolidateArgs | CaptureImageArgs | DistributeArgs | MixArgs | PauseArgs | WaitForModuleTaskArgs | TransferArgs | EngageMagnetArgs | DisengageMagnetArgs | SetTemperatureArgs | WaitForTemperatureArgs | DeactivateTemperatureArgs | ThermocyclerProfileStepArgs | ThermocyclerStateStepArgs | HeaterShakerArgs | MoveLabwareArgs | CommentArgs | FlexStackerArgs;
562
+ export interface LocationLiquidState {
563
+ [ingredGroup: string]: {
564
+ volume: number;
565
+ };
566
+ }
567
+ export interface SingleLabwareLiquidState {
568
+ [well: string]: LocationLiquidState;
569
+ }
570
+ export interface LabwareLiquidState {
571
+ [labwareId: string]: SingleLabwareLiquidState;
572
+ }
573
+ export interface SourceAndDest {
574
+ source: LocationLiquidState;
575
+ dest: LocationLiquidState;
576
+ }
577
+ export interface Config {
578
+ OT_PD_DISABLE_MODULE_RESTRICTIONS: boolean;
579
+ }
580
+ export interface InvariantContext {
581
+ labwareEntities: LabwareEntities;
582
+ moduleEntities: ModuleEntities;
583
+ pipetteEntities: PipetteEntities;
584
+ wasteChuteEntities: WasteChuteEntities;
585
+ trashBinEntities: TrashBinEntities;
586
+ stagingAreaEntities: StagingAreaEntities;
587
+ gripperEntities: GripperEntities;
588
+ liquidEntities: LiquidEntities;
589
+ config: Config;
590
+ }
591
+ export type TipState = typeof CLEAN | typeof DIRTY | typeof EMPTY;
592
+ export interface TimelineFrame {
593
+ pipettes: {
594
+ [pipetteId: string]: PipetteTemporalProperties;
595
+ };
596
+ labware: {
597
+ [labwareId: string]: LabwareTemporalProperties;
598
+ };
599
+ modules: {
600
+ [moduleId: string]: ModuleTemporalProperties;
601
+ };
602
+ tipState: {
603
+ tipracks: {
604
+ [labwareId: string]: {
605
+ [wellName: string]: TipState;
606
+ };
607
+ };
608
+ pipettes: {
609
+ [pipetteId: string]: {
610
+ hasTip: boolean;
611
+ /** TODO: tiprackURI is a misnomer: it's a labwareId, not a URI */
612
+ tiprackURI: string | null;
613
+ };
614
+ };
615
+ };
616
+ liquidState: {
617
+ pipettes: {
618
+ [pipetteId: string]: {
619
+ /** tips are numbered 0-7. 0 is the furthest to the back of the robot.
620
+ * For an 8-channel, on a 96-flat, Tip 0 is in row A, Tip 7 is in row H.
621
+ */
622
+ [tipId: string]: LocationLiquidState;
623
+ };
624
+ };
625
+ labware: {
626
+ [labwareId: string]: {
627
+ [well: string]: LocationLiquidState;
628
+ };
629
+ };
630
+ trashBins: {
631
+ [trashBinId: string]: LocationLiquidState;
632
+ };
633
+ wasteChute: {
634
+ [wasteChuteId: string]: LocationLiquidState;
635
+ };
636
+ };
637
+ }
638
+ export type RobotState = TimelineFrame;
639
+ export type ErrorType = 'ABSORBANCE_READER_LID_CLOSED' | 'ABSORBANCE_READER_NO_GRIPPER' | 'ABSORBANCE_READER_NO_INITIALIZATION' | 'CANNOT_MOVE_WITH_GRIPPER' | 'CLOSING_THERMOCYCLER_WITH_INVALID_LABWARE_LID' | 'DROP_TIP_LOCATION_DOES_NOT_EXIST' | 'EQUIPMENT_DOES_NOT_EXIST' | 'FLEX_STACKER_NO_GRIPPER' | 'GRIPPER_REQUIRED' | 'HEATER_SHAKER_EAST_WEST_LATCH_OPEN' | 'HEATER_SHAKER_EAST_WEST_MULTI_CHANNEL' | 'HEATER_SHAKER_IS_SHAKING' | 'HEATER_SHAKER_LATCH_CLOSED' | 'HEATER_SHAKER_LATCH_OPEN' | 'HEATER_SHAKER_NORTH_SOUTH__OF_NON_TIPRACK_WITH_MULTI_CHANNEL' | 'HEATER_SHAKER_NORTH_SOUTH_EAST_WEST_SHAKING' | 'HOPPER_EMPTY' | 'HOPPER_FULL' | 'INCOMPLETE_PICKUP' | 'INSUFFICIENT_TIPS' | 'INVALID_SLOT' | 'LABWARE_DISCARDED_IN_TRASH' | 'LABWARE_DOES_NOT_EXIST' | 'LABWARE_OFF_DECK' | 'LABWARE_ON_ANOTHER_ENTITY' | 'LABWARE_ON_HOPPER' | 'MISMATCHED_SOURCE_DEST_WELLS' | 'MISMATCHED_STACKER_LABWARE_TYPE' | 'MISSING_96_CHANNEL_TIPRACK_ADAPTER' | 'MISSING_MODULE' | 'MISSING_PROFILE_STEP' | 'MISSING_STACKER_LABWARE_TYPE' | 'MISSING_TEMPERATURE_STEP' | 'MOVE_LOCATION_NOT_SPECIFIED' | 'MODULE_PIPETTE_COLLISION_DANGER' | 'MULTI_ASPIRATE_VOLUME_TOO_HIGH' | 'MULTI_DISPENSE_VOLUME_TOO_HIGH' | 'NEXT_TIPRACK_HAS_LID' | 'NO_TIP_ON_PIPETTE' | 'NO_TIP_SELECTED' | 'PIPETTE_DOES_NOT_EXIST' | 'PIPETTE_HAS_TIP' | 'PIPETTE_VOLUME_EXCEEDED' | 'PIPETTING_INTO_COLUMN_4' | 'POSSIBLE_PIPETTE_COLLISION' | 'REMOVE_96_CHANNEL_TIPRACK_ADAPTER' | 'RETRACT_BELOW_ASPIRATE' | 'RETRACT_BELOW_DISPENSE' | 'RETURN_TIP_UNAVAILABLE' | 'SHUTTLE_FULL' | 'SHUTTLE_EMPTY' | 'STACK_TOO_HIGH' | 'SUBMERGE_BELOW_ASPIRATE' | 'SUBMERGE_BELOW_DISPENSE' | 'TALL_LABWARE_EAST_WEST_OF_HEATER_SHAKER' | 'THERMOCYCLER_BUSY_WITH_PROFILE' | 'THERMOCYCLER_LID_CLOSED' | 'TIP_VOLUME_EXCEEDED' | 'TIPRACK_LID_NOT_ALLOWED_ON_DECK' | 'TOO_MANY_TIPS';
640
+ export interface CommandCreatorError {
641
+ message: string;
642
+ type: ErrorType;
643
+ }
644
+ export type WarningType = 'ASPIRATE_MORE_THAN_WELL_CONTENTS' | 'ASPIRATE_FROM_PRISTINE_WELL' | 'LABWARE_IN_WASTE_CHUTE_HAS_LIQUID' | 'TIPRACK_IN_WASTE_CHUTE_HAS_TIPS' | 'TEMPERATURE_IS_POTENTIALLY_UNREACHABLE' | 'WAITING_FOR_NONEXISTENT_TASK';
645
+ export interface CommandCreatorWarning {
646
+ message: string;
647
+ type: WarningType;
648
+ }
649
+ interface StepInfo {
650
+ stepNumber?: number;
651
+ name?: string | null;
652
+ description?: string | null;
653
+ }
654
+ export interface CommandsAndRobotState {
655
+ commands: CreateCommand[];
656
+ robotState: RobotState;
657
+ stepInfo?: StepInfo;
658
+ warnings?: CommandCreatorWarning[];
659
+ python?: string;
660
+ }
661
+ export interface CommandCreatorErrorResponse {
662
+ errors: CommandCreatorError[];
663
+ warnings?: CommandCreatorWarning[];
664
+ }
665
+ export interface CommandsAndWarnings extends StepInfo {
666
+ commands: CreateCommand[];
667
+ warnings?: CommandCreatorWarning[];
668
+ python?: string;
669
+ }
670
+ export type CommandCreatorResult = CommandsAndWarnings | CommandCreatorErrorResponse;
671
+ export type CommandCreator<Args> = (args: Args, invariantContext: InvariantContext, prevRobotState: RobotState) => CommandCreatorResult;
672
+ export type CurriedCommandCreator = (invariantContext: InvariantContext, prevRobotState: RobotState) => CommandCreatorResult;
673
+ export interface Timeline {
674
+ timeline: CommandsAndRobotState[];
675
+ errors?: CommandCreatorError[] | null;
676
+ }
677
+ export interface RobotStateAndWarnings {
678
+ robotState: RobotState;
679
+ warnings: CommandCreatorWarning[];
680
+ }
681
+ export interface WellContents {
682
+ wellName?: string;
683
+ groupIds: string[];
684
+ ingreds: LocationLiquidState;
685
+ highlighted?: boolean;
686
+ selected?: boolean;
687
+ maxVolume?: number;
688
+ }
689
+ export interface WellContentsByNumber {
690
+ [wellName: string]: number;
691
+ }
692
+ export type TipTrackingOption = typeof AUTOMATIC | typeof MANUAL;
693
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};