import { type IndexSerializedResource, type MatchedQueryHandlers, RequestTypes } from '../../Contracts';
import type { Filter } from '../../Filters';
import type { Ordering } from '../../Orderings';
import AvonRequest from './AvonRequest';
export default class ResourceIndexRequest extends AvonRequest {
    /**
     * Indicates type of the request instance.
     */
    type(): RequestTypes;
    /**
     * Get the paginator instance for the index request.
     */
    searchIndex(): Promise<{
        resources: IndexSerializedResource[];
        count: number;
    }>;
    /**
     * Get the page number.
     */
    currentPage(): number;
    /**
     * Get per page.
     */
    perPage(): number;
    /**
     * Get the filters for the request.
     */
    filters(): MatchedQueryHandlers<Filter>;
    /**
     * Get all of the possibly available filters for the request.
     */
    protected availableFilters(): Filter[];
    /**
     * Check if filter found in request.
     */
    protected hasFilter(key: string): boolean;
    /**
     * Get the orderings for the request.
     */
    orderings(): MatchedQueryHandlers<Ordering>;
    /**
     * Get all of the possibly available orderings for the request.
     */
    protected availableOrderings(): Ordering[];
}
