import type { OutcomeEnvelope } from '../evidence/types.js'; import type { StudioAuthorizationEvidenceExpectation, StudioAuthorizationVerifier } from '../policy/types.js'; import type { ImprovementProposal, ImprovementStore, StudioOutcomeAuthority } from './types.js'; export interface ImprovementLoopOptions { readonly store: ImprovementStore; readonly verifier: StudioAuthorizationVerifier; readonly outcomeAuthority: StudioOutcomeAuthority; readonly minimumEvents?: number; readonly minimumDistinctProjects?: number; readonly minimumConfidence?: number; } export declare class ImprovementLoop { #private; constructor(options: ImprovementLoopOptions); record(value: OutcomeEnvelope): { readonly status: 'stored' | 'replay'; readonly proposals: readonly ImprovementProposal[]; }; listProposals(evidence: unknown, expectation: StudioAuthorizationEvidenceExpectation): readonly ImprovementProposal[]; decide(proposalId: string, decision: 'approve' | 'reject', evidence: unknown, expectation: StudioAuthorizationEvidenceExpectation, occurredAt: string): { readonly status: 'approved' | 'rejected' | 'replay'; readonly proposal: ImprovementProposal; }; }