import type { HumanInLoopProvider } from "../../../agent-human-in-loop/dist/index.js";
import type { TaskList } from "../../../task-list/dist/index.js";
import type { ObjectSchema, Static } from "../../../toolcraft-schema/dist/index.js";
import { UserError } from "../user-error.js";
export interface HumanInLoopConfig<TParamsSchema extends ObjectSchema<any>> {
    mode: "sync" | "async";
    message: (ctx: {
        params: Static<TParamsSchema>;
        commandPath: string;
    }) => string;
    declineInputPrompt?: string;
}
export interface HumanInLoopRuntimeOptions {
    provider?: HumanInLoopProvider;
    taskList?: TaskList | {
        dir: string;
        format: "markdown-dir" | "yaml-file";
    };
    listName?: string;
    binPath?: {
        execPath: string;
        entryArgs: readonly string[];
    };
}
export interface HumanInLoopPending {
    status: "pending-approval";
    approvalId: string;
    message: string;
    enqueuedAt: string;
}
export declare class ApprovalDeclinedError extends UserError {
    readonly reason?: string;
    readonly approvalId?: string;
    readonly commandPath: string;
    constructor(options: {
        commandPath: string;
        reason?: string;
        approvalId?: string;
    });
}
export type { HumanInLoopProvider } from "../../../agent-human-in-loop/dist/index.js";
