import { type PolicyConfig, type ProviderCandidate, type RouteConstraints } from "offrouter-core"; import { z } from "zod"; declare const ClaudeUserPromptSubmitSchema: z.ZodObject<{ hook_event_name: z.ZodLiteral<"UserPromptSubmit">; prompt: z.ZodString; cwd: z.ZodOptional; session_id: z.ZodOptional; transcript_path: z.ZodOptional; permission_mode: z.ZodOptional; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ hook_event_name: z.ZodLiteral<"UserPromptSubmit">; prompt: z.ZodString; cwd: z.ZodOptional; session_id: z.ZodOptional; transcript_path: z.ZodOptional; permission_mode: z.ZodOptional; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ hook_event_name: z.ZodLiteral<"UserPromptSubmit">; prompt: z.ZodString; cwd: z.ZodOptional; session_id: z.ZodOptional; transcript_path: z.ZodOptional; permission_mode: z.ZodOptional; }, z.ZodTypeAny, "passthrough">>; export type ClaudeUserPromptSubmitPayload = z.infer; export interface UserPromptSubmitOptions { profile: string; policy: PolicyConfig; candidates: ProviderCandidate[]; trustedWorkspace?: boolean; routeConstraints?: Partial; } export interface UserPromptSubmitHookOutput { decision?: "block"; reason?: string; hookSpecificOutput?: { hookEventName: "UserPromptSubmit"; additionalContext: string; }; } export interface HookRunResult { exitCode: number; stdout: string; stderr: string; } /** * Pure UserPromptSubmit handler used by tests and the stdio runner. */ export declare function handleUserPromptSubmit(input: unknown, options: UserPromptSubmitOptions): UserPromptSubmitHookOutput; /** * Stdio-style runner: parse stdin JSON, handle, emit a single JSON object on * stdout. Always exit 0 so Claude receives structured block/allow decisions. */ export declare function runUserPromptSubmitHook(stdin: string, options: UserPromptSubmitOptions): Promise; export {}; //# sourceMappingURL=user-prompt-submit.d.ts.map