import { MySqlRemoteQueryResultHKT } from "./session.cjs";
import { entityKind } from "../entity.cjs";
import { AnyRelations, EmptyRelations } from "../relations.cjs";
import { MySqlDialect, MySqlDialectConfig } from "../mysql-core/dialect.cjs";
import { DrizzleMySqlConfig } from "../mysql-core/utils.cjs";
import { MySqlAsyncDatabase } from "../mysql-core/async/db.cjs";

//#region src/mysql-proxy/driver.d.ts
declare class MySqlRemoteDatabase<TRelations extends AnyRelations = EmptyRelations> extends MySqlAsyncDatabase<MySqlRemoteQueryResultHKT, TRelations> {
  static readonly [entityKind]: string;
}
type RemoteCallback = (sql: string, params: any[], method: 'all' | 'execute') => Promise<{
  rows: any[];
  insertId?: number;
  affectedRows?: number;
}>;
declare function drizzle<TRelations extends AnyRelations = EmptyRelations>(callback: RemoteCallback, config?: DrizzleMySqlConfig<TRelations>, _dialect?: (config?: MySqlDialectConfig) => MySqlDialect): MySqlRemoteDatabase<TRelations>;
//#endregion
export { MySqlRemoteDatabase, RemoteCallback, drizzle };
//# sourceMappingURL=driver.d.cts.map