import { BooleanPredicateBuilder } from "./BooleanPredicateBuilder";
import { ExpressionOperator } from "./ExpressionOperator";
import { FilterAccessoryFunctions } from "./FilterAccessoryFunctions";
import type { ODataQueryProvider } from "./ODataQueryProvider";
import type { ArrayProxyFieldPredicateInterface, EqualityProxyFieldPredicate, InequalityProxyFieldPredicate, PredicateArgument, StringProxyFieldPredicateInterface } from "./ProxyFilterTypes";
import type { EntityProxy, PropertyProxy } from "./ProxyTypes";
export declare class ProxyPropertyPredicate<T> implements EqualityProxyFieldPredicate<T>, InequalityProxyFieldPredicate<T>, StringProxyFieldPredicateInterface, ArrayProxyFieldPredicateInterface {
    private readonly provider;
    private readonly fieldReference;
    constructor(propertyProxy: PropertyProxy<T>, provider: ODataQueryProvider);
    equals(value: PredicateArgument<T>): BooleanPredicateBuilder<T>;
    notEquals(value: PredicateArgument<T>): BooleanPredicateBuilder<T>;
    in(value: ArrayLike<PredicateArgument<T>> | Iterable<PredicateArgument<T>>): BooleanPredicateBuilder<PredicateArgument<T>[]>;
    lessThan(value: PredicateArgument<T>): BooleanPredicateBuilder<T>;
    lessThanOrEqualTo(value: PredicateArgument<T>): BooleanPredicateBuilder<T>;
    greaterThan(value: PredicateArgument<T>): BooleanPredicateBuilder<T>;
    greaterThanOrEqualTo(value: PredicateArgument<T>): BooleanPredicateBuilder<T>;
    contains(value: PredicateArgument<string>): BooleanPredicateBuilder<string>;
    startsWith(value: PredicateArgument<string>): BooleanPredicateBuilder<string>;
    endsWith(value: PredicateArgument<string>): BooleanPredicateBuilder<string>;
    any<U>(value: (entity: EntityProxy<U, true>, compound: FilterAccessoryFunctions<U>) => BooleanPredicateBuilder<U[]>): BooleanPredicateBuilder<U>;
    all<U>(value: (entity: EntityProxy<U, true>, compound: FilterAccessoryFunctions<U>) => BooleanPredicateBuilder<U[]>): BooleanPredicateBuilder<U>;
    private buildCollectionFilterPredicateBuilder;
    protected buildPredicateBuilder<P>(value: PredicateArgument<P>, operator: ExpressionOperator): BooleanPredicateBuilder<P>;
    private getFieldReference;
}
