export declare const JEV_GUEST_DECLARATIONS = "\ntype FabricJevJson = null | boolean | number | string | FabricJevJson[] | { [key: string]: FabricJevJson };\ntype FabricJevDescription = string | FabricJevJson[] | { [key: string]: FabricJevJson };\ntype FabricJevQuestion =\n | { type: \"noul\"; instructions: FabricJevDescription; criteria?: { true?: FabricJevDescription; false?: FabricJevDescription } }\n | { type: \"choice\"; instructions: FabricJevDescription; criteria: Record }\n | { type: \"score\"; instructions: FabricJevDescription; criteria: FabricJevDescription[] };\ntype FabricJevAnswer = Q extends { type: \"noul\" }\n ? { type: \"noul\"; noul: number }\n : Q extends { type: \"choice\"; criteria: infer C }\n ? { type: \"choice\"; choice: Extract; confidence: number; probabilities: Record, number> }\n : { type: \"score\"; score: number; confidence: number; probabilities: Record; legend: Record };\ninterface FabricJevProgram {\n name: string;\n code: string;\n inputSchema: Record;\n outputSchema: Record;\n requires: string[];\n limits?: { timeoutMs?: number; maxEvaluations?: number; maxToolCalls?: number; maxTokens?: number };\n}\ntype FabricJevHostEventName = \"input\" | \"turn_end\" | \"tool_error\" | \"agent_end\" | \"agent_settled\";\ninterface FabricJevObserve {\n events: FabricJevHostEventName[];\n include?: Array<\"inputText\" | \"assistantText\" | \"toolResults\">;\n maxChars?: number; queueSize?: number; maxEventAgeMs?: number;\n delivery?: \"steer\" | \"followUp\"; triggerTurn?: boolean; maxAdvice?: number;\n}\ninterface FabricJevHostEvent {\n id: string; sequence: number; event: FabricJevHostEventName; source: \"main\";\n sessionId: string; revision: number; at: number; payload: FabricJevJson; truncated: boolean;\n}\ninterface FabricJevObservationStats {\n events: FabricJevHostEventName[]; received: number; consumed: number; dropped: number; queued: number;\n adviceDelivered: number; adviceSuppressed: number;\n}\ninterface FabricJevAdviceResult {\n delivered: boolean;\n reason?: \"disabled\" | \"stale\" | \"duplicate\" | \"budget\" | \"feedback\" | \"delivery_failed\";\n}\ninterface FabricJevRun {\n id: string; name: string; state: \"running\" | \"completed\" | \"failed\" | \"cancelled\" | \"timed_out\";\n background: boolean; startedAt: number; endedAt?: number; result?: T; error?: string;\n evaluations: number; toolCalls: number; usage: { input_tokens: number | null; output_tokens: number | null };\n events: Array<{ sequence: number; at: number; value: FabricJevJson }>; nextSequence: number; logs: string[];\n observation?: FabricJevObservationStats;\n}\ntype DecisionJSON = FabricJevJson;\ntype DecisionDescription = FabricJevDescription;\ntype DecisionAPI = \"system-one\" | \"cloudflare\" | \"openai-decisions\" | \"vercel-evaluate\" | \"llama-cpp\" | \"llama-system-one\" | \"anthropic\" | \"google\";\ntype DecisionQuestion = Exclude | { type: \"boolean\" | \"bool\" | \"noul\" | \"predicate\"; instructions: DecisionDescription; criteria?: { true?: DecisionDescription; false?: DecisionDescription } }\n | { type: \"box\"; instructions: DecisionDescription };\ninterface DecisionTarget {\n provider: string; api?: DecisionAPI; model?: string; endpoint?: string;\n allowLocal?: boolean; allowGenerated?: boolean; providerOptions?: Record; temperature?: number;\n}\ninterface DecisionProfiles { version: 1; defaultProfile?: string; profiles: Record }\ninterface DecisionRequest extends Partial {\n profile?: string; state: DecisionDescription; questions: Record;\n images?: { type?: \"image\"; data: string; mimeType: \"image/png\" | \"image/jpeg\" | \"image/webp\" | \"image/gif\"; ref?: string }[];\n}\ntype DecisionImageSupport = \"supported\" | \"unsupported\" | \"model-dependent\";\ninterface DecisionResolution {\n target: DecisionTarget & { api: DecisionAPI; model: string; endpoint: string; allowLocal: boolean; allowGenerated: boolean };\n credential: { env: string; resolved: false }; imageSupport: DecisionImageSupport; generated: boolean; profile?: string;\n}\ninterface DecisionProvider { provider: string; api: DecisionAPI | \"\"; defaultModel: string; endpoint: string; credentialEnv: string; imageSupport: DecisionImageSupport; generated: boolean }\ntype DecisionAnswer = { type: \"boolean\"; probability: number }\n | { type: \"choice\"; choice: string; probabilities?: Record; confidence?: number }\n | { type: \"score\"; score: number; probabilities?: Record; confidence?: number; legend?: Record }\n | { type: \"box\"; box: { top: number; bottom: number; left: number; right: number }; confidence?: number }\n | { type: \"refusal\"; [field: string]: unknown };\ninterface DecisionResult {\n status: \"ok\" | \"error\"; provider: string; api: DecisionAPI; model: string; answers: Record;\n usage: { input_tokens: number | null; output_tokens: number | null };\n provenance?: { kind: \"native\" | \"generated\" | \"token-logprobs\"; [field: string]: unknown };\n raw?: DecisionJSON; rawJson?: string; rawText?: string; rawComplete?: boolean; httpStatus?: number;\n error?: { code: number; message: string } | null; budget: { exhausted: boolean; reason: string };\n}\ninterface DecisionModel {\n model: { provider: string; id: string }; name: string; api: string; target?: DecisionTarget;\n supported: boolean; imageSupport: DecisionImageSupport; generated: boolean; logits: boolean;\n credentials: { configured: boolean; verified: false };\n}\ninterface FabricJevApi {\n decide(request: DecisionRequest): Promise;\n resolveDecision(args: { request: DecisionRequest }): Promise;\n decisionProviders(): Promise;\n models(): Promise;\n evaluate>(args: {\n state: string | FabricJevJson[] | { [key: string]: FabricJevJson }; questions: Q; model?: string;\n }): Promise<{ model: string; answers: { [K in keyof Q]: FabricJevAnswer }; usage: { input_tokens: number; output_tokens: number } }>;\n run(args: { program: FabricJevProgram; input: FabricJevJson }): Promise>;\n spawn(args: { program: FabricJevProgram; input: FabricJevJson; observe?: FabricJevObserve }): Promise;\n status(args?: { id?: never; after?: never }): Promise<{ credentials: { configured: boolean; source: \"pi\" | \"environment\" | \"command\" | \"missing\"; verified: boolean }; model: string; runs: Array<{ id: string; name: string; state: string; background: boolean; startedAt: number; evaluations: number; toolCalls: number; observation?: FabricJevObservationStats }> }>;\n status(args: { id: string; after?: number }): Promise>;\n wait(args: { id: string }): Promise>;\n /** Alias for wait. */\n join(args: { id: string }): Promise>;\n advise(args: { id: string; eventId: string; message: string }): Promise;\n stop(args: { id: string }): Promise;\n}\ndeclare const jev: FabricJevApi;\n"; //# sourceMappingURL=guest-types.d.ts.map