import { ConfigManager } from '../config/manager.js';
import { SecretsManager } from '../config/secrets.js';
import { ServiceRegistry } from '../config/service-registry.js';
import { SubscriptionManager } from '../config/subscriptions.js';
import { AutomationDeliveryManager, AutomationManager } from '../automation/index.js';
import { ChannelPluginRegistry, ChannelPolicyManager, RouteBindingManager, SurfaceRegistry } from '../channels/index.js';
import { ChannelDeliveryRouter } from '../channels/delivery-router.js';
import { ApprovalBroker, GatewayMethodCatalog, SharedSessionBroker } from '../control-plane/index.js';
import { WatcherRegistry } from '../watchers/index.js';
import { ArtifactStore } from '../artifacts/index.js';
import { HomeGraphService, KnowledgeService, ProjectPlanningService } from '../knowledge/index.js';
import { MediaProviderRegistry } from '../media/index.js';
import { MultimodalService } from '../multimodal/index.js';
import { AgentManager } from '../tools/agent/index.js';
import { AgentMessageBus } from '../agents/message-bus.js';
import { WrfcController } from '../agents/wrfc-controller.js';
import { AgentOrchestrator } from '../agents/orchestrator.js';
import { ArchetypeLoader } from '../agents/archetypes.js';
import { ProcessManager } from '../tools/shared/process-manager.js';
import { ModeManager } from '../state/mode-manager.js';
import { FileUndoManager } from '../state/file-undo.js';
import { MemoryRegistry } from '../state/memory-registry.js';
import { MemoryStore } from '../state/memory-store.js';
import type { RuntimeEventBus } from './events/index.js';
import type { DomainDispatch, RuntimeStore } from './store/index.js';
import { DistributedRuntimeManager } from './remote/distributed-runtime-manager.js';
import { RemoteRunnerRegistry, RemoteSupervisor } from './remote/index.js';
import { IntegrationHelperService } from './integration/helpers.js';
import { VoiceProviderRegistry, VoiceService } from '../voice/index.js';
import { WebSearchProviderRegistry, WebSearchService } from '../web-search/index.js';
import { MemoryEmbeddingProviderRegistry } from '../state/memory-embeddings.js';
import { HookActivityTracker } from '../hooks/activity.js';
import { HookDispatcher, type HookWorkbench } from '../hooks/index.js';
import { PluginManager } from '../plugins/manager.js';
import { BookmarkManager } from '../bookmarks/manager.js';
import { ProfileManager } from '../profiles/manager.js';
import { SessionManager } from '../sessions/manager.js';
import { CrossSessionTaskRegistry } from '../sessions/orchestration/index.js';
import { ApiTokenAuditor } from '../security/token-audit.js';
import { UserAuthManager } from '../security/user-auth.js';
import { WebhookNotifier } from '../integrations/webhooks.js';
import { McpRegistry } from '../mcp/registry.js';
import { DeterministicReplayEngine } from '../core/deterministic-replay.js';
import { ProviderOptimizer } from '../providers/optimizer.js';
import { ProviderRegistry } from '../providers/registry.js';
import { ProviderCapabilityRegistry } from '../providers/capabilities.js';
import { CacheHitTracker } from '../providers/cache-strategy.js';
import { FavoritesStore } from '../providers/favorites.js';
import { BenchmarkStore } from '../providers/model-benchmarks.js';
import { ModelLimitsService } from '../providers/model-limits.js';
import { SessionMemoryStore } from '../core/session-memory.js';
import { SessionLineageTracker } from '../core/session-lineage.js';
import { SessionChangeTracker } from '../sessions/change-tracker.js';
import { ExecutionPlanManager } from '../core/execution-plan.js';
import { AdaptivePlanner } from '../core/adaptive-planner.js';
import { IdempotencyStore } from './idempotency/index.js';
import { OverflowHandler } from '../tools/shared/overflow.js';
import { ToolLLM } from '../config/tool-llm.js';
import { ComponentHealthMonitor } from './perf/component-health-monitor.js';
import { WorktreeRegistry } from './worktree/registry.js';
import { SandboxSessionRegistry } from './sandbox/session-registry.js';
import { type ShellPathService } from './shell-paths.js';
import type { FeatureFlagManager } from './feature-flags/index.js';
import { PolicyRuntimeState } from './permissions/policy-runtime.js';
import { type KeybindingsManagerLike, type PanelManagerLike } from './host-ui.js';
import { type WorkflowServices } from '../tools/workflow/index.js';
export interface RuntimeServicesOptions {
    readonly runtimeBus: RuntimeEventBus;
    readonly runtimeStore: RuntimeStore;
    readonly configManager: ConfigManager;
    readonly surfaceRoot: string;
    readonly featureFlags?: FeatureFlagManager | undefined;
    readonly getConversationTitle?: (() => string | undefined) | undefined;
    readonly workingDir: string;
    readonly homeDirectory: string;
    readonly panelManager?: PanelManagerLike | undefined;
    readonly keybindingsManager?: KeybindingsManagerLike | undefined;
}
export interface RuntimeServices {
    readonly workingDirectory: string;
    readonly homeDirectory: string;
    readonly shellPaths: ShellPathService;
    readonly configManager: ConfigManager;
    readonly featureFlags: FeatureFlagManager;
    readonly runtimeBus: RuntimeEventBus;
    readonly runtimeStore: RuntimeStore;
    readonly runtimeDispatch: DomainDispatch;
    readonly panelManager: PanelManagerLike;
    readonly keybindingsManager: KeybindingsManagerLike;
    readonly routeBindings: RouteBindingManager;
    readonly surfaceRegistry: SurfaceRegistry;
    readonly channelPlugins: ChannelPluginRegistry;
    readonly channelDeliveryRouter: ChannelDeliveryRouter;
    readonly watcherRegistry: WatcherRegistry;
    readonly approvalBroker: ApprovalBroker;
    readonly sessionBroker: SharedSessionBroker;
    readonly deliveryManager: AutomationDeliveryManager;
    readonly automationManager: AutomationManager;
    readonly gatewayMethods: GatewayMethodCatalog;
    readonly artifactStore: ArtifactStore;
    readonly knowledgeService: KnowledgeService;
    readonly homeGraphService: HomeGraphService;
    readonly projectPlanningService: ProjectPlanningService;
    readonly memoryStore: MemoryStore;
    readonly memoryRegistry: MemoryRegistry;
    readonly serviceRegistry: ServiceRegistry;
    readonly secretsManager: SecretsManager;
    readonly subscriptionManager: SubscriptionManager;
    readonly localUserAuthManager: UserAuthManager;
    readonly profileManager: ProfileManager;
    readonly bookmarkManager: BookmarkManager;
    readonly sessionManager: SessionManager;
    readonly sessionOrchestration: CrossSessionTaskRegistry;
    readonly hookDispatcher: HookDispatcher;
    readonly hookActivityTracker: HookActivityTracker;
    readonly hookWorkbench: HookWorkbench;
    readonly pluginManager: PluginManager;
    readonly workflow: WorkflowServices;
    readonly voiceProviders: VoiceProviderRegistry;
    readonly voiceService: VoiceService;
    readonly webSearchProviders: WebSearchProviderRegistry;
    readonly webSearchService: WebSearchService;
    readonly mediaProviders: MediaProviderRegistry;
    readonly multimodalService: MultimodalService;
    readonly memoryEmbeddingRegistry: MemoryEmbeddingProviderRegistry;
    readonly channelPolicy: ChannelPolicyManager;
    readonly mcpRegistry: McpRegistry;
    readonly tokenAuditor: ApiTokenAuditor;
    readonly componentHealthMonitor: ComponentHealthMonitor;
    readonly worktreeRegistry: WorktreeRegistry;
    readonly sandboxSessionRegistry: SandboxSessionRegistry;
    readonly webhookNotifier: WebhookNotifier;
    readonly replayEngine: DeterministicReplayEngine;
    readonly providerOptimizer: ProviderOptimizer;
    readonly providerCapabilityRegistry: ProviderCapabilityRegistry;
    readonly cacheHitTracker: CacheHitTracker;
    readonly favoritesStore: FavoritesStore;
    readonly benchmarkStore: BenchmarkStore;
    readonly modelLimitsService: ModelLimitsService;
    readonly providerRegistry: ProviderRegistry;
    readonly toolLLM: ToolLLM;
    readonly distributedRuntime: DistributedRuntimeManager;
    readonly remoteRunnerRegistry: RemoteRunnerRegistry;
    readonly remoteSupervisor: RemoteSupervisor;
    readonly sessionMemoryStore: SessionMemoryStore;
    readonly sessionLineageTracker: SessionLineageTracker;
    readonly sessionChangeTracker: SessionChangeTracker;
    readonly planManager: ExecutionPlanManager;
    readonly adaptivePlanner: AdaptivePlanner;
    readonly idempotencyStore: IdempotencyStore;
    readonly overflowHandler: OverflowHandler;
    readonly policyRuntimeState: PolicyRuntimeState;
    readonly archetypeLoader: ArchetypeLoader;
    readonly agentManager: AgentManager;
    readonly agentMessageBus: AgentMessageBus;
    readonly agentOrchestrator: AgentOrchestrator;
    readonly wrfcController: WrfcController;
    readonly processManager: ProcessManager;
    readonly modeManager: ModeManager;
    readonly fileUndoManager: FileUndoManager;
    readonly integrationHelpers: IntegrationHelperService;
    /**
     * Re-root all path-bound services to a new working directory.
     *
     * Called by WorkspaceSwapManager.requestSwap() after the new directory has
     * been verified and its subdirectories created.
     *
     * Stores that are re-rooted in-process:
     * - MemoryStore (memory.sqlite + vector index): closed and reopened at new path.
     * - ProjectIndex: flushed at its current path, then reset to the new directory.
     *
     * Stores that require a process restart to fully re-root emit a warn-level log
     * naming the subsystem. They keep using their current filesystem path until the daemon is
     * restarted with --working-dir=<newDir> (or the persisted daemon-settings.json
     * value is picked up at startup).
     *
     * @throws if MemoryStore or ProjectIndex reroot fails. Propagated as INVALID_PATH
     * by WorkspaceSwapManager.
     */
    rerootStores(newWorkingDir: string): Promise<void>;
}
export declare function bindProviderOptimizerFeatureFlag(featureFlags: Pick<FeatureFlagManager, 'isEnabled' | 'subscribe'>, providerOptimizer: Pick<ProviderOptimizer, 'setEnabled'>): () => void;
export declare function createRuntimeServices(options: RuntimeServicesOptions): RuntimeServices;
//# sourceMappingURL=services.d.ts.map