import { type SshRemoteExecutionSpec } from "./ssh.js"; import { type SandboxAdditionalSource, type SandboxManagedRuntimeAssetRestoreContext } from "./sandbox-managed-runtime.js"; import type { RuntimeProgressSink } from "./runtime-progress.js"; export interface RemoteManagedRuntimeAsset { key: string; localDir: string; followSymlinks?: boolean; exclude?: string[]; restore?: (ctx: SandboxManagedRuntimeAssetRestoreContext) => Promise; } export interface PreparedRemoteManagedRuntime { spec: SshRemoteExecutionSpec; workspaceLocalDir: string; workspaceRemoteDir: string; runtimeRootDir: string; assetDirs: Record; /** * Remote directory of each additional (referenced) project that staged * successfully, keyed by `projectId`. A project whose staging failed is * absent (per-project failure isolation). */ additionalSourceDirs: Record; restoreWorkspace(onProgress?: RuntimeProgressSink): Promise; } export declare function buildRemoteExecutionSessionIdentity(spec: SshRemoteExecutionSpec | null): { readonly transport: "ssh"; readonly host: string; readonly port: number; readonly username: string; readonly remoteCwd: string; } | null; export declare function remoteExecutionSessionMatches(saved: unknown, current: SshRemoteExecutionSpec | null): boolean; export declare function prepareRemoteManagedRuntime(input: { spec: SshRemoteExecutionSpec; runId: string; adapterKey: string; workspaceLocalDir: string; workspaceRemoteDir?: string; syncWorkspace?: boolean; workspaceFileMode?: "all"; workspaceExclude?: string[]; assets?: RemoteManagedRuntimeAsset[]; /** Referenced (additional) projects to stage as plain, read-only trees. */ additionalSources?: SandboxAdditionalSource[]; onProgress?: RuntimeProgressSink; }): Promise; //# sourceMappingURL=remote-managed-runtime.d.ts.map