export * as EmbeddedHost from "./host"; import { SdkPlugins } from "@opencode/core/plugin/sdk"; import type { Plugin } from "@opencode/plugin/effect/plugin"; import { SessionRestart } from "@opencode/core/session/execution/restart"; import { Session } from "@opencode/core/session"; import { Workspace } from "@opencode/core/workspace"; import { WorkspaceDriver } from "@opencode/core/workspace/driver"; import type { ServerOptions } from "@opencode/server/options"; import type { LayerNode } from "@opencode/util/effect/layer-node"; import { Effect, ManagedRuntime } from "effect"; import { HttpRouter } from "effect/http"; import { type LogOptions } from "../logging"; import { SdkInstances } from "./instances"; export interface CreateOptions extends Omit { readonly log?: LogOptions; readonly plugins?: ReadonlyArray; readonly workspaceProviders?: Readonly>; readonly instances?: SdkInstances.Options; } /** Host hooks for embedding opencode on a non-default runtime profile. */ export interface EmbedOptions { readonly overrides?: LayerNode.Replacements; } export declare const create: (options?: CreateOptions | undefined, embed?: EmbedOptions | undefined) => Effect.Effect<{ runtime: ManagedRuntime.ManagedRuntime; fetch: ((input: RequestInfo | URL, init?: RequestInit) => Promise) & { preconnect: () => undefined; }; plugins: SdkPlugins.Interface; sessions: Session.Interface; workspace: Workspace.Interface; close: () => Promise; }, Error, R>; export type Interface = Effect.Success>;