import type { AssertionStatus } from '../domain.js'; import type { CaptureEvidence, UserModelInterpretation } from './semantic.js'; export interface UserModelCapturePolicy { write: 'deny' | 'confirm' | 'allow'; sensitiveWrite: 'deny' | 'confirm' | 'allow'; processing: 'local_only' | 'remote_allowed'; } export interface CaptureScopeContext { sessionId: string; agentId: string; workspaceId: string; projectId?: string; } export interface UserModelCaptureResult { proposed: number; created: number; deduplicated: number; rejected: number; createdAssertions: Array<{ id: string; content: string; kind: string; status: AssertionStatus; }>; createdGoals: Array<{ id: string; title: string; status: 'proposed' | 'active'; }>; createdRules: Array<{ id: string; statement: string; status: 'active' | 'disabled'; }>; outputs: Array<{ candidateKey: string; assertionId?: string; outcome: 'created' | 'deduplicated' | 'superseded' | 'conflicted' | 'rejected'; }>; } export declare function emptyUserModelCaptureResult(): UserModelCaptureResult; export declare function executeUserModelInterpretation(input: { interpretation: UserModelInterpretation; evidence: CaptureEvidence[]; extractionRunId: string; extractorId: string; scopeContext: CaptureScopeContext; policy: UserModelCapturePolicy; turnId?: string; }): UserModelCaptureResult;