import type { AgentRpcError } from "../protocol/wire/index.js";
import type { AgentConfigRuntime, AgentConfigRuntimeDeps } from "./agent-config-runtime.js";
import type { AgentsHandlerHost } from "./handlers/agents-handler.js";
import type { ProductHandlerHost } from "./handlers/product-handler.js";
import type { SoloHandlerHost } from "./handlers/solo-handler.js";
type AgentStatusExtra = {
    missedBeats?: number;
    lastActivityAt?: number;
    usage?: {
        inputTokens: number;
        outputTokens: number;
        totalTokens: number;
    };
};
export type MultiAgentHandlerHost = AgentsHandlerHost & SoloHandlerHost & ProductHandlerHost;
export interface MultiAgentHandlerHostDeps {
    acpDetector?: AgentsHandlerHost["acpDetector"];
    createAgentConfigRuntime?: (deps: AgentConfigRuntimeDeps) => AgentConfigRuntime;
    getActiveProjectRoot(): string;
    emitAgentStatus(agentId: string, state: string, extra?: AgentStatusExtra): void;
    handleMcpToolCall(memberId: string, toolName: string, args: Record<string, unknown>): Promise<unknown>;
    log(message: string): void;
    sendNotification(method: string, params: Record<string, unknown>): void;
    sendResponse(id: string | number, result?: unknown, error?: AgentRpcError): void;
}
export declare function createMultiAgentHandlerHost(deps: MultiAgentHandlerHostDeps): MultiAgentHandlerHost;
export {};
