import type { ConfigManager } from '../config/manager.js';
import type { ProviderRegistry } from '../providers/registry.js';
import type { McpRegistry } from '../mcp/registry.js';
import type { ShellPathService } from './shell-paths.js';
export interface RuntimeSelectionState {
    model: string;
    provider: string;
}
export interface HostSystemMessageSink {
    low(message: string): void;
    high(message: string): void;
}
export interface BackgroundProviderDiscoveryOptions {
    configManager: ConfigManager;
    providerRegistry: ProviderRegistry;
    runtime: RuntimeSelectionState;
    requestRender: () => void;
    restoreSavedModel: (providerRegistry: ProviderRegistry, savedModel: string, savedProvider: string, runtime: RuntimeSelectionState) => void;
    systemMessageRouter: HostSystemMessageSink;
    shellPaths: Pick<ShellPathService, 'workingDirectory' | 'homeDirectory'>;
    surfaceRoot: string;
}
export declare function startBackgroundProviderDiscovery(options: BackgroundProviderDiscoveryOptions): void;
export interface BackgroundMcpDiscoveryOptions {
    mcpRegistry: McpRegistry;
    systemMessageRouter: HostSystemMessageSink;
    requestRender: () => void;
    shellPaths: Pick<ShellPathService, 'workingDirectory' | 'homeDirectory'>;
    surfaceRoot: string;
}
export declare function scheduleBackgroundMcpDiscovery(options: BackgroundMcpDiscoveryOptions): void;
export declare const startBackgroundProviderRegistration: typeof startBackgroundProviderDiscovery;
export declare const scheduleMcpAutodiscovery: typeof scheduleBackgroundMcpDiscovery;
//# sourceMappingURL=bootstrap-background.d.ts.map