export interface OutputFormatProperty {
    type: string;
    enum?: string[];
}
export interface OutputFormat {
    type: 'object';
    properties: Record<string, OutputFormatProperty>;
    required?: string[];
}
export type ErrorStrategy = 'skip_dependents' | 'fail_workflow' | 'continue';
export interface InputParamDef {
    type: 'string' | 'number' | 'boolean';
    required?: boolean;
    default?: string;
}
export type TriggerRule = 'all_success' | 'one_success';
export interface LoopConfig {
    on_fail: string;
    max_retries: number;
    inject_error?: boolean;
    backoff_ms?: number;
}
export interface NodeDefinition {
    id: string;
    description?: string;
    prompt?: string;
    bash?: string;
    command?: string;
    depends_on?: string[];
    when?: string;
    trigger_rule?: TriggerRule;
    context?: 'fresh' | 'inherit';
    model?: string;
    allowed_tools?: string[];
    output_format?: OutputFormat;
    workspace?: boolean;
    loop?: LoopConfig;
    on_error?: ErrorStrategy;
    idempotent?: boolean;
    timeout?: number;
}
export interface WorkflowDefinition {
    name: string;
    description?: string;
    provider?: string;
    model?: string;
    inputs?: Record<string, InputParamDef>;
    nodes: NodeDefinition[];
}
//# sourceMappingURL=workflow.d.ts.map