/**
* The SDK runtime — the Effect-core boundary the Promise facade runs against.
*
* The app `Layer` is built ONCE into a process-lifetime `Scope`, lazily and memoized. It provides a
* single service — `SealantApiClient`, the contract-derived control-plane client — so the SDK is a
* THIN HTTP CLIENT: every operation (create/run/read) is an HTTP call to `baseUrl`. Run execution and
* telemetry ingest moved SERVER-SIDE (the worker), so the SDK no longer opens a Postgres pool, spawns
* docker, or writes telemetry. Every operation surfaces a plain `SealantError` (the typed Effect
* failure is squashed and mapped here). `dispose()` closes the scope (the HTTP client) and is idempotent.
*/
import { Effect } from "effect";
import type { SealantInternalConfig } from "../internal/config.js";
import { SealantApiClient } from "./api-client.js";
/** Services the SDK runtime provides to operation effects. */
export type SdkServices = SealantApiClient;
export interface SdkRuntime {
/** Provide the app context and run an operation effect, surfacing plain `SealantError`s. */
readonly run: (effect: Effect.Effect) => Promise;
/** Dispose the runtime scope (the HTTP client). Idempotent. */
readonly dispose: () => Promise;
}
export declare const makeSdkRuntime: (config: SealantInternalConfig) => SdkRuntime;