import type { SoloSpecChatResult, SoloSpecJudgeResult, WorkflowChatResult } from "../protocol/wire/acp-agent-management.js";
import { type DreamHandlerHost } from "./handlers/dream-handler.js";
import { type ProductCoordinatorHost } from "./handlers/product-handler.js";
import { type SoloHandlerHost } from "./handlers/solo-handler.js";
import type { LLMTransport } from "./provider-core-facade.js";
export interface AcpExtendedHost extends DreamHandlerHost, SoloHandlerHost, ProductCoordinatorHost {
    activeTurn?: AbortController | null;
    currentTurnId?: string;
    currentSessionId?: string;
    getActiveProjectRoot(): string;
    log(message: string): void;
    resolveClientForPurpose(purpose: "textGeneration"): {
        transport: LLMTransport;
        apiKey: string;
        model: string;
    } | null;
    /** Parked ask_user resolvers, keyed by requestId; resolved by thread.user_response. */
    pendingAskUser: Map<string, {
        resolve: (answers: Record<string, string> | null) => void;
    }>;
}
export declare function handleAcpDream(host: AcpExtendedHost, params: {
    sessionId: string;
    config?: Record<string, unknown>;
}): Promise<{
    ok: boolean;
    summary?: string;
}>;
export declare function handleAcpSoloStart(host: AcpExtendedHost, params: Record<string, unknown>): Promise<unknown>;
export declare function handleAcpSoloStatus(host: AcpExtendedHost, params: Record<string, unknown>): Promise<unknown>;
export declare function handleAcpSoloSelect(host: AcpExtendedHost, params: Record<string, unknown>): Promise<unknown>;
export declare function handleAcpSoloCancel(host: AcpExtendedHost, params: Record<string, unknown>): Promise<unknown>;
export declare function handleAcpSoloSubscribe(host: AcpExtendedHost, params: Record<string, unknown>): Promise<unknown>;
export declare function handleAcpSoloMessage(host: AcpExtendedHost, params: Record<string, unknown>): Promise<unknown>;
export declare function handleAcpSoloEvaluate(host: AcpExtendedHost, params: Record<string, unknown>): Promise<unknown>;
/**
 * R3 多轮对话式 spec(x/solo.specChat):每轮带全量 history 跑一次 runSpecChatRound(受限工具
 * ask_user + set_spec,纯推理不改文件)。澄清走 Cut6 的 turn.ask_user/thread.user_response 往返。
 * 成功返回 { reply, spec };LLM/连接级失败降级 { error }(不抛,前端可重发)。
 */
export declare function handleAcpSoloSpecChat(host: AcpExtendedHost, params: Record<string, unknown>): Promise<SoloSpecChatResult>;
/**
 * R3 启动软门防呆(x/solo.specJudge):用 host LLM 一次性评判 spec 是否达可开赛标准。
 * 无 LLM → 降级放行({ ok:true })(软门本就"警告可走")。返回 { ok, issues[] }。
 */
export declare function handleAcpSoloSpecJudge(host: AcpExtendedHost, params: Record<string, unknown>): Promise<SoloSpecJudgeResult>;
/**
 * M4 自动化页对话式搭图/改图(x/workflow.chat):forked agent + propose_workflow 工具,产出工作流提案
 * (新建 def / 改已有 patch),propose-only 无副作用。澄清走 Cut6 ask 往返。失败降级 { error } 不抛。
 * 应用由前端经既有 workflow.create/patch 完成(触发 WS 回流画布),故本轮不碰引擎控制器。
 */
export declare function handleAcpWorkflowChat(host: AcpExtendedHost, params: Record<string, unknown>): Promise<WorkflowChatResult>;
export declare function handleAcpAgentsList(host: AcpExtendedHost): Promise<unknown>;
/**
 * x/workflow.matchIntent(spec D22 语义兜底)— 确定性短语在客户端已查过且未命中,且存在
 * semantic:true 的活跃意图工作流时才会被调用:对候选集做**一次**轻量 LLM 分类(单发,非 agent
 * turn)。候选枚举是纯文件读(active root + automation 项目的工作流 store),不经引擎。
 * 无 LLM / 分类失败 → {matched:null}(放行进正常聊天,绝不拦死用户消息)。
 */
export declare function handleAcpWorkflowMatchIntent(host: AcpExtendedHost, params: Record<string, unknown>): Promise<unknown>;
export declare function handleAcpProductCreate(host: AcpExtendedHost, params: Record<string, unknown>): Promise<unknown>;
export declare function handleAcpProductPlan(host: AcpExtendedHost, params: Record<string, unknown>): Promise<unknown>;
export declare function handleAcpProductConfirm(host: AcpExtendedHost, params: Record<string, unknown>): Promise<unknown>;
export declare function handleAcpProductMessage(host: AcpExtendedHost, params: Record<string, unknown>): Promise<unknown>;
export declare function handleAcpProductResume(host: AcpExtendedHost, params: Record<string, unknown>): Promise<unknown>;
export declare function handleAcpProductStatus(host: AcpExtendedHost, params: Record<string, unknown>): Promise<unknown>;
export declare function handleAcpProductPause(host: AcpExtendedHost, params: Record<string, unknown>): Promise<unknown>;
export declare function handleAcpProductCancel(host: AcpExtendedHost, params: Record<string, unknown>): Promise<unknown>;
export declare function handleAcpProductRollback(host: AcpExtendedHost, params: Record<string, unknown>): Promise<unknown>;
export declare function handleAcpProductSubscribe(host: AcpExtendedHost, params: Record<string, unknown>): Promise<unknown>;
