import { z } from 'zod'; export declare const choiceOptionSchema: z.ZodObject<{ id: z.ZodString; label: z.ZodString; description: z.ZodOptional; url: z.ZodOptional; flow: z.ZodOptional>; }, z.core.$strict>; export declare const flowNodeDefinitionSchema: z.ZodUnion; kind: z.ZodLiteral<"reply">; id: z.ZodString; instructions: z.ZodOptional; next: z.ZodOptional>; }, z.core.$strict>, z.ZodObject<{ handoff: z.ZodString; reason: z.ZodOptional; }, z.core.$strict>, z.ZodObject<{ escalate: z.ZodString; }, z.core.$strict>, z.ZodObject<{ end: z.ZodString; }, z.core.$strict>, z.ZodLiteral<"stay">]>>; routes: z.ZodOptional>; to: z.ZodUnion>; }, z.core.$strict>, z.ZodObject<{ handoff: z.ZodString; reason: z.ZodOptional; }, z.core.$strict>, z.ZodObject<{ escalate: z.ZodString; }, z.core.$strict>, z.ZodObject<{ end: z.ZodString; }, z.core.$strict>, z.ZodLiteral<"stay">]>; whenSource: z.ZodOptional; }, z.core.$strict>>>; }, z.core.$strict>, z.ZodObject<{ generate: z.ZodLiteral; kind: z.ZodLiteral<"reply">; id: z.ZodString; instructions: z.ZodOptional; next: z.ZodOptional>; }, z.core.$strict>, z.ZodObject<{ handoff: z.ZodString; reason: z.ZodOptional; }, z.core.$strict>, z.ZodObject<{ escalate: z.ZodString; }, z.core.$strict>, z.ZodObject<{ end: z.ZodString; }, z.core.$strict>, z.ZodLiteral<"stay">]>>; routes: z.ZodOptional>; to: z.ZodUnion>; }, z.core.$strict>, z.ZodObject<{ handoff: z.ZodString; reason: z.ZodOptional; }, z.core.$strict>, z.ZodObject<{ escalate: z.ZodString; }, z.core.$strict>, z.ZodObject<{ end: z.ZodString; }, z.core.$strict>, z.ZodLiteral<"stay">]>; whenSource: z.ZodOptional; }, z.core.$strict>>>; }, z.core.$strict>, z.ZodObject<{ kind: z.ZodLiteral<"collect">; id: z.ZodString; schema: z.ZodRecord; ask: z.ZodOptional; instructions: z.ZodOptional; assign: z.ZodOptional>; resolvers: z.ZodOptional; values: z.ZodArray; }, z.core.$strict>, z.ZodObject<{ field: z.ZodString; kind: z.ZodLiteral<"range">; min: z.ZodOptional; max: z.ZodOptional; }, z.core.$strict>, z.ZodObject<{ field: z.ZodString; kind: z.ZodLiteral<"jsonpath">; path: z.ZodString; }, z.core.$strict>], "kind">>>; verbatimFields: z.ZodOptional>; required: z.ZodOptional>; maxTurns: z.ZodOptional; choices: z.ZodOptional; url: z.ZodOptional; flow: z.ZodOptional>; }, z.core.$strict>>>; next: z.ZodOptional>; }, z.core.$strict>, z.ZodObject<{ handoff: z.ZodString; reason: z.ZodOptional; }, z.core.$strict>, z.ZodObject<{ escalate: z.ZodString; }, z.core.$strict>, z.ZodObject<{ end: z.ZodString; }, z.core.$strict>, z.ZodLiteral<"stay">]>>; }, z.core.$strict>, z.ZodObject<{ kind: z.ZodLiteral<"action">; id: z.ZodString; tool: z.ZodString; args: z.ZodOptional, z.ZodObject<{ template: z.ZodString; }, z.core.$strict>, z.ZodObject<{ path: z.ZodString; }, z.core.$strict>]>>>; bind: z.ZodOptional; approval: z.ZodOptional>; next: z.ZodOptional>; }, z.core.$strict>, z.ZodObject<{ handoff: z.ZodString; reason: z.ZodOptional; }, z.core.$strict>, z.ZodObject<{ escalate: z.ZodString; }, z.core.$strict>, z.ZodObject<{ end: z.ZodString; }, z.core.$strict>, z.ZodLiteral<"stay">]>>; routes: z.ZodOptional>; to: z.ZodUnion>; }, z.core.$strict>, z.ZodObject<{ handoff: z.ZodString; reason: z.ZodOptional; }, z.core.$strict>, z.ZodObject<{ escalate: z.ZodString; }, z.core.$strict>, z.ZodObject<{ end: z.ZodString; }, z.core.$strict>, z.ZodLiteral<"stay">]>; whenSource: z.ZodOptional; }, z.core.$strict>>>; }, z.core.$strict>, z.ZodObject<{ kind: z.ZodLiteral<"decide">; id: z.ZodString; instructions: z.ZodOptional; schema: z.ZodOptional>; choices: z.ZodOptional; url: z.ZodOptional; flow: z.ZodOptional>; }, z.core.$strict>>>; routes: z.ZodOptional>; to: z.ZodUnion>; }, z.core.$strict>, z.ZodObject<{ handoff: z.ZodString; reason: z.ZodOptional; }, z.core.$strict>, z.ZodObject<{ escalate: z.ZodString; }, z.core.$strict>, z.ZodObject<{ end: z.ZodString; }, z.core.$strict>, z.ZodLiteral<"stay">]>; whenSource: z.ZodOptional; }, z.core.$strict>>>; otherwise: z.ZodOptional>; }, z.core.$strict>, z.ZodObject<{ handoff: z.ZodString; reason: z.ZodOptional; }, z.core.$strict>, z.ZodObject<{ escalate: z.ZodString; }, z.core.$strict>, z.ZodObject<{ end: z.ZodString; }, z.core.$strict>, z.ZodLiteral<"stay">]>>; confirmGate: z.ZodOptional>; }, z.core.$strict>, z.ZodObject<{ handoff: z.ZodString; reason: z.ZodOptional; }, z.core.$strict>, z.ZodObject<{ escalate: z.ZodString; }, z.core.$strict>, z.ZodObject<{ end: z.ZodString; }, z.core.$strict>, z.ZodLiteral<"stay">]>; onDecline: z.ZodUnion>; }, z.core.$strict>, z.ZodObject<{ handoff: z.ZodString; reason: z.ZodOptional; }, z.core.$strict>, z.ZodObject<{ escalate: z.ZodString; }, z.core.$strict>, z.ZodObject<{ end: z.ZodString; }, z.core.$strict>, z.ZodLiteral<"stay">]>; onAmbiguous: z.ZodOptional>; }, z.core.$strict>, z.ZodObject<{ handoff: z.ZodString; reason: z.ZodOptional; }, z.core.$strict>, z.ZodObject<{ escalate: z.ZodString; }, z.core.$strict>, z.ZodObject<{ end: z.ZodString; }, z.core.$strict>, z.ZodLiteral<"stay">]>>; }, z.core.$strict>>; }, z.core.$strict>]>; export declare const flowGateSpecSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{ id: z.ZodString; kind: z.ZodLiteral<"predicate">; severity: z.ZodEnum<{ blocking: "blocking"; advisory: "advisory"; }>; when: z.ZodType>; }, z.core.$strict>, z.ZodObject<{ id: z.ZodString; kind: z.ZodLiteral<"judge">; severity: z.ZodEnum<{ blocking: "blocking"; advisory: "advisory"; }>; inputs: z.ZodArray; rubric: z.ZodOptional; }, z.core.$strict>], "kind">; export declare const flowDefinitionSchema: z.ZodObject<{ name: z.ZodString; description: z.ZodString; inputSchema: z.ZodOptional>; outputSchema: z.ZodOptional>; start: z.ZodString; nodes: z.ZodArray; kind: z.ZodLiteral<"reply">; id: z.ZodString; instructions: z.ZodOptional; next: z.ZodOptional>; }, z.core.$strict>, z.ZodObject<{ handoff: z.ZodString; reason: z.ZodOptional; }, z.core.$strict>, z.ZodObject<{ escalate: z.ZodString; }, z.core.$strict>, z.ZodObject<{ end: z.ZodString; }, z.core.$strict>, z.ZodLiteral<"stay">]>>; routes: z.ZodOptional>; to: z.ZodUnion>; }, z.core.$strict>, z.ZodObject<{ handoff: z.ZodString; reason: z.ZodOptional; }, z.core.$strict>, z.ZodObject<{ escalate: z.ZodString; }, z.core.$strict>, z.ZodObject<{ end: z.ZodString; }, z.core.$strict>, z.ZodLiteral<"stay">]>; whenSource: z.ZodOptional; }, z.core.$strict>>>; }, z.core.$strict>, z.ZodObject<{ generate: z.ZodLiteral; kind: z.ZodLiteral<"reply">; id: z.ZodString; instructions: z.ZodOptional; next: z.ZodOptional>; }, z.core.$strict>, z.ZodObject<{ handoff: z.ZodString; reason: z.ZodOptional; }, z.core.$strict>, z.ZodObject<{ escalate: z.ZodString; }, z.core.$strict>, z.ZodObject<{ end: z.ZodString; }, z.core.$strict>, z.ZodLiteral<"stay">]>>; routes: z.ZodOptional>; to: z.ZodUnion>; }, z.core.$strict>, z.ZodObject<{ handoff: z.ZodString; reason: z.ZodOptional; }, z.core.$strict>, z.ZodObject<{ escalate: z.ZodString; }, z.core.$strict>, z.ZodObject<{ end: z.ZodString; }, z.core.$strict>, z.ZodLiteral<"stay">]>; whenSource: z.ZodOptional; }, z.core.$strict>>>; }, z.core.$strict>, z.ZodObject<{ kind: z.ZodLiteral<"collect">; id: z.ZodString; schema: z.ZodRecord; ask: z.ZodOptional; instructions: z.ZodOptional; assign: z.ZodOptional>; resolvers: z.ZodOptional; values: z.ZodArray; }, z.core.$strict>, z.ZodObject<{ field: z.ZodString; kind: z.ZodLiteral<"range">; min: z.ZodOptional; max: z.ZodOptional; }, z.core.$strict>, z.ZodObject<{ field: z.ZodString; kind: z.ZodLiteral<"jsonpath">; path: z.ZodString; }, z.core.$strict>], "kind">>>; verbatimFields: z.ZodOptional>; required: z.ZodOptional>; maxTurns: z.ZodOptional; choices: z.ZodOptional; url: z.ZodOptional; flow: z.ZodOptional>; }, z.core.$strict>>>; next: z.ZodOptional>; }, z.core.$strict>, z.ZodObject<{ handoff: z.ZodString; reason: z.ZodOptional; }, z.core.$strict>, z.ZodObject<{ escalate: z.ZodString; }, z.core.$strict>, z.ZodObject<{ end: z.ZodString; }, z.core.$strict>, z.ZodLiteral<"stay">]>>; }, z.core.$strict>, z.ZodObject<{ kind: z.ZodLiteral<"action">; id: z.ZodString; tool: z.ZodString; args: z.ZodOptional, z.ZodObject<{ template: z.ZodString; }, z.core.$strict>, z.ZodObject<{ path: z.ZodString; }, z.core.$strict>]>>>; bind: z.ZodOptional; approval: z.ZodOptional>; next: z.ZodOptional>; }, z.core.$strict>, z.ZodObject<{ handoff: z.ZodString; reason: z.ZodOptional; }, z.core.$strict>, z.ZodObject<{ escalate: z.ZodString; }, z.core.$strict>, z.ZodObject<{ end: z.ZodString; }, z.core.$strict>, z.ZodLiteral<"stay">]>>; routes: z.ZodOptional>; to: z.ZodUnion>; }, z.core.$strict>, z.ZodObject<{ handoff: z.ZodString; reason: z.ZodOptional; }, z.core.$strict>, z.ZodObject<{ escalate: z.ZodString; }, z.core.$strict>, z.ZodObject<{ end: z.ZodString; }, z.core.$strict>, z.ZodLiteral<"stay">]>; whenSource: z.ZodOptional; }, z.core.$strict>>>; }, z.core.$strict>, z.ZodObject<{ kind: z.ZodLiteral<"decide">; id: z.ZodString; instructions: z.ZodOptional; schema: z.ZodOptional>; choices: z.ZodOptional; url: z.ZodOptional; flow: z.ZodOptional>; }, z.core.$strict>>>; routes: z.ZodOptional>; to: z.ZodUnion>; }, z.core.$strict>, z.ZodObject<{ handoff: z.ZodString; reason: z.ZodOptional; }, z.core.$strict>, z.ZodObject<{ escalate: z.ZodString; }, z.core.$strict>, z.ZodObject<{ end: z.ZodString; }, z.core.$strict>, z.ZodLiteral<"stay">]>; whenSource: z.ZodOptional; }, z.core.$strict>>>; otherwise: z.ZodOptional>; }, z.core.$strict>, z.ZodObject<{ handoff: z.ZodString; reason: z.ZodOptional; }, z.core.$strict>, z.ZodObject<{ escalate: z.ZodString; }, z.core.$strict>, z.ZodObject<{ end: z.ZodString; }, z.core.$strict>, z.ZodLiteral<"stay">]>>; confirmGate: z.ZodOptional>; }, z.core.$strict>, z.ZodObject<{ handoff: z.ZodString; reason: z.ZodOptional; }, z.core.$strict>, z.ZodObject<{ escalate: z.ZodString; }, z.core.$strict>, z.ZodObject<{ end: z.ZodString; }, z.core.$strict>, z.ZodLiteral<"stay">]>; onDecline: z.ZodUnion>; }, z.core.$strict>, z.ZodObject<{ handoff: z.ZodString; reason: z.ZodOptional; }, z.core.$strict>, z.ZodObject<{ escalate: z.ZodString; }, z.core.$strict>, z.ZodObject<{ end: z.ZodString; }, z.core.$strict>, z.ZodLiteral<"stay">]>; onAmbiguous: z.ZodOptional>; }, z.core.$strict>, z.ZodObject<{ handoff: z.ZodString; reason: z.ZodOptional; }, z.core.$strict>, z.ZodObject<{ escalate: z.ZodString; }, z.core.$strict>, z.ZodObject<{ end: z.ZodString; }, z.core.$strict>, z.ZodLiteral<"stay">]>>; }, z.core.$strict>>; }, z.core.$strict>]>>; gates: z.ZodOptional; severity: z.ZodEnum<{ blocking: "blocking"; advisory: "advisory"; }>; when: z.ZodType>; }, z.core.$strict>, z.ZodObject<{ id: z.ZodString; kind: z.ZodLiteral<"judge">; severity: z.ZodEnum<{ blocking: "blocking"; advisory: "advisory"; }>; inputs: z.ZodArray; rubric: z.ZodOptional; }, z.core.$strict>], "kind">>>; }, z.core.$strict>; export type ValidatableFlowNodeDefinition = z.infer; export type ValidatableFlowDefinition = z.infer;