import { type PersonaProfile } from './memory.js';
export interface PersonaSnippetOpts {
    /** Per-conversation IM platform. */
    platform: string;
    /** Per-conversation user id (the human across IMs). */
    userId: string;
    /** Master switch — when false (default for new installs that haven't
     *  opted in yet), returns ''. Controlled by IMHUB_MEMORY_ENABLED. */
    enabled?: boolean;
}
export declare function isMemoryEnabled(): boolean;
/**
 * Pure render helper — given a persona profile + fact count, build the
 * snippet text. Exported separately so unit tests can exercise the
 * P0 #4 row-age formatting without mocking SQLite-backed memory.
 *
 * When profile.updated_at is non-zero, the header carries a
 * "(summary last consolidated 3d ago)" tag so the agent can weight
 * stale facts against fresh ones without an extra tool call.
 */
export declare function renderPersonaSnippet(profile: PersonaProfile | null, factCount: number): string;
/**
 * Build the persona snippet for prepending to a prompt. Empty string means
 * "don't prepend anything" — caller should just use the original prompt.
 */
export declare function buildPersonaSnippet(opts: PersonaSnippetOpts): string;
/** Convenience: same as buildPersonaSnippet but reads the row + count once
 *  for inspection (e.g. /memory list IM command). */
export declare function inspectPersona(platform: string, userId: string): {
    user_key: string;
    profile: PersonaProfile | null;
    factCount: number;
};
//# sourceMappingURL=persona.d.ts.map