import { type WorkflowParticipant } from "./participant.js";
export type WorkflowMode = "read" | "edit" | "yolo";
export interface RunAgentHooks {
    from: string;
    strategy?: "auto" | "symlink" | "transform";
    scope?: "project" | "user" | "merged";
}
export interface WorkflowHook {
    participant?: string;
    mode?: WorkflowMode;
    prompt: string;
}
export interface RunAgentInput {
    agent: string;
    prompt: string;
    mode: WorkflowMode;
    cwd: string;
    model?: string;
    skills?: string[];
    hooks?: RunAgentHooks;
    signal?: AbortSignal;
}
export type RunAgentFn = (input: RunAgentInput) => Promise<unknown>;
export interface HookContext {
    cwd: string;
    participants: Record<string, WorkflowParticipant>;
    runAgent: RunAgentFn;
    signal?: AbortSignal;
}
export declare function runWorkflowHook(hook: WorkflowHook, context: HookContext): Promise<void>;
