import type { ConfigManager } from '../config/manager.js';
import type { ProviderRegistry } from '../providers/registry.js';
import { AgentMessageBus } from './message-bus.js';
import type { ChannelPluginRegistry } from '../channels/index.js';
import { FileStateCache } from '@pellux/goodvibes-sdk/platform/state/file-cache';
import { ProjectIndex } from '@pellux/goodvibes-sdk/platform/state/project-index';
import type { AgentRecord } from '../tools/agent/index.js';
import type { ToolLLM } from '../config/tool-llm.js';
import type { FeatureFlagManager } from '@pellux/goodvibes-sdk/platform/runtime/feature-flags/manager';
import type { RuntimeEventBus } from '../runtime/events/index.js';
export { summarizeToolArgs } from '@pellux/goodvibes-sdk/platform/agents/orchestrator-utils';
type AgentOrchestratorToolDeps = {
    readonly fileCache: FileStateCache;
    readonly projectIndex: ProjectIndex;
    readonly workingDirectory: string;
    readonly fileUndoManager: import('@pellux/goodvibes-sdk/platform/state/file-undo').FileUndoManager;
    readonly modeManager: import('@pellux/goodvibes-sdk/platform/state/mode-manager').ModeManager;
    readonly processManager: import('@pellux/goodvibes-sdk/platform/tools/shared/process-manager').ProcessManager;
    readonly agentMessageBus: AgentMessageBus;
    readonly webSearchService?: import('../web-search/index.js').WebSearchService;
    readonly channelRegistry?: import('../channels/index.js').ChannelPluginRegistry | null;
    readonly remoteRunnerRegistry?: import('../runtime/remote/index.js').RemoteRunnerRegistry;
    readonly knowledgeService?: import('../knowledge/index.js').KnowledgeService;
    readonly memoryRegistry?: import('../state/index.js').MemoryRegistry;
    readonly sessionOrchestration: import('@pellux/goodvibes-sdk/platform/sessions/orchestration/index').CrossSessionTaskRegistry;
    readonly archetypeLoader?: import('@pellux/goodvibes-sdk/platform/agents/archetypes').ArchetypeLoader;
    readonly configManager?: ConfigManager;
    readonly providerRegistry?: ProviderRegistry;
    readonly providerOptimizer?: import('../providers/optimizer.js').ProviderOptimizer;
    readonly toolLLM?: ToolLLM;
    readonly serviceRegistry?: import('../config/service-registry.js').ServiceRegistry;
    readonly featureFlags?: Pick<FeatureFlagManager, 'isEnabled'> | null;
    readonly overflowHandler?: import('@pellux/goodvibes-sdk/platform/tools/shared/overflow').OverflowHandler;
    readonly sandboxSessionRegistry: import('../runtime/sandbox/session-registry.js').SandboxSessionRegistry;
    readonly workflowServices: ReturnType<typeof import('@pellux/goodvibes-sdk/platform/tools/workflow/index').createWorkflowServices>;
};
/**
 * AgentOrchestrator — runs AgentRecord tasks in-process.
 *
 * Each agent gets its own scoped ToolRegistry containing only the tools
 * listed in record.tools. The execution loop itself now lives in
 * `orchestrator-runner.ts`; this class owns shared registry/state wiring.
 */
export declare class AgentOrchestrator {
    private fullRegistry;
    private fullRegistryChannelVersion;
    private toolDeps;
    private featureFlagManager;
    private runtimeBus;
    private readonly channelRegistry;
    private readonly messageBus;
    constructor(config?: {
        channelRegistry?: ChannelPluginRegistry | null;
        messageBus: import('./message-bus.js').AgentMessageBus;
    });
    setRuntimeBus(runtimeBus: RuntimeEventBus | null): void;
    /** Set the FeatureFlagManager for context-window awareness gating. */
    setFeatureFlagManager(manager: FeatureFlagManager): void;
    private emitterContext;
    private emitAgentProgress;
    private emitOrchestrationProgress;
    private emitAgentStarted;
    private emitAgentCancelledEvent;
    private emitOrchestrationCancelled;
    private emitAgentFailedEvent;
    private emitOrchestrationFailed;
    private emitAgentCompletedEvent;
    private emitOrchestrationCompleted;
    private emitStreamDelta;
    /**
     * Inject shared file-cache and project-index so agent tools share state with main session.
     * Call once during application startup, before any agents are spawned.
     */
    setDependencies(toolDeps: AgentOrchestratorToolDeps): void;
    /** Lazily build and cache the full ToolRegistry. */
    private getFullRegistry;
    /**
     * Build a ToolRegistry containing only the tools whose names appear in
     * the allowedNames list. Filters the provided full registry into a fresh
     * scoped registry.
     */
    private buildScopedRegistry;
    private resolveProviderForRecord;
    private resolveProviderRouting;
    private normalizeRequestedModelId;
    private resolveChatModelId;
    private resolveFallbackModelRoutes;
    private createRunContext;
    /** Run an agent task described by the given record. */
    runAgent(record: AgentRecord): Promise<void>;
}
//# sourceMappingURL=orchestrator.d.ts.map