import { MsSqlViewBase } from "../view-base.cjs";
import { MsSqlTable } from "../table.cjs";
import { MsSqlDialect } from "../dialect.cjs";
import { MsSqlSession } from "../session.cjs";
import { entityKind } from "../../entity.cjs";
import { Query, SQL, SQLWrapper } from "../../sql/sql.cjs";
import { QueryPromise } from "../../query-promise.cjs";

//#region src/mssql-core/query-builders/count.d.ts
interface MsSqlCountBuilder extends SQL<number>, SQLWrapper<number>, QueryPromise<number> {}
declare class MsSqlCountBuilder extends SQL<number> implements SQLWrapper<number> {
  protected countConfig: {
    source: MsSqlTable | MsSqlViewBase | SQL | SQLWrapper;
    filters?: SQL<unknown>;
    dialect: MsSqlDialect;
    session: MsSqlSession<any, any, any, any>;
  };
  static readonly [entityKind]: string;
  protected dialect: MsSqlDialect;
  protected session: MsSqlSession<any, any, any, any>;
  private static buildCount;
  constructor(countConfig: {
    source: MsSqlTable | MsSqlViewBase | SQL | SQLWrapper;
    filters?: SQL<unknown>;
    dialect: MsSqlDialect;
    session: MsSqlSession<any, any, any, any>;
  });
  private executableSql;
  protected build(): Query;
  execute(placeholderValues?: Record<string, unknown>): Promise<number>;
}
//#endregion
export { MsSqlCountBuilder };
//# sourceMappingURL=count.d.cts.map