import { InArgs } from "@libsql/client";
import { Database, DatabaseBatchResult, DatabaseInfo, DatabaseResult, DatabaseStatement, DatabaseStorage, DeleteDatabaseResult, EnsureDatabaseResult } from "./types.js";
/**
 * Implementation of Database interface for filesystem storage
 */
export declare class FileSystemDatabase implements Database {
    private client;
    private dbPath;
    private dbName;
    constructor(rootPath: string, dbName: string);
    execute(sql: string, params?: InArgs): Promise<DatabaseResult>;
    batch(statements: DatabaseStatement[]): Promise<DatabaseBatchResult>;
    executeMultiple(sql: string): Promise<DatabaseBatchResult>;
    migrate(sql: string): Promise<DatabaseBatchResult>;
    getInfo(): Promise<DatabaseInfo>;
    close(): void;
}
/**
 * Implementation of DatabaseStorage interface for filesystem storage
 */
export declare class FileSystemDatabaseStorage implements DatabaseStorage {
    private rootPath;
    private databases;
    constructor(rootPath: string);
    /**
     * Ensure the root directory exists
     */
    private ensureRootDir;
    getDatabase(name: string): Database;
    listDatabases(options?: {
        limit?: number;
        cursor?: string;
    }): Promise<{
        databases: {
            name: string;
            createdAt: Date;
        }[];
        nextCursor?: string;
    }>;
    ensureDatabase(name: string): Promise<EnsureDatabaseResult>;
    deleteDatabase(name: string): Promise<DeleteDatabaseResult>;
    hasEnsuredDatabase(name: string): boolean;
}
//# sourceMappingURL=filesystem.d.ts.map