import type { QueryAnnotation } from "../abstract/QueryAnnotation";
import { QueryBase } from "../abstract/QueryBase";
import type { Schema } from "../abstract/Schema";
import type { InsertInput, Table } from "../types";
import type { PgClient } from "./PgClient";
import { PgRunner } from "./PgRunner";
export declare class PgQueryInsert<TTable extends Table> extends QueryBase<TTable, InsertInput<TTable>, string | null, PgClient> {
    /** @ignore */
    readonly RUNNER_CLASS: typeof PgRunnerInsert;
}
declare class PgRunnerInsert<TTable extends Table> extends PgRunner<TTable, InsertInput<TTable>, string | null> {
    static readonly IS_WRITE = true;
    private singleBuilder;
    private batchBuilder;
    readonly op = "INSERT";
    readonly maxBatchSize = 100;
    readonly default: null;
    constructor(schema: Schema<TTable>, client: PgClient);
    key(input: InsertInput<TTable>): string;
    runSingle(input: InsertInput<TTable>, annotations: QueryAnnotation[]): Promise<string | undefined>;
    runBatch(inputs: Map<string, InsertInput<TTable>>, annotations: QueryAnnotation[]): Promise<Map<string, string>>;
}
export {};
//# sourceMappingURL=PgQueryInsert.d.ts.map