import type { AgentLogger, ChatMessage, ToolInvoker } from "../agent/types.js";
import type { HookRegistry } from "../contracts/hooks.js";
import type { BackgroundTaskManager } from "../runtime/infra/background-tasks.js";
import type { ToolCatalog } from "../runtime/ports/index.js";
import type { LLMTransport } from "./provider-core-facade.js";
export interface CliCoreToolHostDeps {
    getAgent(): unknown | null;
    getCurrentTransport(): LLMTransport | null;
    getCurrentProvider(): string;
    getCurrentApiKey(): string;
    getCurrentModel(): string;
    getCurrentBaseUrl(): string;
    getCurrentSessionId(): string;
    getActiveProjectRoot(): string;
    getVerbose(): boolean;
    getBackgroundTasks(): BackgroundTaskManager | null;
    getConversationHistory(): readonly ChatMessage[] | null;
    isGroupContext(): boolean;
    getMemoryIndex(): string | 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 interface CliCoreToolCoordinatorDeps {
    config: Record<string, unknown>;
    host: CliCoreToolHostDeps;
    hooks: HookRegistry;
    log: AgentLogger;
    toolCatalog: ToolCatalog;
    toolInvoker: ToolInvoker;
}
export declare const coreToolRegistrationModule: import("../runtime/ports/tool-contracts.js").ToolRegistrationModule<CliCoreToolCoordinatorDeps>;
export declare function configureCliCoreTools(deps: CliCoreToolCoordinatorDeps): void;
