import type { ExtensionRunner } from "@earendil-works/pi-coding-agent"; import type { FabricActionDescriptor, FabricInvocationContext, FabricProvider, FabricProviderListRequest } from "../protocol.js"; import type { DurableShellBridge } from "../jev-fabric/bridge.js"; /** Runs the shell `tool_call` preflight for one command of `sessions.`; throws when a hook blocks it. */ export type ShellPreflight = (input: Record, context: Pick, action: "open" | "write") => Promise; /** The `bash` `tool_call` preflight `pi.bash` runs, through the captured catalog's runner. */ export declare const toolCallShellPreflight: (runner: () => ExtensionRunner | undefined, runnerUnavailable?: () => boolean) => ShellPreflight; /** * Interactive children through jev-fabric's serve protocol: the same verbs, * records and lifetimes as the jev-fabric CLI and clients (docs/composition.md * in jev-fabric). One serve connection per Pi session owns every `session` * child; a Jev program's session children end with that program. */ export declare class SessionsProvider implements FabricProvider { #private; readonly bridge: DurableShellBridge; readonly options: { cwd: string; shellOverride: () => boolean; preflight?: ShellPreflight; }; readonly name = "sessions"; readonly description = "Interactive jev-fabric children: open, write, read, wait and stop"; constructor(bridge: DurableShellBridge, options: { cwd: string; shellOverride: () => boolean; preflight?: ShellPreflight; }); list(request: FabricProviderListRequest): Promise; describe(name: string): Promise; invoke(name: string, args: Record, context: FabricInvocationContext): Promise; invocationEnded(parentToolCallId: string): Promise; close(): Promise; } //# sourceMappingURL=sessions-provider.d.ts.map