import type { DeleteNode } from './@types/delete.js';
import type { AnyDB } from './@types/internal-types.js';
import { Executor } from './executor.js';
import { FilterableQueryBuilder } from './where-query-builder.js';
/**
 * A query builder for deleting records from the database.
 * @template DB - The database type.
 * @template TableName - The name of the table to delete from.
 */
export declare class DeleteQueryBuilder<DB extends AnyDB, TableName extends keyof DB> extends FilterableQueryBuilder<DB, TableName> {
    #private;
    constructor(node: DeleteNode, executor: Executor);
    /**
     * Executes the delete query.
     * @returns A promise that resolves with the number of affected records.
     *
     * @example
     * ```typescript
     * const { affectedRecords } = await qb
     *   .deleteFrom('users')
     *   .where('id', '=', 1)
     *   .execute();
     * ```
     */
    execute(): Promise<{
        affectedRecords: number;
    }>;
    compile(): {
        query: string;
        variables: Record<string, any>;
    };
    _prepareMetadata(): any;
}
