import { default as Database } from 'better-sqlite3'; /** * Current schema version */ export declare const CURRENT_SCHEMA_VERSION = 3; /** * Schema v1 DDL - initial schema */ export declare const SCHEMA_V1 = "\n-- Core metadata (key-value with JSON for complex values)\nCREATE TABLE IF NOT EXISTS metadata (\n key TEXT PRIMARY KEY,\n value TEXT NOT NULL,\n updated_at TEXT NOT NULL DEFAULT (datetime('now'))\n);\n\n-- Content storage (enhanced and raw transcripts)\nCREATE TABLE IF NOT EXISTS content (\n id INTEGER PRIMARY KEY AUTOINCREMENT,\n type TEXT NOT NULL CHECK (type IN ('enhanced', 'raw')),\n text TEXT NOT NULL,\n created_at TEXT NOT NULL DEFAULT (datetime('now')),\n updated_at TEXT NOT NULL DEFAULT (datetime('now'))\n);\n\n-- Content history (line-based diffs for enhanced transcript)\nCREATE TABLE IF NOT EXISTS content_history (\n id INTEGER PRIMARY KEY AUTOINCREMENT,\n content_id INTEGER NOT NULL,\n diff TEXT NOT NULL,\n created_at TEXT NOT NULL DEFAULT (datetime('now')),\n FOREIGN KEY (content_id) REFERENCES content(id)\n);\n\n-- Metadata audit log (field changes with old/new values)\nCREATE TABLE IF NOT EXISTS audit_log (\n id INTEGER PRIMARY KEY AUTOINCREMENT,\n field TEXT NOT NULL,\n old_value TEXT,\n new_value TEXT,\n changed_at TEXT NOT NULL DEFAULT (datetime('now'))\n);\n\n-- Extensible artifacts storage (for raw transcript metadata, future types)\nCREATE TABLE IF NOT EXISTS artifacts (\n id INTEGER PRIMARY KEY AUTOINCREMENT,\n type TEXT NOT NULL,\n data BLOB,\n metadata TEXT,\n created_at TEXT NOT NULL DEFAULT (datetime('now'))\n);\n\n-- Enhancement log (audit trail of enhancement pipeline steps)\nCREATE TABLE IF NOT EXISTS enhancement_log (\n id INTEGER PRIMARY KEY AUTOINCREMENT,\n timestamp TEXT NOT NULL,\n phase TEXT NOT NULL,\n action TEXT NOT NULL,\n details TEXT,\n entities TEXT\n);\n\n-- Schema version tracking\nCREATE TABLE IF NOT EXISTS schema_version (\n version INTEGER PRIMARY KEY\n);\n\n-- Create indexes for common queries\nCREATE INDEX IF NOT EXISTS idx_content_type ON content(type);\nCREATE INDEX IF NOT EXISTS idx_content_history_content_id ON content_history(content_id);\nCREATE INDEX IF NOT EXISTS idx_audit_log_field ON audit_log(field);\nCREATE INDEX IF NOT EXISTS idx_audit_log_changed_at ON audit_log(changed_at);\nCREATE INDEX IF NOT EXISTS idx_artifacts_type ON artifacts(type);\nCREATE INDEX IF NOT EXISTS idx_enhancement_log_timestamp ON enhancement_log(timestamp);\nCREATE INDEX IF NOT EXISTS idx_enhancement_log_phase ON enhancement_log(phase);\n"; /** * Initialize a new database with the current schema */ export declare function initializeSchema(db: Database.Database): void; /** * Get the current schema version from a database * Returns 0 if schema_version table doesn't exist */ export declare function getSchemaVersion(db: Database.Database): number; /** * Check if database needs migration */ export declare function needsMigration(db: Database.Database): boolean; /** * Migrate database to latest schema version * Currently only v1 exists, but this structure supports future migrations */ export declare function migrateToLatest(db: Database.Database): void; /** * Validate that a database has the expected schema for its version */ export declare function validateSchema(db: Database.Database): { valid: boolean; errors: string[]; }; //# sourceMappingURL=schema.d.ts.map