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 declare const PERSONAL_DOMAINS: readonly ["identity", "life_history", "health", "emotion", "personality", "cognition", "values", "motivation", "goals", "capabilities", "behavior", "preferences", "relationships", "resources_constraints", "environment", "digital_life"]; export type PersonalDomain = typeof PERSONAL_DOMAINS[number]; export type PersonalModelLayer = 'fact' | 'pattern' | 'interpretation'; export type AssertionAllowedUse = 'answer' | 'rank' | 'recommend' | 'remind'; export type AssertionSensitivityCategory = 'health' | 'financial' | 'political' | 'religious' | 'sexuality' | 'biometric' | 'precise_location' | 'minor' | 'trauma' | 'third_party' | 'credential'; 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; domain: PersonalDomain; layer: PersonalModelLayer; sensitivityCategories: AssertionSensitivityCategory[]; purposeIds: string[]; allowedUses: AssertionAllowedUse[]; allowedAgentIds?: string[]; consentReceiptId?: string; supportCount: number; independentSourceCount: number; lastSupportedAt?: number; deleteAfter?: number; 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; domain?: PersonalDomain; layer?: PersonalModelLayer; sensitivityCategories?: AssertionSensitivityCategory[]; purposeIds?: string[]; allowedUses?: AssertionAllowedUse[]; allowedAgentIds?: string[]; consentReceiptId?: string; deleteAfter?: number; applicability?: Record; validFrom?: number; validTo?: number; observedAt: number; reviewAt?: number; createdBy: AssertionCreator; evidenceId?: string; evidenceConfidence?: number; correctionOfAssertionId?: string; } export declare function defaultAssertionDomain(kind: AssertionKind): PersonalDomain; export declare function defaultAssertionLayer(candidate: Pick): PersonalModelLayer; export type ReconciliationAction = 'created' | 'deduplicated' | 'superseded' | 'conflicted'; export type ReconciliationResult = { action: ReconciliationAction; assertion: UserAssertion; previousAssertion?: UserAssertion; } | { action: 'suppressed'; assertion?: undefined; previousAssertion?: undefined; }; export declare function validateScope(scope: UserModelScope): void; export declare function validateCandidate(candidate: AssertionCandidate): void;