import { FieldType } from './utils/SchemaNamespace'; export declare type Condition = { conditionType: ConditionType | AggregateType; fieldName: string | undefined; value: unknown; fieldType?: FieldType; }; export declare const enum AggregateType { AVG = "AVG", SUM = "SUM", MAX = "MAX", MIN = "MIN", COUNT = "COUNT" } export declare const enum ConditionType { BeginsWith = "BeginWith", EndsWith = "EndWith", Contains = "Contain", EqualTo = "EqualTo", Count = "Count", NotEqualTo = "NotEqualTo", GreaterThan = "GreaterThan", GreaterThanOrEqualTo = "GreaterThanOrEqualTo", LessThan = "LessThan", LessThanOrEqualTo = "LessThanOrEqualTo", In = "In", Average = "Average", IsNull = "IsNull", IsNotNull = "IsNotNull", OrderBy = "OrderBy", Limit = "Limit", Or = "Or", And = "And", BeginGroup = "BeginGroup", EndGroup = "EndGroup" } export declare class CloudDBZoneQuery { private readonly queryConditions; private readonly clazz; private tableName?; private depth; private constructor(); static where(clazz: new () => T): CloudDBZoneQuery; addCondition(conditionType: ConditionType | AggregateType, fieldName: string | undefined, value?: any | any[]): this; equalTo(fieldName: string, value: any): this; count(fieldName: string): this; beginsWith(fieldName: string, value: any): this; endsWith(fieldName: string, value: any): this; contains(fieldName: string, value: any): this; notEqualTo(fieldName: string, value: any): this; greaterThan(fieldName: string, value: any): this; greaterThanOrEqualTo(fieldName: string, value: any): this; lessThan(fieldName: string, value: any): this; lessThanOrEqualTo(fieldName: string, value: any): this; in(fieldName: string, values: any[]): this; isNull(fieldName: string): this; isNotNull(fieldName: string): this; orderByAsc(fieldName: string): this; orderByDesc(fieldName: string): this; limit(count: number, offset?: number): this; beginGroup(): this; endGroup(): this; or(): this; and(): this; getClassName(): string; getClazz(): (new () => T) | undefined; getQueryConditions(): Condition[]; getDepth(): number; private checkFieldValidity; private isValidCloudDBQuery; }