import { type AssertionSensitivityCategory, type AssertionSubject, type PersonalDomain } from './domain.js'; export interface UserModelObservation { id: string; principalId: string; domain: PersonalDomain; type: string; subject: AssertionSubject; value: unknown; context: Record; sensitivityCategories: AssertionSensitivityCategory[]; ownerAttribution: 'user' | 'other' | 'shared' | 'unknown'; observedAt: number; validTo?: number; deleteAfter?: number; sourceGrantId?: string; sourceItemId?: string; evidenceId?: string; contentHash: string; createdAt: number; } export declare function recordUserModelObservation(input: Omit & { principalId?: string; contentHash?: string; nowMs?: number; }): UserModelObservation; export declare function listUserModelObservations(input?: { principalId?: string; domain?: PersonalDomain; sourceGrantId?: string; limit?: number; }): UserModelObservation[]; export declare function deleteUserModelObservationsForGrant(grantId: string): number; export type UserAssertionEdgeRelation = 'supports' | 'contradicts' | 'derived_from' | 'specializes'; export interface UserAssertionEdge { fromAssertionId: string; toAssertionId: string; relation: UserAssertionEdgeRelation; confidence: number; createdAt: number; } export declare function linkUserAssertions(input: { fromAssertionId: string; toAssertionId: string; relation: UserAssertionEdgeRelation; confidence: number; nowMs?: number; }): void; export declare function listUserAssertionEdges(assertionIds?: string[]): UserAssertionEdge[];