import { ResolveIOAIManagerAutonomyPolicyDecision, ResolveIOAIManagerAutonomyPolicyInput, ResolveIOAIManagerFailureRecord, ResolveIOAIManagerRecoveryActionDispatchRecord, ResolveIOAIManagerRecoveryActionPacket, ResolveIOAIManagerRecoveryCheckpoint, ResolveIOAIManagerRecoveryExecutionDirective, ResolveIOAIManagerRecoveryEvidenceProbe, ResolveIOAIManagerRecoveryPlan } from './ai-runner-manager-policy';
export type ResolveIOAIManagerAutopilotSafetyLevel = 'low' | 'medium' | 'high' | 'blocked';
export interface ResolveIOAIManagerAutopilotRecommendedAction {
    action: string;
    label: string;
    reason: string;
    safety: ResolveIOAIManagerAutopilotSafetyLevel;
    enabled: boolean;
    autoRunnable: boolean;
    expectedResult: string;
    requiresNewEvidence: boolean;
    canRunProductRepair: boolean;
    canRunExpensiveModel: boolean;
    canResetLoopAfterEvidence: boolean;
    singleActionOnly: boolean;
    allowedDispatchAction: string;
    costCeilingUsd: number;
    requiredStateTransition: string;
    proofRequiredBeforeContinuation: boolean;
    autonomyMode: string;
    autonomyCanAutoDispatch: boolean;
    autonomyBlocked: boolean;
    expectedValueScore: number;
    expectedValueSource: string;
    expectedValuePositive: boolean;
    evidenceBacked: boolean;
    evidenceStrength: string;
    dispatchAction?: string;
}
export interface ResolveIOAIManagerAutopilotControlAction {
    action: string;
    label: string;
    group: 'primary' | 'policy' | 'evidence' | 'release' | 'danger';
    enabled: boolean;
    autoRunnable: boolean;
    requiresConfirmation: boolean;
    confirmationReason: string;
    safety: ResolveIOAIManagerAutopilotSafetyLevel;
    reason: string;
    nextCommand: string;
    expectedResult: string;
    costCeilingUsd: number;
}
export interface ResolveIOAIManagerAutopilotControlGroup {
    groupId: 'policy' | 'evidence' | 'release' | 'danger';
    label: string;
    actions: ResolveIOAIManagerAutopilotControlAction[];
}
export interface ResolveIOAIManagerAutopilotControlPolicy {
    mode: string;
    modeLabel: string;
    modeDescription: string;
    onePrimaryActionOnly: true;
    blocked: boolean;
    blockedReason: string;
    canAutoDispatch: boolean;
    requiresHumanDecision: boolean;
    primaryAction: ResolveIOAIManagerAutopilotControlAction;
    secondaryActionGroups: ResolveIOAIManagerAutopilotControlGroup[];
    budget: {
        currentRunUsd: number;
        totalUsd: number;
        projectedActionCostUsd: number;
        projectedSpendUsd: number;
        budgetSoftUsd: number;
        budgetHardUsd: number;
        softBudgetExceeded: boolean;
        hardBudgetExceeded: boolean;
        untrackedWarning: string;
    };
}
export interface ResolveIOAIManagerHumanDecisionChoice {
    choiceId: string;
    label: string;
    action: string;
    description: string;
    safety: ResolveIOAIManagerAutopilotSafetyLevel;
    requiresConfirmation: boolean;
    nextCommand: string;
    expectedResult: string;
}
export interface ResolveIOAIManagerHumanDecisionRequest {
    requestId: string;
    required: boolean;
    status: 'not_required' | 'waiting_for_operator';
    reason: string;
    question: string;
    preferredChoiceId: string;
    evidence: {
        failureClass: string;
        blocker: string;
        blockerFingerprint: string;
        evidenceHash: string;
        checkpointId: string;
        recoveryClass: string;
        dispatchAction: string;
        requiredArtifacts: string[];
        forbiddenActions: string[];
        recentArtifactPaths: string[];
    };
    choices: ResolveIOAIManagerHumanDecisionChoice[];
    blockedUntil: string[];
    createdAt: string;
}
export interface ResolveIOAIManagerAutopilotLoopGuard {
    state: 'clear' | 'collecting_evidence' | 'parked' | 'manual_handoff' | 'complete';
    blocked: boolean;
    reason: string;
    failureClass: string;
    blocker: string;
    blockerFingerprint: string;
    evidenceHash: string;
    materialEvidence: boolean;
    evidenceStrength: string;
    evidenceSignals: string[];
    sameEvidenceDispatchCount: number;
    sameEvidenceAlreadyAttempted: boolean;
    loopCount: number;
    maxLoopCount: number;
    attempts: number;
    maxAttemptsBeforePark: number;
    canResetLoopAfterEvidence: boolean;
    resetRequires: string[];
}
export interface ResolveIOAIManagerAutopilotRecentDispatch {
    dispatchId: string;
    actionId: string;
    checkpointId: string;
    probeId: string;
    mode: string;
    dispatchAction: string;
    status: string;
    reason: string;
    evidenceHash: string;
    blockerFingerprint: string;
    artifactPaths: string[];
    startedAt: string;
    completedAt: string;
    createdAt: string;
}
export interface ResolveIOAIManagerAutopilotSnapshot {
    surface: string;
    runId: string;
    title: string;
    status: string;
    phase: string;
    lane: string;
    stepType: string;
    runKind: string;
    recommendedAction: ResolveIOAIManagerAutopilotRecommendedAction;
    controlPolicy: ResolveIOAIManagerAutopilotControlPolicy;
    loopGuard: ResolveIOAIManagerAutopilotLoopGuard;
    recovery: {
        checkpointId: string;
        recoveryClass: string;
        dispatchAction: string;
        singleActionOnly: boolean;
        allowedDispatchAction: string;
        directiveAllowed: boolean;
        evidenceOnly: boolean;
        productRepairAllowed: boolean;
        expensiveModelAllowed: boolean;
        costCeilingUsd: number;
        requiredStateTransition: string;
        proofRequiredBeforeContinuation: boolean;
        requiredArtifacts: string[];
        nextCommands: string[];
        successCriteria: string[];
        exitCriteria: string[];
        forbiddenActions: string[];
    };
    autonomyPolicy: ResolveIOAIManagerAutonomyPolicyDecision;
    recentDispatches: ResolveIOAIManagerAutopilotRecentDispatch[];
    humanDecision: ResolveIOAIManagerHumanDecisionRequest;
    cost: {
        currentRunUsd: number;
        totalUsd: number;
        currentRunTokens: number;
        totalTokens: number;
        untrackedWarning: string;
    };
    updatedAt: string;
}
export interface ResolveIOAIManagerAutopilotSnapshotInput {
    surface: string;
    runId?: string;
    title?: string;
    status?: string;
    phase?: string;
    lane?: string;
    stepType?: string;
    runKind?: string;
    current?: ResolveIOAIManagerFailureRecord;
    recoveryPlan?: ResolveIOAIManagerRecoveryPlan;
    recoveryCheckpoint?: ResolveIOAIManagerRecoveryCheckpoint;
    recoveryEvidenceProbe?: ResolveIOAIManagerRecoveryEvidenceProbe;
    recoveryAction?: ResolveIOAIManagerRecoveryActionPacket;
    recoveryDirective?: ResolveIOAIManagerRecoveryExecutionDirective;
    recoveryDispatchHistory?: ResolveIOAIManagerRecoveryActionDispatchRecord[];
    loopCount?: number;
    maxLoopCount?: number;
    currentRunUsd?: number;
    totalUsd?: number;
    currentRunTokens?: number;
    totalTokens?: number;
    untrackedCostWarning?: string;
    autonomyPolicy?: ResolveIOAIManagerAutonomyPolicyInput;
    updatedAt?: Date | string;
}
export declare function buildResolveIOAIManagerAutopilotSnapshot(input: ResolveIOAIManagerAutopilotSnapshotInput): ResolveIOAIManagerAutopilotSnapshot;
