import type { ClientId } from '@zhixuan92/multi-model-agent-core'; import { type ProvisioningService } from './service.js'; import type { DeclaredClientRoster } from './roster.js'; /** The subset of config every CLI provisioning call site actually needs — * loose and fully optional so a bare `{}` (no config file loaded/found yet) * still builds a working service against defaults. */ export interface CliProvisioningConfig { clients?: DeclaredClientRoster; server?: { stateDir?: string; port?: number; }; } /** Client-presence hints are read-only and deliberately live beside the CLI * provisioning builder. They never affect mutation eligibility: the roster * resolves an undeclared detected client to `suggested`, which the service * reports but never provisions. */ export declare function detectCliClients(homeDir: string): ReadonlySet; interface BuildCliProvisioningServiceOptions { /** Overrides `config.clients` for this one call — used by `mma mcp install * ` to force ONE client 'on' for the scope of a single * invocation without persisting anything, and by `sync-skills`/`toggle` * to fold explicit `--target`(s) in atop the declared roster. */ declared?: DeclaredClientRoster; stateDir?: string; daemonPort?: number; cliEntrypoint?: string; /** Override host detection in tests; production defaults to the read-only * evidence above. */ detected?: ReadonlySet; /** Absolute path of the config file the declared roster lives in. Supplying it * lets the service RE-READ `clients` at the moment it decides whether a * shared skill root still has consumers, rather than trusting the snapshot * taken when this process started. That matters precisely when another * process changed the declaration while this one waited on the provisioning * lock. Without it the snapshot is used, which is what every caller did * before the lock existed. */ configPath?: string; } export declare function buildCliProvisioningService(config: CliProvisioningConfig, homeDir?: string, options?: BuildCliProvisioningServiceOptions): ProvisioningService; export {}; //# sourceMappingURL=cli-provisioning.d.ts.map