import type { ImageContent } from "@mariozechner/pi-ai";
import type { AgentTurnParams } from "../../agents/unified-runner.js";
import type { SessionEntry } from "../../config/sessions.js";
import type { TypingMode } from "../../config/types.js";
import type { TemplateContext } from "../templating.js";
import type { VerboseLevel } from "../thinking.js";
import type { GetReplyOptions } from "../types.js";
import type { FollowupRun, QueueSettings } from "./queue.js";
import type { TypingController } from "./typing.js";
export interface PreparedAgentRunParams {
    commandBody: string;
    followupRun: FollowupRun;
    queueKey: string;
    resolvedQueue: QueueSettings;
    shouldSteer: boolean;
    shouldFollowup: boolean;
    isActive: boolean;
    isStreaming: boolean;
    opts?: GetReplyOptions;
    typing: TypingController;
    sessionEntry?: SessionEntry;
    sessionStore?: Record<string, SessionEntry>;
    sessionKey?: string;
    storePath?: string;
    defaultModel: string;
    agentCfgContextTokens?: number;
    resolvedVerboseLevel: VerboseLevel;
    isNewSession: boolean;
    blockStreamingEnabled: boolean;
    blockReplyChunking?: {
        minChars: number;
        maxChars: number;
        breakPreference: "paragraph" | "newline" | "sentence";
        flushOnParagraph?: boolean;
    };
    resolvedBlockStreamingBreak: "text_end" | "message_end";
    sessionCtx: TemplateContext;
    shouldInjectGroupIntro: boolean;
    typingMode: TypingMode;
}
/**
 * Build `AgentTurnParams` (the unified runner's input shape) from the
 * `PreparedAgentRunParams` shape that `prepareAgentRun` returns. Shared
 * helper used by `runChannelTurn`, `runGlassUiTurn`, and the
 * `getReplyFromConfig` facade — keeps the field-mapping logic in one
 * place so future shape changes have a single edit point.
 */
export declare function buildAgentTurnParams(prepared: PreparedAgentRunParams, input: {
    runId: string;
    abortSignal?: AbortSignal;
    images?: ImageContent[];
}): AgentTurnParams;
