import type { AbstractMixable } from '../Contracts';
import { Filter } from '../Filters';
import type AvonRequest from '../Http/Requests/AvonRequest';
declare const _default: <T extends AbstractMixable = AbstractMixable>(Parent: T) => (abstract new (...args: import("../Contracts").Args) => {
    /**
     * Get the filters that are available for the given request.
     */
    availableFilters(request: AvonRequest): Filter[];
    /**
     * Get the filters for the given request.
     */
    resolveFilters(request: AvonRequest): Filter[];
    /**
     * Get the filters from filterable fields for the given request.
     */
    resolveFiltersFromFields(request: AvonRequest): Filter[];
    /**
     * Get the filters available on the entity.
     */
    filters(request: AvonRequest): Filter[];
}) & T;
export default _default;
