/**
 * The run's account of the tool-result seat's media refusals (`tool_result.media_refused`, operator). The loop's
 * post-execution half admits every media block an executed call's result carries (`admitToolResultMedia`, the last step
 * of `finalizeToolOutcome`) and hands each call's refusals here once; the placeholders already stand in the result, so
 * this seat only words the account and delivers it on the deployment's notice sink. The detail carries the seat's
 * closed-set words, counts, the call's identity and a media type only when it can be one — never the bytes.
 */
import { type EngineNotice } from "../engine-notice.js";
import type { ToolResultMediaRefusal } from "../image-admission.js";
/** The run's attribution pair, as every per-run notice carries it. */
export interface ToolResultMediaSeatIds {
    sessionId: string;
    runId: string;
}
export declare function toolResultMediaRefusedSeat(onNotice: ((notice: EngineNotice) => void) | undefined, ids: ToolResultMediaSeatIds): (info: {
    toolName: string;
    toolCallId: string;
    refused: readonly ToolResultMediaRefusal[];
}) => void;
