import type { Environment } from '../../../vendor/cel-js/lib/index.js';
import { type CELVar } from '../../../utils/cel-context.js';
/**
 * Register the trigger-chain `steps` variable on `env`, skipping it when
 * already declared. Idempotent for the same reason as the form/row variants:
 * an op schema may be embedded under a host whose `configure` already
 * advertises it, and double registration throws.
 *
 * `dyn` (not `map<string, dyn>`) so `steps["<id>"].data.code` type-checks the
 * same way `form.foo.bar` does — what a step publishes is backend-defined and
 * unknowable at design time. Keyed by trigger-row uuid; the picker renders
 * each key as its「第 N 步」position.
 */
export declare function registerStepsVariableIfAbsent(env: Environment): void;
/**
 * The design-time CELVar cell for `steps`, for the trigger editor's per-row
 * `provideCELContext` — what makes a step reference type-check in the inline
 * validator (the editor builds its check env from the injected context). The
 * `value` is irrelevant at design time; at runtime `steps` never rides the
 * context channel at all — the op handler passes it as an evaluation extra.
 */
export declare function stepsCelVar(): CELVar;
