import type { ChannelInstrumentationProjection, RunInput, SessionAuthContext, SessionCapabilities } from "#channel/types.js";
import type { HarnessSession } from "#harness/types.js";
import type { RuntimeSubagentCallActionRequest } from "#runtime/actions/types.js";
/**
 * Pending runtime-action batch event metadata needed for child run lineage.
 */
interface BatchEventMetadata {
    readonly sequence: number;
    readonly turnId: string;
}
/**
 * Result of {@link buildSubagentRunInput}.
 *
 * Exposes the derived `childContinuationToken` alongside the
 * {@link RunInput} so dispatch sites never re-derive the token from
 * `(callId, parentSessionId)` on their own.
 */
export interface SubagentRunInputBuild {
    readonly childContinuationToken: string;
    readonly runInput: RunInput;
}
/**
 * Builds the {@link RunInput} for one delegated subagent child run.
 */
export declare function buildSubagentRunInput(input: {
    readonly action: RuntimeSubagentCallActionRequest;
    readonly auth: SessionAuthContext | null;
    readonly batchEvent: BatchEventMetadata;
    /**
     * Parent's session capabilities. Forwarded verbatim so HITL
     * readiness flows transparently down through a subagent chain. Undefined
     * parent capabilities produce an undefined child capability set.
     */
    readonly capabilities?: SessionCapabilities;
    readonly channelMetadata?: ChannelInstrumentationProjection;
    readonly initiatorAuth: SessionAuthContext | null;
    readonly session: HarnessSession;
}): SubagentRunInputBuild;
export {};
