ll := import("@platforma-sdk/workflow-tengo:ll")

ARG_TYPE_STRING := "string"
ARG_TYPE_EXPRESSION := "expressionRef"
ARG_TYPE_VAR        := "variableRef" // TODO: deprecated, remove after 15 Mar 2025
ARG_TYPE_SECRET     := "secret"
ARG_TYPES := [ARG_TYPE_STRING, ARG_TYPE_EXPRESSION, ARG_TYPE_VAR, ARG_TYPE_SECRET]

BATCH_QUEUE    := "batch" // special queue in storage controller with no limits
HEAVY_QUEUE    := "heavy"
MEDIUM_QUEUE   := "medium"
LIGHT_QUEUE    := "light"
UI_TASKS_QUEUE := "ui-tasks"


RUNNER_BATCH    := "batch"    // batch system execution (k8s jobs, etc.)
RUNNER_EXECUTOR := "executor" // local binary execution

export ll.toStrict({
	ARG_TYPE_STRING: ARG_TYPE_STRING,
	ARG_TYPE_EXPRESSION: ARG_TYPE_EXPRESSION,
	ARG_TYPE_VAR: ARG_TYPE_VAR,
	ARG_TYPE_SECRET: ARG_TYPE_SECRET,
	ARG_TYPES: ARG_TYPES,

	BATCH_QUEUE: BATCH_QUEUE,
	UI_TASKS_QUEUE: UI_TASKS_QUEUE,
	LIGHT_QUEUE: LIGHT_QUEUE,
	MEDIUM_QUEUE: MEDIUM_QUEUE,
	HEAVY_QUEUE: HEAVY_QUEUE,

	RUNNER_BATCH: RUNNER_BATCH,
	RUNNER_EXECUTOR: RUNNER_EXECUTOR
})
