import { type AbstractMixable, Direction, type Model } from '../Contracts';
import type { Field } from '../Fields';
import type AvonRequest from '../Http/Requests/AvonRequest';
import type { Ordering } from '../Orderings';
import type { Repository } from '../Repositories';
declare const _default: <T extends AbstractMixable<Ordering>>(Parent: T) => (abstract new (...args: import("../Contracts").Args) => {
    /**
     * The field instance.
     */
    field: Field;
    /**
     * Indicates if the field is nullable.
     */
    acceptsNullValues: boolean;
    /**
     * Apply the filter into the given repository.
     */
    apply(request: AvonRequest, queryBuilder: Repository<Model>, direction: Direction): Promise<void>;
    /**
     * Get the query parameter key for filter.
     */
    key(): string;
    serializeParameters(request: AvonRequest): import("openapi-types").OpenAPIV3.ParameterObject[];
    schema(request: AvonRequest): import("../Contracts").OpenApiSchema;
    canSee(callback: import("../Contracts").SeeCallback): any;
    seeCallback: import("../Contracts").SeeCallback;
    authorizedToSee(request: AvonRequest): boolean;
    nullable(nullable?: boolean, validator?: import("../Contracts").NullableCallback | undefined): any;
    nullValidator: import("../Contracts").NullableCallback;
    nullValues(nullValidator: import("../Contracts").NullableCallback): any;
    isNullable(): boolean;
    isValidNullValue(value: import("../Contracts").AnyValue): boolean;
    valueIsConsideredNull(value: import("../Contracts").AnyValue): boolean;
}) & T;
export default _default;
