/**
 * Settings Database Mapper
 *
 * Maps between Settings domain objects and SQLite database rows.
 *
 * Mapping Rules:
 * - TypeScript objects (camelCase) ↔ SQL columns (snake_case)
 * - Nested objects flattened to columns (e.g., models.analyze → model_analyze)
 * - Booleans stored as INTEGER (0 = false, 1 = true)
 * - Dates stored as ISO 8601 strings
 * - Optional fields stored as NULL when missing
 */
import type { Settings } from '../../../../domain/generated/output.js';
/**
 * Database row type matching the settings table schema.
 * Uses snake_case column names with flattened nested objects.
 */
export interface SettingsRow {
    id: string;
    created_at: string;
    updated_at: string;
    model_analyze: string;
    model_requirements: string;
    model_plan: string;
    model_implement: string;
    user_name: string | null;
    user_email: string | null;
    user_github_username: string | null;
    env_default_editor: string;
    env_shell_preference: string;
    sys_auto_update: number;
    sys_log_level: string;
    agent_type: string;
    agent_auth_method: string;
    agent_token: string | null;
}
/**
 * Maps Settings domain object to database row.
 * Flattens nested objects and converts types for SQL storage.
 *
 * @param settings - Settings domain object
 * @returns Database row object with snake_case columns
 */
export declare function toDatabase(settings: Settings): SettingsRow;
/**
 * Maps database row to Settings domain object.
 * Reconstructs nested objects and converts types from SQL.
 *
 * @param row - Database row with snake_case columns
 * @returns Settings domain object with camelCase properties
 */
export declare function fromDatabase(row: SettingsRow): Settings;
//# sourceMappingURL=settings.mapper.d.ts.map