import { Database } from 'better-sqlite3';
import type { ColumnType, ColumnValue, ConstructorOf } from './resource.js';
import { Query, Resource, ResourceDriver } from './resource.js';
export declare class SQLiteDriver extends ResourceDriver {
    readonly db: Database;
    constructor(path?: string);
    static parse(type: ColumnType, value: ColumnValue): any;
    static serialize(type: ColumnType, value: ColumnValue): string | number;
    save<T extends Resource>(model: T): Promise<string>;
    remove<T extends Resource>(model: T): Promise<void>;
    find<T extends Resource>(model: T): Promise<T>;
    findAll<M extends Resource>(resource: ConstructorOf<M>, query: Query<M>): Promise<M[]>;
    private createModel;
    create(resource: typeof Resource): Promise<void>;
}
