import type { HookEvent, HookResult } from '@pellux/goodvibes-sdk/platform/hooks/types';
import type { ToolCall, ToolResult } from '@pellux/goodvibes-sdk/platform/types/tools';
import type { ToolRegistry } from '@pellux/goodvibes-sdk/platform/tools/registry';
import type { PermissionManager } from '../permissions/manager.js';
import type { RuntimeEventBus } from '../runtime/events/index.js';
import { type ReconciliationReason } from '@pellux/goodvibes-sdk/platform/core/tool-reconciliation';
import type { ConfigManager } from '../config/manager.js';
import type { AgentManager } from '../tools/agent/index.js';
import type { ExecutionPlan, ExecutionPlanManager, PlanItem } from '@pellux/goodvibes-sdk/platform/core/execution-plan';
import type { ProviderRegistry } from '../providers/registry.js';
type HookDispatcherLike = {
    fire(event: HookEvent): Promise<HookResult>;
};
type EmitterContextFactory = (turnId: string) => import('../runtime/emitters/index.js').EmitterContext;
export type ToolExecutionDeps = {
    toolRegistry: ToolRegistry;
    permissionManager: PermissionManager;
    hookDispatcher: HookDispatcherLike | null;
    runtimeBus: RuntimeEventBus | null;
    sessionId: string;
    emitterContext: EmitterContextFactory;
};
export declare function executeToolCalls(deps: ToolExecutionDeps, turnId: string, calls: ToolCall[]): Promise<ToolResult[]>;
export type ReconciliationDeps = {
    conversation: {
        addToolResults: (results: ToolResult[]) => void;
        addSystemMessage: (message: string) => void;
    };
    runtimeBus: RuntimeEventBus | null;
    emitterContext: EmitterContextFactory;
    isReconciliationEnabled: () => boolean;
    currentSubmissionKey: string | null;
    pendingToolCalls: ToolCall[];
    setPendingToolCalls: (calls: ToolCall[]) => void;
};
export declare function reconcileUnresolvedToolCalls(deps: ReconciliationDeps, resolvedResults: ToolResult[], reason: ReconciliationReason): void;
export declare function autoSpawnPendingItems(conversation: {
    addSystemMessage: (message: string) => void;
}, plan: ExecutionPlan, items: PlanItem[], agentManager: Pick<AgentManager, 'list' | 'spawn'>, configManager: Pick<ConfigManager, 'get'>, providerRegistry: Pick<ProviderRegistry, 'getCurrentModel'>, runtimeBus?: RuntimeEventBus | null, emitterContext?: import('../runtime/emitters/index.js').EmitterContext | null, planManager?: Pick<ExecutionPlanManager, 'updateItem'> | null): string[];
export {};
//# sourceMappingURL=orchestrator-tool-runtime.d.ts.map