import { z } from "#compiled/zod/index.js";
/**
 * One selectable option presented to the user in an input request.
 */
export type InputOption = z.infer<typeof inputOptionSchema>;
/**
 * Zod schema for one input option.
 *
 * Includes descriptions because the `ask_question` tool input embeds this
 * schema and exposes it directly to the model.
 */
export declare const inputOptionSchema: z.ZodObject<{
    description: z.ZodOptional<z.ZodString>;
    id: z.ZodString;
    label: z.ZodString;
    style: z.ZodOptional<z.ZodEnum<{
        danger: "danger";
        default: "default";
        primary: "primary";
    }>>;
}, z.core.$strict>;
/**
 * Unified input request surfaced to the client when the agent needs
 * user input before continuing.
 *
 * Tool approvals and questions share this shape. Approvals are requests
 * with two options (`"approve"` / `"deny"`) and `display: "confirmation"`.
 */
export type InputRequest = z.infer<typeof inputRequestSchema>;
/**
 * Zod schema for one input request.
 */
export declare const inputRequestSchema: z.ZodObject<{
    action: z.ZodObject<{
        callId: z.ZodString;
        input: z.ZodType<import("../../shared/json.ts").JsonObject, unknown, z.core.$ZodTypeInternals<import("../../shared/json.ts").JsonObject, unknown>>;
        kind: z.ZodLiteral<"tool-call">;
        toolName: z.ZodString;
    }, z.core.$strict>;
    allowFreeform: z.ZodOptional<z.ZodBoolean>;
    display: z.ZodOptional<z.ZodEnum<{
        confirmation: "confirmation";
        select: "select";
        text: "text";
    }>>;
    options: z.ZodOptional<z.ZodArray<z.ZodObject<{
        description: z.ZodOptional<z.ZodString>;
        id: z.ZodString;
        label: z.ZodString;
        style: z.ZodOptional<z.ZodEnum<{
            danger: "danger";
            default: "default";
            primary: "primary";
        }>>;
    }, z.core.$strict>>>;
    prompt: z.ZodString;
    requestId: z.ZodString;
}, z.core.$strict>;
/**
 * Unified input response submitted by the client for a pending request.
 */
export type InputResponse = z.infer<typeof inputResponseSchema>;
/**
 * Zod schema for one input response.
 */
export declare const inputResponseSchema: z.ZodObject<{
    optionId: z.ZodOptional<z.ZodString>;
    requestId: z.ZodString;
    text: z.ZodOptional<z.ZodString>;
}, z.core.$strict>;
/**
 * Returns true when a value matches the input request contract.
 */
export declare function isInputRequest(value: unknown): value is InputRequest;
/**
 * Returns true when a value matches the input response contract.
 */
export declare function isInputResponse(value: unknown): value is InputResponse;
