/**
 * Interactive Message Database Mapper
 *
 * Maps between InteractiveMessage domain objects and SQLite database rows.
 *
 * Mapping Rules:
 * - TypeScript objects (camelCase) <-> SQL columns (snake_case)
 * - Dates stored as INTEGER (unix milliseconds)
 * - Optional sessionId stored as NULL when absent
 * - InteractiveMessageRole stored as string enum values
 */
import type { InteractiveMessage } from '../../../../domain/generated/output.js';
/**
 * Database row type matching the interactive_messages table schema.
 * Uses snake_case column names.
 */
export interface InteractiveMessageRow {
    id: string;
    feature_id: string;
    session_id: string | null;
    role: string;
    content: string;
    step_id: string | null;
    created_at: number;
    updated_at: number;
}
/**
 * Maps InteractiveMessage domain object to database row.
 * Converts Date objects to unix milliseconds for SQL storage.
 */
export declare function toDatabase(message: InteractiveMessage): InteractiveMessageRow;
/**
 * Maps database row to InteractiveMessage domain object.
 * Converts unix milliseconds back to Date objects.
 */
export declare function fromDatabase(row: InteractiveMessageRow): InteractiveMessage;
//# sourceMappingURL=interactive-message.mapper.d.ts.map