import { MySqlViewBase } from "../view-base.cjs";
import { MySqlTable } from "../table.cjs";
import { MySqlDialect } from "../dialect.cjs";
import { MySqlCountBuilder } from "../query-builders/count.cjs";
import { MySqlAsyncSession } from "./session.cjs";
import { entityKind } from "../../entity.cjs";
import { SQL, SQLWrapper } from "../../sql/sql.cjs";
import { QueryPromise } from "../../query-promise.cjs";

//#region src/mysql-core/async/count.d.ts
interface MySqlAsyncCountBuilder extends MySqlCountBuilder, QueryPromise<number> {}
declare class MySqlAsyncCountBuilder extends MySqlCountBuilder {
  static readonly [entityKind]: string;
  protected session: MySqlAsyncSession;
  constructor({
    source,
    dialect,
    filters,
    session
  }: {
    source: MySqlTable | MySqlViewBase | SQL | SQLWrapper;
    filters?: SQL<unknown>;
    dialect: MySqlDialect;
    session: MySqlAsyncSession;
  });
  execute(placeholderValues?: Record<string, unknown>): Promise<number>;
}
//#endregion
export { MySqlAsyncCountBuilder };
//# sourceMappingURL=count.d.cts.map