import Database from 'better-sqlite3';
export interface DatabaseOptions {
    /**
     * Database file path
     */
    dbPath: string;
    /**
     * Enable WAL mode for better performance (default: true)
     */
    enableWAL?: boolean;
    /**
     * Enable foreign keys support (default: true)
     */
    enableForeignKeys?: boolean;
    /**
     * Better-sqlite3 options
     */
    sqliteOptions?: Database.Options;
}
/**
 * Manages SQLite database connection
 */
export declare class DatabaseManager {
    private static instances;
    private db;
    private dbOptions;
    /**
     * Creates a new DatabaseManager instance
     * @param options Database connection options
     */
    private constructor();
    /**
     * Gets or creates a DatabaseManager instance
     * @param options Database connection options
     * @returns DatabaseManager instance
     */
    static getInstance(options: DatabaseOptions): DatabaseManager;
    /**
     * Ensures that the database directory exists
     */
    private ensureDatabaseDirectory;
    /**
     * Initializes the database connection
     */
    private init;
    /**
     * Gets the database instance
     * @returns SQLite database instance
     */
    getDatabase(): Database.Database;
    /**
     * Closes the database connection
     */
    closeDatabase(): void;
    /**
     * Gets the database file path
     * @returns Database file path
     */
    getDatabasePath(): string;
}
