import type { ContentBlockParam } from '@anthropic-ai/sdk/resources'; import type { BackgroundAgentRegistry } from '../../background-registry.js'; import type { SubagentManager } from '../../subagent.js'; import type { TraceOrigin, TraceActor } from '../../session/session-identity.js'; import type { TraceSink } from '../../trace/index.js'; import type { ToolResult } from '../types.js'; import { type QueuedNoteClaim } from './queued-note.js'; import { withProvenanceHeader } from './foreground-promotion.provenance.js'; export { withProvenanceHeader }; export interface PromotedSubagentInfo { jobId: string; label: string; sharesWorktree?: boolean; } type ForkedHandle = Awaited>; export interface PromotionTrigger { fire: (queuedNote?: QueuedNoteClaim) => void; ready: Promise; } export interface RunForegroundArgs { handle: ForkedHandle; signal: AbortSignal; prompt: string | ContentBlockParam[]; backgroundPrompt: string; idPrefix: string | undefined; model: string | undefined; parentModel?: string; childManager: SubagentManager | undefined; identity: { origin?: TraceOrigin; actor?: TraceActor; }; traceWriter?: TraceSink; depth: number; parentSessionId: string | undefined; registry: BackgroundAgentRegistry | undefined; promotionTriggers: Map; activeForegroundHandles: Map Promise; }>; isolationTeardown?: { repoRoot: string; worktreePath: string; }; budgetRelease?: () => void; promotionTookBudget?: { value: boolean; }; } export declare function runForegroundWithPromotion(args: RunForegroundArgs): Promise;