import "../../shared/args.mjs"; import { WorkflowWaitUntil } from "./status.mjs"; import { WorkflowWaitResult } from "./waiter.mjs"; import { z } from "zod"; import { Jsonifiable } from "type-fest"; import { MachineUserName } from "@tailor-platform/sdk"; //#region src/cli/commands/workflow/start.d.ts type WorkflowLike = { name: string; mainJob: { body: unknown; }; }; type WorkflowInput = W extends WorkflowLike ? W["mainJob"]["body"] extends ((...args: infer Args) => unknown) ? Args[0] : never : never; type StartWorkflowArgOptionForSingleWorkflow = WorkflowLike extends W ? { arg?: Jsonifiable; } : undefined extends WorkflowInput ? { arg?: WorkflowInput; } : { arg: WorkflowInput; }; type StartWorkflowArgOption = W extends WorkflowLike ? StartWorkflowArgOptionForSingleWorkflow : never; type StartWorkflowTypedBaseOptions = { workflow: W; invoker: MachineUserName; workspaceId?: string; profile?: string; configPath?: string; interval?: number; }; export type StartWorkflowTypedOptions = W extends WorkflowLike ? StartWorkflowTypedBaseOptions & StartWorkflowArgOption : never; export interface WaitOptions { showProgress?: boolean; timeout?: number; until?: WorkflowWaitUntil; } export interface StartWorkflowResultWithWait { executionId: string; wait: (options?: WaitOptions) => Promise; } /** * Start a workflow and return a handle to wait for completion. * @param options - Start options * @returns Start result with wait helper */ export declare function startWorkflow(options: StartWorkflowTypedOptions): Promise; //#endregion