import { DeleteQueryBuilder, Kysely } from 'kysely';
import { type ParametersObject } from 'kysely-params';
import { CountTransform } from '../mappers/table-mapper-transforms.js';
import { ParameterizableMappingQuery } from './parameterizable-query.js';
/**
 * Compiling mapping query for deleting rows from a database table.
 */
export declare class CompilingMappingDeleteQuery<DB, TB extends keyof DB & string, QB extends DeleteQueryBuilder<DB, TB, any>, ReturnCount, Parameters extends ParametersObject<Parameters>> implements ParameterizableMappingQuery {
    #private;
    protected readonly db: Kysely<DB>;
    protected readonly qb: QB;
    protected readonly transforms: Readonly<CountTransform<ReturnCount>>;
    constructor(db: Kysely<DB>, qb: QB, transforms: Readonly<CountTransform<ReturnCount>>);
    /**
     * Runs the query, returning the number of rows deleted, converted to
     * the required client representation. Accepts values for any parameters
     * embedded in the query.
     *
     * On the first execution, compiles and discards the underlying Kysely
     * query builder. Subsequent executions reuse the compiled query.
     * @param params Record characterizing the parameter names and types.
     *  Pass in `{}` if the query has no parameters.
     * @returns Number of rows deleted, in client-requested representation.
     */
    returnCount(params: Parameters): Promise<ReturnCount>;
    /**
     * Runs the query, deleting the indicated rows, returning nothing.
     * Accepts values for any parameters embedded in the query.
     *
     * On the first execution, compiles and discards the underlying Kysely
     * query builder. Subsequent executions reuse the compiled query.
     * @param params Record characterizing the parameter names and types.
     *  Pass in `{}` if the query has no parameters.
     * @returns `true` if any rows were deleted, `false` otherwise.
     */
    run(params: Parameters): Promise<boolean>;
}
//# sourceMappingURL=compiling-delete-query.d.ts.map