import * as FileSystem from 'effect/FileSystem'; import * as Layer from 'effect/Layer'; import * as ManagedRuntime from 'effect/ManagedRuntime'; import * as Path from 'effect/Path'; import * as ClaudeProject from './ClaudeProject.js'; /** * The baseline services every default Claude runtime provides. * * @category Models * @since 0.1.0 */ export type BaseServices = FileSystem.FileSystem | Path.Path; /** * Logger presets for `ClaudeRuntime.layer` / `ClaudeRuntime.make`. * * @category Models * @since 0.1.0 */ export type LoggerKind = 'default' | 'pretty' | 'json' | 'logFmt' | 'structured' | 'none'; /** * Runtime construction options. * * `platformLayer` replaces the default Node-backed `FileSystem` / `Path` * layer, which is useful in tests. `layer` merges in additional services. * * @category Models * @since 0.1.0 */ export interface RuntimeOptions { readonly platformLayer?: Layer.Layer; readonly layer?: Layer.Layer; readonly logger?: LoggerKind; readonly mergeWithExistingLoggers?: boolean; readonly memoMap?: Layer.MemoMap; } /** * Runtime construction options for `ClaudeRuntime.project(...)`. * * Adds the cached `ClaudeProject` service for one concrete project root while * preserving the same platform / logger overrides as `ClaudeRuntime.make(...)`. * * @category Models * @since 0.1.0 */ export interface ProjectRuntimeOptions extends RuntimeOptions { readonly cwd: string; readonly pluginRoot?: string; readonly mcpPath?: string; } /** * Runtime construction options for `ClaudeRuntime.plugin(...)`. * * Like `ClaudeRuntime.project(...)`, but requires an explicit plugin root so * plugin scans and named component lookups resolve against the plugin * directory instead of the project root. * * @category Models * @since 0.1.0 */ export interface PluginRuntimeOptions extends RuntimeOptions { readonly cwd: string; readonly pluginRoot: string; readonly mcpPath?: string; } /** * Managed runtime returned by `ClaudeRuntime.make`. * * @category Models * @since 0.1.0 */ export interface Runtime extends ManagedRuntime.ManagedRuntime { readonly layer: Layer.Layer; } /** * The default platform layer for effect-claudecode programs. * * @category Layers * @since 0.1.0 */ export declare const baseLayer: Layer.Layer; /** * Build the full layer used by the shared runtime. * * @category Layers * @since 0.1.0 */ export declare const layer: (options?: RuntimeOptions) => Layer.Layer; /** * Create a prewired `ManagedRuntime` for effect-claudecode programs. * * @category Runtime * @since 0.1.0 */ export declare const make: (options?: RuntimeOptions) => Runtime; /** * Alias for `make` that highlights the default setup. * * @category Runtime * @since 0.1.0 */ export declare const defaultRuntime: (options?: RuntimeOptions) => Runtime; /** * Create a prewired runtime that also includes the cached `ClaudeProject` * service for one project root. * * This is the recommended entry point for project-aware scripts that need * settings, `.mcp.json`, or plugin component lookups in addition to the base * platform services. * * @category Runtime * @since 0.1.0 */ export declare const project: (options: ProjectRuntimeOptions) => Runtime; /** * Create a prewired runtime for plugin-aware scripts. * * Compared with `ClaudeRuntime.project(...)`, this preset requires an explicit * `pluginRoot` so `ClaudeProject.plugin` and named component lookups read from * the plugin directory rather than the project root. * * @category Runtime * @since 0.1.0 */ export declare const plugin: (options: PluginRuntimeOptions) => Runtime; /** * Alias retained for ergonomic call sites: `ClaudeRuntime.default(...)`. * * @category Runtime * @since 0.1.0 */ export { defaultRuntime as default }; //# sourceMappingURL=ClaudeRuntime.d.ts.map