import { CommonWorkflowOptions, SignalDefinition, WithWorkflowArgs, Workflow, VersioningOverride } from '@temporalio/common'; import { Duration } from '@temporalio/common/lib/time'; import { Replace } from '@temporalio/common/lib/type-helpers'; import { google, temporal } from '@temporalio/proto'; export * from '@temporalio/common/lib/workflow-options'; export interface CompiledWorkflowOptions extends WithCompiledWorkflowOptions { args: unknown[]; } export interface WorkflowOptions extends CommonWorkflowOptions { /** * Workflow id to use when starting. * * Assign a meaningful business id. * This ID can be used to ensure starting Workflows is idempotent. * Workflow IDs are unique: see {@link WorkflowOptions.workflowIdReusePolicy} * and {@link WorkflowOptions.workflowIdConflictPolicy}. */ workflowId: string; /** * Task queue to use for Workflow tasks. It should match a task queue specified when creating a * `Worker` that hosts the Workflow code. */ taskQueue: string; /** * If set to true, instructs the client to follow the chain of execution before returning a Workflow's result. * * Workflow execution is chained if the Workflow has a cron schedule or continues-as-new or configured to retry * after failure or timeout. * * @default true */ followRuns?: boolean; /** * Amount of time to wait before starting the workflow. */ startDelay?: Duration; /** * Override the versioning behavior of the Workflow that is about to be started. */ versioningOverride?: VersioningOverride; /** * Potentially reduce the latency to start this workflow by requesting that the server * start it on a local worker running with this same client. */ requestEagerStart?: boolean; } export type WithCompiledWorkflowOptions = Replace; export declare function compileWorkflowOptions(options: T): WithCompiledWorkflowOptions; export interface WorkflowUpdateOptions { /** * The Update Id, which is a unique-per-Workflow-Execution identifier for this Update. * * We recommend setting it to a meaningful business ID or idempotency key (like a request ID) passed from upstream. If * it is not provided, it will be set to a random string by the Client. If the Server receives two Updates with the * same Update Id to a Workflow Execution with the same Run Id, the second Update will return a handle to the first * Update. */ readonly updateId?: string; } export type WorkflowSignalWithStartOptions = SignalArgs extends [any, ...any[]] ? WorkflowSignalWithStartOptionsWithArgs : WorkflowSignalWithStartOptionsWithoutArgs; export interface WorkflowSignalWithStartOptionsWithoutArgs extends Omit { /** * SignalDefinition or name of signal */ signal: SignalDefinition | string; /** * Arguments to invoke the signal handler with */ signalArgs?: SignalArgs; } export interface WorkflowSignalWithStartOptionsWithArgs extends Omit { /** * SignalDefinition or name of signal */ signal: SignalDefinition | string; /** * Arguments to invoke the signal handler with */ signalArgs: SignalArgs; } /** * Options for starting a Workflow */ export type WorkflowStartOptions = WithWorkflowArgs;