import type { LocalOverridesFile, McpProfile, McpServerDefinition, ResolvedMcpServer, ResolvedRegistry } from '../types.js'; export declare function loadLocalOverrides(projectRoot: string): Promise; /** * Load the project config and resolve it into the servers each integration receives. * * @param options.profile - Profile for this run; omit to use the config's active * profile, pass `null` for every server. An explicitly named profile that does not * exist is an error rather than a silent widening. */ export declare function loadResolvedRegistry(projectRoot: string, options?: { profile?: string | null; }): Promise; /** * Merge shared config with local overrides and group the result by integration. * * Servers are skipped when disabled, outside the profile, or missing required env; * each skip that the user would otherwise not notice produces a warning. */ export declare function resolveFromConfigAndLocal(input: { projectRoot: string; servers: Record; local: LocalOverridesFile; profile?: McpProfile; }): ResolvedRegistry; /** * How far placeholders are expanded. * * `full` produces what a tool needs to start the server. `committed` produces what may be * written into a file that ends up in version control: `${PROJECT_ROOT}` and an explicit * `${VAR:-default}` resolve, a bare `${VAR}` stays as it is. */ type ResolutionMode = 'full' | 'committed'; /** * Expand placeholders in one server definition and copy through the optional fields. * * `${PROJECT_ROOT}`, `${VAR}` and `${VAR:-default}` are resolved here; a plain `${VAR}` * with nothing to resolve to is left in place and reported. */ export declare function resolveServer(name: string, server: McpServerDefinition, projectRoot: string, warnings: string[], mode?: ResolutionMode): ResolvedMcpServer; export {};