import { InArgs } from "@libsql/client";
import { Database, DatabaseBatchResult, DatabaseInfo, DatabaseResult, DatabaseStatement, DatabaseStorage, DeleteDatabaseResult, EnsureDatabaseResult } from "./types.js";
/**
 * Implementation of Database interface for remote cloud storage
 */
export declare class RemoteDatabase implements Database {
    private databaseName;
    private baseUrl;
    private apiKey;
    private org;
    private project;
    private environment;
    constructor(databaseName: string, baseUrl: string, apiKey: string, org: string, project: string, environment: 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 remote cloud storage
 */
export declare class RemoteDatabaseStorage implements DatabaseStorage {
    private apiKey;
    private apiBaseUrl;
    private org;
    private project;
    private environment;
    private databases;
    constructor(project: string, environment: string);
    getDatabase(name: string): Database;
    listDatabases(options?: {
        limit?: number;
        cursor?: string;
    }): Promise<{
        databases: {
            name: string;
            createdAt: Date;
        }[];
        nextCursor?: string;
    }>;
    ensureDatabase(name: string): Promise<EnsureDatabaseResult>;
    hasEnsuredDatabase(name: string): boolean;
    deleteDatabase(name: string): Promise<DeleteDatabaseResult>;
}
//# sourceMappingURL=remote.d.ts.map