/** A single Zeebe I/O mapping entry — a FEEL `source` copied to/from a process * variable `target`. */ export interface HumanIoEntry { /** FEEL expression evaluated for the mapping (e.g. `=orderId`). */ source: string; /** The process variable the value is written to. */ target: string; } /** A ``: input mappings applied on activation and output * mappings applied on completion. */ export interface HumanIoMapping { input?: HumanIoEntry[]; output?: HumanIoEntry[]; } /** A present, non-empty, non-whitespace-only string — the shape every id / * assignment / mapping-expression field must have. A blank value would emit a * meaningless BPMN attribute (an empty ioMapping source/target, formId, * assignee, …) that fails or misbehaves at deploy/run time, so we fail fast at * build. Non-blank values are kept verbatim — FEEL expressions are never * trimmed or normalized. */ export declare function isNonBlankString(v: unknown): v is string; /** Validate an optional io mapping at authoring time. `label` is the node's * self-description (e.g. `human("decide")` or `task("record")`) so the thrown * message names the offending step. An `undefined` mapping is allowed (no * ioMapping is emitted); a non-object / array value, or a malformed entry, fails * fast. */ export declare function assertIoMapping(label: string, io: HumanIoMapping | undefined): void; /** Emit a single `` (inputs then outputs) for the mapping, or * the empty string when it has no entries. The 8-space element / 10-space entry * indentation matches both the user-task and service-task emission, so a caller * can splice the result straight into either ``. */ export declare function renderIoMapping(io: HumanIoMapping | undefined): string;