import type { SignalDefinition, SignalTypeInfo, Workflow, WorkflowResultType } from './interfaces'; import type { PayloadTypeInfo } from './type-info'; /** * Options for signaling a Workflow by Signal name. * * @experimental */ export interface WorkflowSignalOptions { /** Arguments to pass to the Signal handler. */ args?: Args; /** Type information used to convert Signal arguments. */ typeInfo?: SignalTypeInfo; } /** * Options for querying a Workflow by Query name. * * @experimental */ export interface WorkflowQueryOptions { /** Arguments to pass to the Query handler. */ args?: Args; /** Type information used to convert Query arguments and results. */ typeInfo?: PayloadTypeInfo; } /** * Base WorkflowHandle interface, extended in workflow and client libs. * * Transforms a workflow interface `T` into a client interface. */ export interface BaseWorkflowHandle { /** * Promise that resolves when Workflow execution completes */ result(): Promise>; /** * Signal a running Workflow. * * To provide call-site TypeInfo when signaling by name, use {@link signalWithOptions}. * * @param def a signal definition as returned from {@link defineSignal}, or a signal name * * @example * ```ts * await handle.signal(incrementSignal, 3); * ``` */ signal( def: SignalDefinition | string, ...args: Args ): Promise; /** * Signal a running Workflow by Signal name with additional options, including call-site TypeInfo. * * @experimental */ signalWithOptions(signalName: string, options: WorkflowSignalOptions): Promise; /** * The workflowId of the current Workflow */ readonly workflowId: string; }