import { Constructor } from '@adonisjs/core/types/common';
import type { UUID } from 'node:crypto';
import { AKModel } from '../model.js';
import { AKModelServiceBaseClass } from './base.js';
import { AKModelServiceFetchClass, ListQuery } from './fetch.js';
export type AKModelServiceDeleteClass<M extends typeof AKModel> = AKModelServiceBaseClass<M> & AKModelServiceFetchClass<M> & Constructor<{
    preDelete(item: InstanceType<M>): Promise<void>;
    delete(id: UUID): Promise<void>;
    deleteMany(query: ListQuery<M>): Promise<void>;
    postDelete(item: InstanceType<M>): Promise<void>;
}>;
export declare const AKModelServiceDelete: <M extends typeof AKModel>(superclass: AKModelServiceBaseClass<M> & AKModelServiceFetchClass<M>) => AKModelServiceDeleteClass<M>;
