import type { AbstractMixable, AnyValue, PruneCallback } from '../Contracts';
import type AvonRequest from '../Http/Requests/AvonRequest';
declare const _default: <T extends AbstractMixable = AbstractMixable>(Parent: T) => (abstract new (...args: import("../Contracts").Args) => {
    attribute: AnyValue;
    /**
     * Indicates if the underlying field is prunable.
     */
    prunable: boolean;
    /**
     * The callback used to prunable the field.
     */
    pruneUsingCallback: PruneCallback;
    /**
     * Specify the callback that should be used to prunable the field.
     */
    pruneUsing(pruneUsingCallback: PruneCallback): any;
    /**
     * Determine if the underlying file should be pruned when the resource is deleted.
     */
    isPrunable(): boolean;
    /**
     * Specify if the underlying field should be pruned when the resource is deleted.
     */
    withPruning(prunable?: boolean): any;
    /**
     * Handle pruning for the incoming requests.
     */
    forRequest(request: AvonRequest): Promise<PruneCallback>;
    /**
     * Specify the default callback that should be used to prunable the field.
     */
    pruneCallback(): PruneCallback;
}) & T;
export default _default;
