import { Coordinates, EmptyExpression, Expression, FieldExpression, CompositeExpression, Latitude, Longitude, Not, MaybeExpression, type Stringable } from './expression.ts';
declare class Field {
    private field;
    constructor(field: string);
    equals(value: Stringable): Expression;
    notEquals(value: Stringable): Expression;
    isGreaterThan(value: Stringable, includeValue?: boolean): Expression;
    isNotGreaterThan(value: Stringable, includeValue?: boolean): Expression;
    isLowerThan(value: Stringable, includeValue?: boolean): Expression;
    isNotLowerThan(value: Stringable, includeValue?: boolean): Expression;
    isBetween(left: Stringable, right: Stringable, includeBoundaries?: boolean): Expression;
    isNotBetween(left: Stringable, right: Stringable, includeBoundaries?: boolean): Expression;
    exists(): Expression;
    doesNotExist(): Expression;
    isNull(): Expression;
    isNotNull(): Expression;
    isEmpty(): Expression;
    isNotEmpty(): Expression;
    isIn(values: Array<Stringable>): Expression;
    isNotIn(values: Array<Stringable>): Expression;
    hasAll(values: Array<Stringable>): Expression;
    hasNone(values: Array<Stringable>): Expression;
    contains(value: Stringable): Expression;
    doesNotContain(value: Stringable): Expression;
    startsWith(value: Stringable): Expression;
    doesNotStartWith(value: Stringable): Expression;
}
export declare const filterBuilder: (...expressions: Array<MaybeExpression>) => Expression;
export declare const field: (field: string) => Field;
export declare const not: (expression: MaybeExpression) => Not;
export declare const group: (expression: MaybeExpression, ...expressions: Array<MaybeExpression>) => Expression;
export declare function withinGeoRadius(latitude: Latitude, longitude: Longitude, distanceInMeters: number): Expression;
export declare function notWithinGeoRadius(latitude: Latitude, longitude: Longitude, distanceInMeters: number): Expression;
export declare function withinGeoBoundingBox(topLeftCorner: Coordinates, bottomRightCorner: Coordinates): Expression;
export declare function notWithinGeoBoundingBox(topLeftCorner: Coordinates, bottomRightCorner: Coordinates): Expression;
export { Expression, EmptyExpression, FieldExpression, CompositeExpression, Field };
