import type { AbstractMixable, Model } from '../Contracts';
import type AvonRequest from '../Http/Requests/AvonRequest';
declare const _default: <T extends AbstractMixable = AbstractMixable>(Parent: T) => (abstract new (...args: import("../Contracts").Args) => {
    /**
     * Register a callback to be called before the resource create.
     */
    beforeCreate(request: AvonRequest): void;
    /**
     * Register a callback to be called after the resource is created.
     */
    afterCreate(request: AvonRequest): void;
    /**
     * Register a callback to be called after the resource creation is committed.
     */
    created(request: AvonRequest): void;
    /**
     * Register a callback to be called before the resource update.
     */
    beforeUpdate(request: AvonRequest): void;
    /**
     * Register a callback to be called after the resource is updated.
     */
    afterUpdate(request: AvonRequest, resource: Model): void;
    /**
     * Register a callback to be called after the resource update is committed.
     */
    updated(request: AvonRequest, resource: Model): void;
    /**
     * Register a callback to be called before the resource delete.
     */
    beforeDelete(request: AvonRequest): void;
    /**
     * Register a callback to be called after the resource is destroyed.
     */
    afterDelete(request: AvonRequest): void;
    /**
     * Register a callback to be called before the resource force-destroyed.
     */
    beforeForceDelete(request: AvonRequest): void;
    /**
     * Register a callback to be called after the resource is force-destroyed.
     */
    afterForceDelete(request: AvonRequest): void;
    /**
     * Register a callback to be called after the resource delete is committed.
     */
    deleted(request: AvonRequest): void;
    /**
     * Register a callback to be called before the resource restore.
     */
    beforeRestore(request: AvonRequest): void;
    /**
     * Register a callback to be called after the resource is restored.
     */
    afterRestore(request: AvonRequest): void;
    /**
     * Register a callback to be called after the resource restore is committed.
     */
    restored(request: AvonRequest): void;
}) & T;
export default _default;
