import type { AgentEnvironment, AgentEnvironmentCapabilities, ResourceProfile } from "@tangle-network/agent-interface/environment-provider"; import type { SandboxClientLike, SandboxInstanceLike } from "./tangle-types.js"; import type { TangleConfidentialAttestationVerifier } from "./tangle-types.js"; /** * Compose one concrete sandbox into an environment. * * This is the only stage that can read deployment truth, so it does: one * `GET /capabilities` against the sandbox decides retained control, and the * environment then exposes exactly the operations both the adapter surface * and the deployment back. A deployment that cannot disclose a readable * document yields no retained-control surface at all. The environment * publishes the resulting document on `capabilities`, so a caller reads the * answer for this sandbox rather than the provider's pre-sandbox claim. * * The document is measured once, here. A sandbox that is not yet running * cannot answer, so an environment composed during provisioning claims * nothing and keeps claiming nothing: the exposed operations and the document * are composed together and a caller may already hold either one. This is why * `provider.create()` holds until the sandbox is running before it composes * (see `tangle-readiness.ts`). `provider.get(id)` composes whatever the * sandbox is at that moment, so compose again once a starting sandbox runs. * * @param request What the create call asked for. An environment rebuilt by id * carries none of it, so its observation reports the requested compute shape * as absent instead of restating a request it never saw. */ export declare function sandboxInstanceAsEnvironment(box: SandboxInstanceLike, providerName: string, client: SandboxClientLike, declaredCapabilities: AgentEnvironmentCapabilities, operation?: { signal?: AbortSignal; }, request?: { resources?: ResourceProfile; confidentialAttestationVerifier?: TangleConfidentialAttestationVerifier; }): Promise;