import Database from "better-sqlite3";
import { DatabaseAdapter } from "./DatabaseAdapter";
export declare class SqliteAdapter implements DatabaseAdapter {
    db: Database.Database;
    constructor(dbPath?: string);
    initializeTables(): void;
    all(sql: string, params?: any[]): Promise<any[]>;
    get(sql: string, params?: any[]): Promise<any>;
    run(sql: string, params?: any[]): Promise<{
        lastID: number;
        changes: number;
    }>;
    prepare(sql: string): any;
    exec(sql: string): void;
    close(): void;
    getDb(): Database.Database;
    createStudent(id: string, name: string, email: string, passwordHash: string): Database.RunResult;
    createTeacher(id: string, name: string, email: string, passwordHash: string): Database.RunResult;
    findTeacherByEmail(email: string): any;
    findTeacherById(id: string): any;
    findStudentByEmail(email: string): any;
    findStudentById(id: string): any;
    /**
     * @deprecated Use findCoursesByTeacherId instead
     */
    findCoursesByAgentId(agentId: string): any[];
    findCoursesByTeacherId(teacherId: string): any[];
    /**
     * @deprecated Use findCategoriesByTeacherId instead
     */
    findCategoriesByAgentId(agentId: string): any[];
    findCategoriesByTeacherId(teacherId: string): any[];
    /**
     * Migrates data from agent_id to teacher_id for courses and categories
     * This helps with transitioning from the old model to the new teacher-based model
     * @param agentId The agent ID to migrate from
     * @param teacherId The teacher ID to migrate to
     */
    migrateAgentToTeacher(agentId: string, teacherId: string): void;
}
