/**
 * Conversation Memory Types for NeuroLink
 * Provides type-safe conversation storage and context management
 *
 * ## Timestamp Conventions
 *
 * NeuroLink uses two timestamp formats throughout the conversation system:
 *
 * ### Unix Milliseconds (number)
 * Used for internal storage, event timestamps, and performance-critical operations.
 * - `SessionMemory.createdAt` - Session creation time as Unix epoch milliseconds
 * - `SessionMemory.lastActivity` - Last activity time as Unix epoch milliseconds
 * - `SessionMemory.lastCountedAt` - Token count timestamp as Unix epoch milliseconds
 * - `ConversationMemoryEvents.*.timestamp` - Event timestamps as Unix epoch milliseconds
 * - `ChatMessage.metadata.timestamp` - Optional numeric timestamp for internal tracking
 *
 * Example: `1735689600000` represents January 1, 2025, 00:00:00 UTC
 *
 * ### ISO 8601 String (string)
 * Used for human-readable fields and API responses.
 * - `ChatMessage.timestamp` - Message timestamp as ISO 8601 string
 * - `ConversationBase.createdAt` - Conversation creation as ISO 8601 string
 * - `ConversationBase.updatedAt` - Last update as ISO 8601 string
 * - `ConversationSummary.firstMessage.timestamp` - Message preview timestamp
 * - `ConversationSummary.lastMessage.timestamp` - Message preview timestamp
 *
 * Example: `"2025-01-01T00:00:00.000Z"`
 *
 * ### Conversion Guidelines
 * - Unix ms to ISO: `new Date(unixMs).toISOString()`
 * - ISO to Unix ms: `new Date(isoString).getTime()`
 * - Current time (Unix ms): `Date.now()`
 * - Current time (ISO): `new Date().toISOString()`
 */
/**
 * Error types specific to conversation memory
 */
export class ConversationMemoryError extends Error {
    code;
    details;
    constructor(message, code, details) {
        super(message);
        this.code = code;
        this.details = details;
        this.name = "ConversationMemoryError";
    }
}
//# sourceMappingURL=conversation.js.map