import type { AgentLogger } from "../../agent/types.js";
import type { BackgroundTaskManager } from "../../runtime/infra/background-tasks.js";
import type { TeamToolDeps } from "../../skills/tools/team-tool.js";
import type { TeamRegistry } from "./team-registry.js";
export interface TeamToolService extends TeamToolDeps {
    dispose(): void;
}
export interface TeamToolServiceHost {
    readonly currentSessionId: string;
    readonly verbose: boolean;
    /**
     * The leader's resolved LLM config, pushed to each spawned member as standing
     * session config (session/set_config_option). Without it a standalone member
     * (no llmrouter directory to hydrate a catalog from) cannot provision a
     * provider, and its first reply turn fails with NO_PROVIDER. Returns null
     * when the leader has no resolved provider yet.
     */
    getLlmConfig(): {
        provider: string;
        model: string;
        apiKey: string;
        baseUrl?: string;
    } | null;
    /** Lightweight memory INDEX injected into each member's system prompt (parent context). */
    getMemoryIndex(): string | null;
    /**
     * Unified background-task registry. Team members register here as `team_member`
     * tasks so the `task` tool's list/output/cancel reach them. Null when unbound.
     */
    getBackgroundTasks(): BackgroundTaskManager | null;
    sendNotification(method: string, params: Record<string, unknown>): void;
    emitAgentStatus(agentId: string, state: string, extra?: {
        missedBeats?: number;
        lastActivityAt?: number;
        usage?: {
            inputTokens: number;
            outputTokens: number;
            totalTokens: number;
        };
    }): void;
    handleMcpToolCall(memberId: string, toolName: string, args: Record<string, unknown>): Promise<unknown>;
}
export declare function createTeamToolService(host: TeamToolServiceHost, log: AgentLogger, registry: TeamRegistry): TeamToolService;
