export * as OpenCode from "./opencode"; import { type OpenCodeClient } from "@opencode/client/effect"; import type { Session } from "@opencode/core/session"; import type { Workspace } from "@opencode/core/workspace"; import { Context, Effect, Layer } from "effect"; import type { Config, Scope } from "effect"; import { EmbeddedHost } from "../internal/host"; import type { SdkInstances } from "../internal/instances"; export type { LogEntry, LogLevel, LogOptions, LogWriter } from "../logging"; export type CreateOptions = EmbeddedHost.CreateOptions; export type EmbedOptions = EmbeddedHost.EmbedOptions; export type InstanceOptions = SdkInstances.Options; export type InstanceConfiguration = SdkInstances.Configuration; export type Interface = Omit & { readonly sessions: Omit & { readonly create: Session.Interface["create"]; readonly get: (input: { readonly sessionID: Session.ID; }) => ReturnType; readonly move: Session.Interface["move"]; }; readonly events: OpenCodeClient["event"]; readonly workspace: { readonly create: Workspace.Interface["create"]; readonly provision: (options: { readonly workspaceID: Workspace.ID; }) => ReturnType; readonly destroy: (options: { readonly workspaceID: Workspace.ID; }) => ReturnType; }; readonly plugin: EmbeddedHost.Interface["plugins"]["register"] & OpenCodeClient["plugin"]; }; export declare const create: (options?: CreateOptions, embed?: EmbedOptions) => Effect.Effect; declare const Service_base: Context.ServiceClass; export declare class Service extends Service_base { } export declare const layer: (options?: CreateOptions) => Layer.Layer>;