// Generated by nautilus-codegen. Do not edit manually.
import type { NautilusClient, TransactionBatchOperation } from './_internal/_client.js';
import { IsolationLevel } from './_internal/_transaction.js';
import type { TransactionClient } from './_internal/_transaction.js';
{%- for model in models %}
import type { {{ model.delegate_name }} } from './models/{{ model.snake_name }}.js';
{%- endfor %}
export declare class Nautilus extends NautilusClient {
{%- for model in models %}
readonly {{ model.camel_name }}: {{ model.delegate_name }};
{%- endfor %}
constructor(options?: { migrate?: boolean });
$transaction<T>(
fn: (tx: TransactionClient) => Promise<T>,
options?: { timeout?: number; isolationLevel?: IsolationLevel },
): Promise<T>;
$transactionBatch(
operations: TransactionBatchOperation[],
options?: { timeout?: number; isolationLevel?: IsolationLevel },
): Promise<unknown[]>;
}
export { IsolationLevel };
export type { TransactionBatchOperation, TransactionClient };