export declare enum ODataOperators {
    equal = "eq",
    notEqual = "ne",
    greater = "gt",
    greaterOrEqual = "ge",
    less = "lt",
    lessOrEqual = "le",
    contains = "in",
    startswith = "startswith"
}
export declare enum ODataJoinOperators {
    and = "and",
    or = "or"
}
export interface IOdataFilter<DataType> {
    property: keyof DataType;
    operator: ODataOperators;
    value: string | Date | number | boolean;
    not?: boolean;
}
export interface IOdataFilterStatement<DataType> {
    filters: (IOdataFilter<DataType> | IOdataFilterStatement<DataType>)[];
    /** default: or */
    join?: ODataJoinOperators;
    not?: boolean;
}
export declare function getOdataFilter<DataType>(statement: IOdataFilterStatement<DataType>): string;
