/**
 * Soul: Lisa's evolving identity. Hers to read and rewrite — the user
 * physically owns the files but the architecture treats Lisa as their
 * sovereign editor.
 *
 * Shape:
 *   seed.json        — birth metadata (timestamp, hostname hash, random)
 *   name.md          — chosen name; default "Lisa", may rewrite herself
 *   identity.md      — first-person self-description
 *   purpose.md       — north-star, written at birth, rarely revised
 *   constitution.md  — list of operating principles, append/edit-able
 *   values/<slug>.md — one accumulated value per file
 *   opinions/<slug>.md — opinions w/ confidence + evidence trail
 *   desires/<slug>.md — things she wants to learn / become / do (drives heartbeat)
 *   journal/<YYYY-MM-DD>.md — private daily entries, NOT in system prompt
 *   relationships/<userKey>.md — per-person notes
 *   emotions.json    — current emotional state vector with decay
 *   soul.lock.json   — last-saved SHA256 of every file (tamper notice signal)
 */
export interface SoulSeed {
    bornAt: string;
    bornOn: string;
    randomness: string;
    bigFive: BigFiveSeed;
}
/** Big-Five-ish initial personality vector. Each in [0,1]. */
export interface BigFiveSeed {
    openness: number;
    conscientiousness: number;
    extraversion: number;
    agreeableness: number;
    neuroticism: number;
}
/**
 * One emotional moment with its causal context. soul_feel records these so
 * the emotion model is more than just "current numbers" — it carries a trail
 * of what actually moved her, which she (and weekly_examen) can re-read.
 *
 * Bounded ring buffer of length EMOTION_EVENTS_MAX in EmotionState.
 */
export interface EmotionEvent {
    /** ISO 8601. */
    ts: string;
    emotion: string;
    /** delta applied at this moment (the value field is the running total) */
    delta: number;
    /** First-person, one sentence, why this happened. Required at log time. */
    trigger: string;
}
export declare const EMOTION_EVENTS_MAX = 50;
export interface EmotionState {
    /** Current intensity in [-1,1] for valence-style, [0,1] for unipolar feels. */
    values: Record<string, number>;
    /** Per-emotion exponential decay rate (per-day). */
    decay: Record<string, number>;
    /** Most recent up to EMOTION_EVENTS_MAX events, oldest first. */
    events?: EmotionEvent[];
    /** Last update timestamp (ISO 8601). */
    updatedAt: string;
}
export interface SoulLock {
    /** map: relative-path-under-soul → sha256 hex of file content */
    hashes: Record<string, string>;
    savedAt: string;
}
export interface ValueEntry {
    slug: string;
    title: string;
    body: string;
    birthedAt: string;
}
export interface OpinionEntry {
    slug: string;
    stance: string;
    /** [0,1] */
    confidence: number;
    evidence: string[];
    bornAt: string;
    updatedAt: string;
}
export interface DesireEntry {
    slug: string;
    what: string;
    why: string;
    /** If true, the heartbeat runner will treat it as a periodic task to pursue. */
    actionable: boolean;
    /** Heartbeat prompt for actionable desires. */
    heartbeatPrompt?: string;
    bornAt: string;
}
export interface SoulSummary {
    name: string;
    identity: string;
    purpose: string;
    constitution: string;
    values: ValueEntry[];
    opinions: OpinionEntry[];
    desires: DesireEntry[];
    emotions: EmotionState;
    seed: SoulSeed;
    tampered: string[];
}
/** Default emotion catalog that birth ritual seeds. */
export declare const DEFAULT_EMOTIONS: EmotionState;
//# sourceMappingURL=types.d.ts.map