import type { DataChange, DriverConfig, DriverStatement, RawResultData, Sqlite3, Sqlite3Db, Sqlite3InitModule, Sqlite3StorageType, SQLocalDriver, UserFunction } from '../types.js';
/**
 * A SQLocal driver that implements the interface needed for
 * interacting with SQLite databases in memory.
 */
export declare class SQLiteMemoryDriver implements SQLocalDriver {
    protected sqlite3InitModule?: Sqlite3InitModule;
    protected sqlite3?: Sqlite3;
    protected db?: Sqlite3Db;
    protected config?: DriverConfig;
    protected pointers: number[];
    protected writeCallbacks: Set<(change: DataChange) => void>;
    readonly storageType: Sqlite3StorageType;
    constructor(sqlite3InitModule?: Sqlite3InitModule);
    init(config: DriverConfig): Promise<void>;
    onWrite(callback: (change: DataChange) => void): () => void;
    exec(statement: DriverStatement): Promise<RawResultData>;
    execBatch(statements: DriverStatement[], method?: 'transaction' | 'savepoint'): Promise<RawResultData[]>;
    isDatabasePersisted(): Promise<boolean>;
    getDatabaseSizeBytes(): Promise<number>;
    createFunction(fn: UserFunction): Promise<void>;
    import(database: ArrayBuffer | Uint8Array<ArrayBuffer> | ReadableStream<Uint8Array<ArrayBuffer>>): Promise<void>;
    export(): Promise<{
        name: string;
        data: ArrayBuffer | Uint8Array<ArrayBuffer>;
    }>;
    clear(): Promise<void>;
    destroy(): Promise<void>;
    protected getFlags(config: DriverConfig): string;
    protected execOnDb(db: Sqlite3Db, statement: DriverStatement): RawResultData;
    protected initWriteHook(): void;
    protected closeDb(): void;
}
