import type { OpenAPIV3 } from 'openapi-types';
import { type Model, type OpenApiSchema } from '../Contracts';
import type AvonRequest from '../Http/Requests/AvonRequest';
import type { Repository } from '../Repositories';
import Filter from './Filter';
export default abstract class RangeFilter extends Filter {
    /**
     * Apply the filter into the given repository.
     */
    apply(request: AvonRequest, repository: Repository<Model>, range: Record<string, string>): void;
    /**
     * Get the attribute that the date filter should perform on it.
     */
    abstract filterableAttribute(request: AvonRequest): string;
    /**
     * Serialize parameters for schema.
     */
    serializeParameters(request: AvonRequest): OpenAPIV3.ParameterObject[];
    /**
     * Get the swagger-ui schema.
     */
    schema(request: AvonRequest): OpenApiSchema;
}
