export declare const USER_MODEL_PRINCIPAL_ID = "local-owner"; export type UserModelScopeType = 'global' | 'agent' | 'workspace' | 'project' | 'session'; export type AssertionSubjectType = 'user' | 'person' | 'goal' | 'project' | 'topic'; export type AssertionCardinality = 'single' | 'multiple'; export type AssertionKind = 'identity' | 'preference' | 'value' | 'routine' | 'capability' | 'relationship' | 'current_state' | 'derived_insight'; export type AssertionAuthority = 'user_explicit' | 'user_observed' | 'system_inferred' | 'external_untrusted'; export type AssertionStatus = 'candidate' | 'active' | 'needs_review' | 'conflicted' | 'stale' | 'archived' | 'rejected'; export type AssertionConsequence = 'low' | 'medium' | 'high' | 'critical'; export type AssertionVolatility = 'stable' | 'slow' | 'dynamic' | 'event'; export type AssertionCreator = 'user' | 'runtime' | 'connector' | 'maintenance' | 'migration'; export type AssertionSensitivity = 'normal' | 'personal' | 'secret' | 'regulated'; export type AssertionDisclosurePolicy = 'silent' | 'referenceable' | 'ask_before_reference'; export interface UserModelScope { type: UserModelScopeType; id?: string; } export interface AssertionSubject { type: AssertionSubjectType; id: string; } export interface AssertionSlot { id: string; principalId: string; subject: AssertionSubject; predicate: string; cardinality: AssertionCardinality; scope: UserModelScope; createdAt: number; } export interface UserAssertion { id: string; slotId: string; kind: AssertionKind; value: unknown; normalizedValue: string; statement: string; authority: AssertionAuthority; status: AssertionStatus; confidence: number; declaredImportance?: number; inferredImportance: number; consequence: AssertionConsequence; actionability: number; volatility: AssertionVolatility; sensitivity: AssertionSensitivity; disclosurePolicy: AssertionDisclosurePolicy; applicability: Record; validFrom?: number; validTo?: number; observedAt: number; recordedAt: number; reviewAt?: number; supersedesAssertionId?: string; createdBy: AssertionCreator; createdAt: number; } export interface AssertionCandidate { principalId?: string; subject: AssertionSubject; predicate: string; cardinality: AssertionCardinality; scope: UserModelScope; kind: AssertionKind; value: unknown; normalizedValue: string; statement: string; authority: AssertionAuthority; confidence: number; declaredImportance?: number; inferredImportance: number; consequence: AssertionConsequence; actionability: number; volatility: AssertionVolatility; sensitivity: AssertionSensitivity; disclosurePolicy: AssertionDisclosurePolicy; applicability?: Record; validFrom?: number; validTo?: number; observedAt: number; reviewAt?: number; createdBy: AssertionCreator; evidenceId?: string; evidenceConfidence?: number; correctionOfAssertionId?: string; } export type ReconciliationAction = 'created' | 'deduplicated' | 'superseded' | 'conflicted'; export interface ReconciliationResult { action: ReconciliationAction; assertion: UserAssertion; previousAssertion?: UserAssertion; } export declare function validateScope(scope: UserModelScope): void; export declare function validateCandidate(candidate: AssertionCandidate): void;