export declare const FABRIC_PROGRAM_RUN_EVENT = "pi-fabric:program:run:v1"; /** The optional host protocol is mirrored locally: pi-work never imports Fabric. */ export type FabricProgramRunReply = { readonly ok: true; readonly program: string; readonly value: unknown; readonly logs: readonly string[]; } | { readonly ok: false; readonly error: string; readonly program?: string; }; export interface FabricProgramInput { readonly task: string; readonly name?: string | undefined; readonly model?: string | undefined; readonly thinking?: string | undefined; readonly cwd?: string | undefined; readonly worktree?: boolean | undefined; readonly writableRoots?: readonly string[] | undefined; readonly shell?: "unconfined" | undefined; readonly schema?: unknown; readonly systemPrompt?: string | undefined; } export interface FabricProgramRunRequest { readonly ref: string; readonly input: FabricProgramInput; readonly requirePromoted?: boolean | undefined; readonly signal?: AbortSignal | undefined; readonly reply: (result: FabricProgramRunReply) => void; } export interface FabricProgramEventBus { emit(channel: string, data: unknown): void; } export type FabricTransportFindingCode = "fabric-unavailable" | "fabric-timeout" | "fabric-aborted" | "fabric-run-failed" | "fabric-emit-failed" | "fabric-request-invalid"; export type FabricTransportResult = Extract | { readonly ok: false; readonly finding: { readonly code: FabricTransportFindingCode; readonly message: string; }; }; export interface FabricTransportOptions { readonly ref: string; readonly input: FabricProgramInput; readonly requirePromoted?: boolean | undefined; readonly signal?: AbortSignal | undefined; /** Positive milliseconds, capped at ten minutes; default five minutes. */ readonly timeoutMs?: number; } /** A silent listener and an absent listener are indistinguishable on Pi's bus. */ export declare function runFabricProgram(events: FabricProgramEventBus | undefined, options: FabricTransportOptions): Promise;