import type { QueryAnnotation } from "../abstract/QueryAnnotation";
import { QueryBase } from "../abstract/QueryBase";
import type { Schema } from "../abstract/Schema";
import type { CountInput, Table } from "../types";
import type { PgClient } from "./PgClient";
import { PgRunner } from "./PgRunner";
export declare class PgQueryCount<TTable extends Table> extends QueryBase<TTable, CountInput<TTable>, number, PgClient> {
    /** @ignore */
    readonly RUNNER_CLASS: typeof PgRunnerCount;
}
declare class PgRunnerCount<TTable extends Table> extends PgRunner<TTable, CountInput<TTable>, number> {
    static readonly IS_WRITE = false;
    private builder;
    readonly op = "COUNT";
    readonly maxBatchSize = 100;
    readonly default = 0;
    constructor(schema: Schema<TTable>, client: PgClient);
    key(input: CountInput<TTable>): string;
    runSingle(input: CountInput<TTable>, annotations: QueryAnnotation[]): Promise<number>;
    runBatch(inputs: Map<string, CountInput<TTable>>, annotations: QueryAnnotation[]): Promise<Map<string, number>>;
}
export {};
//# sourceMappingURL=PgQueryCount.d.ts.map