import { type Json } from "./protocol.js";
import type { PendingServerRequest } from "./codex-app-server.js";
/** Pure translations between the harnesses' permission asks and the Hook's
 * approval cards (agent-hooks.ts holds and answers them). */
/** A conductor `dispatch` or `hand_off` ask, with the fields a standing grant matches on. */
export type ConductorCall = {
    action: "dispatch" | "hand_off";
    project?: string;
    computer?: string;
};
/** The approval card's tool and input for an app-server request, in the
 * shapes `approvalSummary` and the phone already read for Codex's hook.
 * Undefined for questions (`item/tool/requestUserInput`) and MCP
 * elicitations, which stay in the pane. */
export declare function appServerApproval(request: PendingServerRequest): {
    tool: string;
    input: Json;
} | undefined;
/** The app-server's answer for the phone's allow or deny (T3's
 * CodexSessionRuntime shapes: accept / decline, a permission grant or none). */
export declare function appServerDecision(request: PendingServerRequest, allow: boolean): Json;
/** A conductor `dispatch` or `hand_off` permission ask the Hook can answer
 * itself under a standing grant, or offer the phone two grant-writing answers. */
export declare function conductorCall(tool: string, input: unknown): ConductorCall | undefined;
/** The decisions an OpenCode permission ask offers the phone. OpenCode's
 * `always` covers the current session, so both grant answers reply `always`;
 * `allow-everywhere` additionally writes an allow rule into the user's
 * OpenCode config. Advertised as the approval card's `options`, the same
 * shape the phone already renders for a provider-supplied option list. */
export declare const OPENCODE_APPROVAL_OPTIONS: Json[];
/** The OpenCode permission reply a card decision maps to: both grant scopes
 * are `always`, a plain approve is `once`, a deny is `reject`. Undefined for
 * anything else. */
export declare function opencodePermissionReply(decision: unknown): "once" | "always" | "reject" | undefined;
