import Database from 'better-sqlite3';
import { BaseEntity } from './BaseEntity';
/**
 * Database initializer for creating tables and schema
 */
export declare class DbInitializer {
    private entityClasses;
    private db;
    /**
     * Creates a new DbInitializer instance
     * @param db SQLite database instance
     */
    constructor(db: Database.Database);
    /**
     * Registers an entity class for initialization
     * @param entityClass Entity class that extends BaseEntity
     * @returns this instance for chaining
     */
    register(entityClass: typeof BaseEntity): DbInitializer;
    /**
     * Registers multiple entity classes for initialization
     * @param entityClasses Array of entity classes
     * @returns this instance for chaining
     */
    registerMany(entityClasses: Array<typeof BaseEntity>): DbInitializer;
    /**
     * Initializes all registered tables
     * @returns this instance for chaining
     */
    initTables(): DbInitializer;
    /**
     * Drops a table if it exists
     * @param tableName Name of the table to drop
     * @returns this instance for chaining
     */
    dropTable(tableName: string): DbInitializer;
    /**
     * Clears all data from a table without dropping the table structure
     * @param tableName Name of the table to clear
     * @returns this instance for chaining
     */
    clearTable(tableName: string): DbInitializer;
}
