import type { AgentUiComponent } from '../stream-events.js'; import type { ActionProposalDecision, ActionProposalLease, ActionProposalScope } from './action-proposal-store.js'; export interface ActionProposalOutcome extends ActionProposalScope { id: string; proposalId: string; outcomeVersion: 1; originRunId: string; originToolCallId: string; toolName: string; decision: ActionProposalDecision; executionStatus?: 'succeeded' | 'failed'; result?: unknown; error?: string; ui: AgentUiComponent[]; text?: string; createdAt: number; } export interface ActionProposalOutcomeDelivery { status: 'pending' | 'admitted' | 'discarded'; generation: number; lease: ActionProposalLease | null; messageId?: string; } export interface ActionProposalOutcomeLease { outcomeId: string; token: string; generation: number; } export interface ActionProposalOutcomeStore { getThreadActionProposalScope(threadId: string): Promise; claimNextActionProposalOutcome(command: { workerId: string; leaseMs: number; }): Promise<{ outcome: ActionProposalOutcome; lease: ActionProposalOutcomeLease; } | null>; admitActionProposalOutcome(command: ActionProposalOutcomeLease): Promise<{ status: 'applied' | 'unchanged' | 'busy' | 'conflict' | 'not_found' | 'discarded'; messageId?: string; }>; } //# sourceMappingURL=action-proposal-outcome-store.d.ts.map