import { type AnyArray, 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 SelectFilter extends Filter {
    /**
     * The help text for the filter.
     */
    helpText?: string;
    /**
     * Apply the filter into the given repository.
     */
    apply(request: AvonRequest, repository: Repository<Model>, value: never): void;
    /**
     * Get the attribute that the boolean filter should perform on it.
     */
    abstract filterableAttribute(request: AvonRequest): string;
    /**
     * Get the possible filtering values.
     */
    options(): AnyArray;
    /**
     * Get the swagger-ui schema.
     */
    schema(request: AvonRequest): OpenApiSchema;
}
