import type { Action } from '../Actions';
import type { AbstractMixable, BulkActionResult, Model, Payload, PrimaryKey, UnknownRecord } from '../Contracts';
declare const _default: <T extends AbstractMixable = AbstractMixable>(Parent: T) => (abstract new (...args: import("../Contracts").Args) => {
    /**
     * Indicates related resource model.
     */
    resource: Model;
    /**
     * Indicates activating dump events for the resource.
     */
    dumpActions: boolean;
    /**
     * Create an action event for the resource creation.
     */
    dumpCreationAction(requestID: string, payload?: Payload, userId?: PrimaryKey): void;
    /**
     * Create an action event for the resource updates.
     */
    dumpUpdateAction(requestID: string, previous: Model, payload?: Payload, userId?: PrimaryKey): void;
    /**
     * Create an action event for the resource delete.
     */
    dumpDeletionAction(requestID: string, userId?: PrimaryKey): void;
    /**
     * Create an action event for the resource delete.
     */
    dumpRestoreAction(requestID: string, userId?: PrimaryKey): void;
    /**
     * Create an action event for the resource delete.
     */
    dumpStandaloneActionAction(requestID: string, action: Action, payload?: Payload, userId?: PrimaryKey): void;
    /**
     * Create an action event for the resource delete.
     */
    dumpBulkActionAction(requestID: string, action: Action, changes?: BulkActionResult, payload?: Payload, userId?: PrimaryKey): void;
    /**
     * Get the default attributes for creating a new action event.
     */
    dump(requestID: string, action: string, userId?: PrimaryKey, payload?: Payload, changes?: UnknownRecord): void;
    /**
     * Determine could dump the action.
     */
    debugIsEnabled(): boolean;
    /**
     * Get the resource name fo events.
     */
    resourceName(): string;
}) & T;
export default _default;
