/** * What a record DECLARES, read without touching the store: the JSONata a step's * args and conditions are written in, the consent identity of a tool call, and * how a tool outcome reads on a run row. * * Schedule validation is NOT here — it happens at DECLARATION, in core's * `toTriggerSource`, so all four authoring doors reject a cron nobody can run * before the process serves anything rather than at 2am. */ import { type GrantScope, type Json, type Step, type ToolOutcome, type TriggerSource } from "@vendoai/core"; import { type ConsentItem } from "./types.js"; export declare const triggerEvent: (source: TriggerSource) => string | undefined; export declare const evaluate: (expression: string, input: Record) => Promise; export declare const stepArgs: (step: Step, event: Json, outputs: Record, item?: Json) => Promise>; /** The identity of a consent item — what "already asked for this" means, and * therefore what two different service actions must NOT collapse into. */ export declare const consentKey: (item: ConsentItem) => string; /** Whether a standing automation grant already covers this consent item. A * host tool wants the tool-wide grant it has always minted; a service action * wants its own slug and is not covered by any other. */ export declare const scopeCovers: (scope: GrantScope, slug?: string) => boolean; /** The service action a step declares, when it declares one. * * Step args are JSONata, so the slug is only a declaration when it is a * CONSTANT — an expression that needs the event resolves to nothing here. That * is the right line rather than a limitation: an action nobody can name while * the person is present is not one they can pre-approve, so that step parks at * fire time and accretes its grant from a real approval instead. */ export declare const declaredSlug: (step: Step) => Promise; export declare const outcomeDetail: (outcome: ToolOutcome) => string | undefined; export declare const errorForOutcome: (outcome: Exclude) => { code: string; message: string; }; export declare const validateForEachItems: (step: Step, value: Json) => Json[]; //# sourceMappingURL=steps.d.ts.map