/** * Remote runtime synchronization (3.0.0 cross-host bridge). * * Transfers the content-addressed runtime bundle to a remote target's * user-scoped cache, verifies the tarball hash, atomically materialises the * runtime directory, and returns the authoritative remote CLI entry. A cache * hit (same runtimeId + commit + tarball hash) skips the transfer entirely. * * No legacy fallback: if the required runtime cannot be synchronised and * verified, sync throws and the caller must fail closed. */ import type { RemoteExecutionTarget } from "./remote-target-types.js"; import { type BuiltRuntimeBundle } from "./runtime-bundle.js"; import { type SshRemoteExecutionTransport } from "./ssh-transport.js"; export interface RemoteRuntimeSyncOptions { transport: SshRemoteExecutionTransport; target: RemoteExecutionTarget; /** Remote user-scoped cache root (e.g. `%LOCALAPPDATA%\Jensen\runtimes`). */ cacheRoot: string; bundle: BuiltRuntimeBundle; now?: () => number; } export interface SyncedRemoteRuntime { runtimeId: string; remoteRoot: string; cliEntry: string; jensenCommit: string; tarballHash: string; alreadyPresent: boolean; } export declare class RemoteRuntimeSyncError extends Error { readonly code: "REMOTE_RUNTIME_HASH_MISMATCH" | "REMOTE_RUNTIME_INCOMPATIBLE" | "REMOTE_RUNTIME_SYNC_FAILED"; constructor(code: RemoteRuntimeSyncError["code"], message: string); } /** * Synchronise the bundle onto the target and return the remote runtime entry. * Idempotent: a verified cache hit returns without retransmitting. */ export declare function syncRemoteRuntime(options: RemoteRuntimeSyncOptions): Promise; //# sourceMappingURL=remote-runtime-sync.d.ts.map