import type { ReceiptDagEnvelope } from '../receipts/dag'; import type { CapabilityTier, SpendScope, SpendWindow } from '../types'; export type OutcomeVertical = 'law' | 'accounting' | 'insurance' | 'realestate' | 'ecommerce' | string; export type OutcomeRole = 'drafter' | 'reviewer' | 'fallback'; export type OutcomeStatus = 'completed' | 'blocked' | 'failed' | 'quality_failed'; export type OutcomeEffort = 'low' | 'medium' | 'high' | 'xhigh'; export type OutcomeGuardrailTier = 'grounded_cite_or_refuse' | 'reviewer_required' | 'human_of_record'; export type OutcomeTemplateStatus = 'active' | 'specced'; export interface OutcomeInputDefinition { name: string; type: 'string' | 'number' | 'boolean' | 'json' | 'date'; required?: boolean; description?: string; } export interface OutcomeSpendCaps { maxCostCents: number; window?: SpendWindow; periodCapCents?: number; } export interface OutcomeQualityGateRubric { name: string; weight?: number; passThreshold?: number; } export interface OutcomeQualityGateConfig { passThreshold?: number; reviewerTriggerScore?: number; riskKeywords?: string[]; rubrics?: OutcomeQualityGateRubric[]; } export interface OutcomeContextInjection { field: string; label: string; required?: boolean; example?: string; } export interface OutcomeTemplate { slug: string; vertical: OutcomeVertical; systemPrompt: string; inputs: OutcomeInputDefinition[]; outputFormat: string; need: string; capability: CapabilityTier; spendCaps: OutcomeSpendCaps; promptVersion: string; effort?: OutcomeEffort; guardrailTier?: OutcomeGuardrailTier; status?: OutcomeTemplateStatus; contextInjection?: OutcomeContextInjection[]; blockedOrigins?: string[]; premiumAgent?: string; disclaimer?: string; qualityGate?: OutcomeQualityGateConfig; } export interface OutcomeExecutionContext { scope: SpendScope; customerId?: string; posture?: string; budgetTier?: string; imageCapable?: boolean; context?: Record; reviewerCascadeAuto?: boolean; } export interface OutcomeModelRequest { role: OutcomeRole; model: string; vertical: string; outcome: string; promptVersion: string; systemPrompt: string; userPrompt: string; outputFormat: string; metadata: Record; } export interface OutcomeModelResponse { text: string; inputTokens?: number; outputTokens?: number; costCents?: number; qualityScore?: number; confidence?: number; verdict?: string; durationMs?: number; provenance?: Record; } export interface OutcomeModelRunner { run(request: OutcomeModelRequest): Promise; } export interface OutcomeDecisionLink { role: OutcomeRole; decisionId: string; entryHash?: string; modelRequested: string; modelResolved: string; projectedCents: number; actualCents: number; inputTokens: number; outputTokens: number; } export interface OutcomeRuntimeReceipt { receiptId: string; timestamp: string; vertical: string; outcome: string; promptVersion: string; customerId?: string; scopeKey: string; status: OutcomeStatus; drafter: { model: string; decisionId?: string; costCents: number; inputTokens: number; outputTokens: number; }; reviewer: { model: string; decisionId?: string; costCents: number; inputTokens: number; outputTokens: number; verdict: string; } | null; fallback: { model: string; decisionId?: string; reason: string; } | null; triggerFired: string[]; qualityScore: number; pass: boolean; totalCostCents: number; durationMs: number; decisionLinks: OutcomeDecisionLink[]; dag?: ReceiptDagEnvelope; metadata: { need: string; capability: CapabilityTier; posture: string; budgetTier: string; blockedOrigins: string[]; effort: OutcomeEffort; drafterEffort: OutcomeEffort; reviewerEffort: OutcomeEffort; provenance: Record; }; } export interface OutcomeReceiptStore { append(receipt: OutcomeRuntimeReceipt): Promise; readAll(): Promise; } export declare class InMemoryOutcomeReceiptStore implements OutcomeReceiptStore { private readonly receipts; append(receipt: OutcomeRuntimeReceipt): Promise; readAll(): Promise; } //# sourceMappingURL=types.d.ts.map