import type { AiEmbedNodeConfig, AiGenerateNodeConfig, AiImageNodeConfig, AiStreamNodeConfig, AiSttNodeConfig, AiTtsNodeConfig, AiVideoNodeConfig, BranchNodeConfig, ExtractNodeConfig, MergeNodeConfig, NoopNodeConfig, ScriptNodeConfig, TemplateNodeConfig, WorkflowDefinition, WorkflowEdge, WorkflowNode } from './generated/runtime/v1/workflow.js';
import { WorkflowExecutionMode, WorkflowResumeStrategy } from './generated/runtime/v1/workflow.js';
export type WorkflowNodeBase = {
    nodeId: string;
    dependsOn?: readonly string[];
    retryMaxAttempts?: number;
    retryBackoff?: string;
    executionMode?: WorkflowExecutionMode;
    resumeStrategy?: WorkflowResumeStrategy;
    callbackRef?: string;
};
export declare function workflowEdge(input: {
    fromNodeId: string;
    fromOutput: string;
    toNodeId: string;
    toInput: string;
}): WorkflowEdge;
export declare function workflowDefinition(input: {
    workflowType: string;
    nodes: readonly WorkflowNode[];
    edges?: readonly WorkflowEdge[];
}): WorkflowDefinition;
export declare function aiGenerateNode(input: WorkflowNodeBase & {
    config: AiGenerateNodeConfig;
}): WorkflowNode;
export declare function aiStreamNode(input: WorkflowNodeBase & {
    config: AiStreamNodeConfig;
}): WorkflowNode;
export declare function aiEmbedNode(input: WorkflowNodeBase & {
    config: AiEmbedNodeConfig;
}): WorkflowNode;
export declare function aiImageNode(input: WorkflowNodeBase & {
    config: AiImageNodeConfig;
}): WorkflowNode;
export declare function aiVideoNode(input: WorkflowNodeBase & {
    config: AiVideoNodeConfig;
}): WorkflowNode;
export declare function aiTtsNode(input: WorkflowNodeBase & {
    config: AiTtsNodeConfig;
}): WorkflowNode;
export declare function aiSttNode(input: WorkflowNodeBase & {
    config: AiSttNodeConfig;
}): WorkflowNode;
export declare function extractNode(input: WorkflowNodeBase & {
    config: ExtractNodeConfig;
}): WorkflowNode;
export declare function templateNode(input: WorkflowNodeBase & {
    config: TemplateNodeConfig;
}): WorkflowNode;
export declare function scriptNode(input: WorkflowNodeBase & {
    config: ScriptNodeConfig;
}): WorkflowNode;
export declare function branchNode(input: WorkflowNodeBase & {
    config: BranchNodeConfig;
}): WorkflowNode;
export declare function mergeNode(input: WorkflowNodeBase & {
    config: MergeNodeConfig;
}): WorkflowNode;
export declare function noopNode(input: WorkflowNodeBase & {
    config?: NoopNodeConfig;
}): WorkflowNode;
//# sourceMappingURL=workflow-builder.d.ts.map