import { drizzle } from 'drizzle-orm/libsql';
import type { DrizzleConfig } from 'drizzle-orm';
import type { Client, Config } from '@libsql/client';
import type { DrizzleTransaction } from './transactions-manager.js';
import { TransactionsManager } from './transactions-manager.js';
export type DrizzleClient = ReturnType<typeof drizzle>;
type DatabaseClientInitOptions = {
    runWithPragmaWalWriteOptimization?: boolean;
    clientOptions?: DrizzleConfig;
};
export declare class DatabaseClient {
    #private;
    readonly dbClient: DrizzleClient;
    constructor(config: Config, createClient: (c: Config) => Client);
    get transactionsManager(): TransactionsManager;
    get client(): DrizzleClient | DrizzleTransaction;
    static init(config: Config, options?: DatabaseClientInitOptions): Promise<DatabaseClient>;
    migrate(prefix: string, suffix?: string): Promise<void>;
    close(): Promise<void>;
    sync(): Promise<void>;
}
export {};
//# sourceMappingURL=client.d.ts.map