import type { Agent, KyroInstalledAdapter, MachineAdapterRegistry, OperationPlan, OperationProjectionResult } from '../types'; /** Strict versioned schema: reject unknown fields, agents, duplicates and invalid timestamps. */ export declare function validateMachineAdapterRegistry(value: unknown): asserts value is MachineAdapterRegistry; /** Pure preview read. Atomic rename makes unlocked readers see an entire old or new file. */ export declare function readMachineAdapterRegistry(): MachineAdapterRegistry; /** Exclusive machine lock, independent of cwd/current/. Never reclaim a possibly live writer. */ export declare function withMachineAdapterRegistryLock(work: () => T): T; /** Caller must own the machine lock; fsync the sibling temporary file before atomic replacement. */ export declare function writeMachineAdapterRegistry(registry: MachineAdapterRegistry): void; /** Legacy union only adds missing entries: a machine opt-out/integration choice always wins. */ export declare function mergeMachineAdapters(registry: MachineAdapterRegistry, legacy: KyroInstalledAdapter[], selected: Agent[], now: string): MachineAdapterRegistry; /** Keep previews pure; persistence belongs to applyPlan, under the same machine lock. */ export declare function registerMachineAdapterPlan(plan: OperationPlan[], registry: MachineAdapterRegistry): void; export declare function applyMachineAdapterPlan(plan: OperationPlan[], apply: (publish: (results: OperationProjectionResult[]) => void) => void): void; //# sourceMappingURL=machine-registry.d.ts.map