import { Context, Effect, Layer } from "effect"; /** @experimental A progress update emitted by a running tool. */ export interface Progress { readonly toolCallId: string; readonly message?: string; readonly data?: Record; } /** @experimental Ambient context available to a tool handler for the current call. */ export interface Interface { readonly signal: AbortSignal; readonly emit: (progress: Progress) => Effect.Effect; readonly sessionId: string; readonly runId?: string; readonly rootRunId?: string; readonly toolCallId?: string; readonly operationKey?: string; readonly idempotencyKey?: string; readonly attempt?: number; readonly admittedAt?: string; readonly deadline?: string; } declare const ToolContext_base: Context.ServiceClass; /** @experimental */ export declare class ToolContext extends ToolContext_base { } /** @experimental */ export declare const layerDefault: Layer.Layer; /** @experimental */ export declare const layerTest: (implementation: Interface) => Layer.Layer; export {};