import type { PortableTool } from "../portable-tool.js";
export type WorkflowAction = "list" | "get" | "describe" | "create" | "patch" | "setActive" | "run" | "delete";
export interface WorkflowToolParams {
    action: WorkflowAction;
    workflowId?: string;
    name?: string;
    def?: Record<string, unknown>;
    patch?: unknown[];
    baseRev?: number;
    scope?: string[];
    active?: boolean;
}
export interface WorkflowToolRecord {
    id: string;
    name?: string;
    rev?: number;
    active?: boolean;
}
export interface WorkflowRunOutcome {
    status?: string;
}
export interface WorkflowToolService {
    list(): Promise<WorkflowToolRecord[]>;
    get(id: string): Promise<unknown>;
    describe(id: string): Promise<string>;
    create(input: {
        id: string;
        name: string;
        def: Record<string, unknown>;
        active: boolean;
    }): Promise<WorkflowToolRecord>;
    patch(id: string, envelope: {
        patch: unknown[];
        baseRev?: number;
        scope?: string[];
    }): Promise<unknown>;
    setActive(id: string, active: boolean): Promise<WorkflowToolRecord>;
    run(id: string): Promise<WorkflowRunOutcome>;
    delete(id: string): Promise<void>;
}
export interface WorkflowToolDeps {
    /** Resolve the host-owned workflow service port. Keeps skills independent from orchestration internals. */
    getService(): WorkflowToolService;
}
export declare function createWorkflowTool(deps: WorkflowToolDeps): PortableTool<WorkflowToolParams>;
