export interface BigFiveScores { extraversion: number; conscientiousness: number; agreeableness: number; openness: number; emotionalStability: number; } export interface BigFiveSample { timestamp: string; chatId: string; user: BigFiveScores; robot: BigFiveScores; } export interface BigFiveProfile { sampleCount: number; lastUpdated: string; user: BigFiveScores; robot: BigFiveScores; } export declare function loadProfile(): Promise; /** * Validate and clamp raw scores from LLM output. * Returns null if the data is completely unusable. */ export declare function validateScores(raw: unknown): BigFiveScores | null; /** * Record a new observation sample and update the running profile. * Safe to call fire-and-forget. */ export declare function updateProfile(sample: BigFiveSample): Promise; /** * Format the personality profile as a text block for the system prompt. * Returns empty string if no profile exists yet. */ export declare function formatProfileBlock(profile: BigFiveProfile | null): string; /** * Get the current personality profile with caching. * Refreshes from disk at most every 5 minutes. */ export declare function getCachedProfile(): Promise; /** Force-refresh the cache (called after updating the profile). */ export declare function invalidateProfileCache(): void; //# sourceMappingURL=big-five.d.ts.map