import { MySqlViewBase } from "../view-base.cjs";
import { MySqlTable } from "../table.cjs";
import { MySqlDialect } from "../dialect.cjs";
import { MySqlCountBuilder } from "../query-builders/count.cjs";
import { MySqlEffectSession } from "./session.cjs";
import { entityKind } from "../../entity.cjs";
import { SQL, SQLWrapper } from "../../sql/sql.cjs";
import * as Effect from "effect/Effect";
import * as __effect_core_query_effect_ts0 from "../../effect-core/query-effect.cjs";
import { QueryEffectHKTBase } from "../../effect-core/query-effect.cjs";

//#region src/mysql-core/effect/count.d.ts
interface MySqlEffectCountBuilder<TEffectHKT extends QueryEffectHKTBase = QueryEffectHKTBase> extends MySqlCountBuilder, Effect.Effect<number, TEffectHKT['error'], TEffectHKT['context']> {}
declare class MySqlEffectCountBuilder<TEffectHKT extends QueryEffectHKTBase = QueryEffectHKTBase> extends MySqlCountBuilder {
  static readonly [entityKind]: string;
  protected session: MySqlEffectSession<TEffectHKT, any, any>;
  constructor({
    source,
    dialect,
    filters,
    session
  }: {
    source: MySqlTable | MySqlViewBase | SQL | SQLWrapper;
    filters?: SQL<unknown>;
    dialect: MySqlDialect;
    session: MySqlEffectSession<TEffectHKT, any, any>;
  });
  execute(placeholderValues?: Record<string, unknown>): __effect_core_query_effect_ts0.QueryEffectKind<TEffectHKT, number>;
}
//#endregion
export { MySqlEffectCountBuilder };
//# sourceMappingURL=count.d.cts.map