import type { DBConnection } from '../../zql/src/mutate/custom.ts';
import { TransactionImpl } from './custom.ts';
import type { Schema } from '../../zero-schema/src/builder/schema-builder.ts';
import type { Database, TransactionProviderHooks, TransactionProviderInput } from './process-mutations.ts';
/**
 * Implements a Database for use with PushProcessor that is backed by Postgres.
 *
 * This implementation also implements the same ZQL interfaces for reading and
 * writing data that the Zero client does, so that mutator functions can be
 * shared across client and server.
 */
export declare class ZQLDatabase<S extends Schema, WrappedTransaction> implements Database<TransactionImpl<S, WrappedTransaction>> {
    #private;
    readonly connection: DBConnection<WrappedTransaction>;
    constructor(connection: DBConnection<WrappedTransaction>, schema: S);
    transaction<R>(callback: (tx: TransactionImpl<S, WrappedTransaction>, transactionHooks: TransactionProviderHooks) => Promise<R>, transactionInput?: TransactionProviderInput | undefined): Promise<R>;
}
//# sourceMappingURL=zql-database.d.ts.map