import { MySqlPreparedQueryConfig } from "../session.cjs";
import { MySqlRelationalQuery, MySqlRelationalQueryHKTBase } from "../query-builders/query.cjs";
import { MySqlAsyncPreparedQuery, MySqlAsyncSession } from "./session.cjs";
import { entityKind } from "../../entity.cjs";
import { QueryPromise } from "../../query-promise.cjs";

//#region src/mysql-core/async/query.d.ts
type AnyMySqlAsyncRelationalQuery = MySqlAsyncRelationalQuery<any>;
interface MySqlAsyncRelationalQueryHKT extends MySqlRelationalQueryHKTBase {
  _type: MySqlAsyncRelationalQuery<this['result']>;
}
interface MySqlAsyncRelationalQuery<TResult> extends QueryPromise<TResult> {}
declare class MySqlAsyncRelationalQuery<TResult> extends MySqlRelationalQuery<MySqlAsyncRelationalQueryHKT, TResult> {
  static readonly [entityKind]: string;
  protected session: MySqlAsyncSession;
  prepare(): MySqlAsyncPreparedQuery<MySqlPreparedQueryConfig & {
    execute: TResult;
  }>;
  execute(): Promise<TResult>;
}
//#endregion
export { AnyMySqlAsyncRelationalQuery, MySqlAsyncRelationalQuery, MySqlAsyncRelationalQueryHKT };
//# sourceMappingURL=query.d.cts.map