type Row = Record<string, any>;
declare class MemoryStatement {
    private readonly db;
    private readonly sql;
    constructor(db: MemoryDatabase, sql: string);
    all(...args: any[]): Row[];
    get(...args: any[]): Row | undefined;
    run(...args: any[]): {
        changes: number;
    };
    private runInsert;
    private findInsertConflict;
    private runUpdate;
    private runDelete;
    private select;
    private applyWhere;
    private applyOrder;
    private applyLimit;
}
declare class MemoryDatabase {
    readonly name: string;
    private readonly data;
    constructor(name?: string);
    rows(table: string): Row[];
    prepare(sql: string): MemoryStatement;
    exec(_sql: string): void;
    pragma(_sql: string): void;
    transaction<T extends (...args: any[]) => any>(fn: T): T;
    close(): void;
}
export declare function createW3KitsMemoryDatabase(name?: string): MemoryDatabase;
export {};
