type OperatorValuesSingle = string | number | boolean; type OperatorValuesList = string[] | number[] | boolean[] | any[]; type OperatorValues = OperatorValuesSingle | OperatorValuesList; declare enum Condition { Equal = "equal", NotEqual = "notEqual", GreaterThan = "greaterThan", GreaterThanEqual = "greaterThanEqual", LessThan = "lessThan", LessThanEqual = "lessThanEqual", Contains = "contains", IsNull = "isNull", IsNotNull = "isNotNull" } /** * Helper class to generate operator strings for atomic operations. */ declare class Operator { method: string; values: OperatorValuesList | undefined; /** * Constructor for Operator class. * * @param {string} method * @param {OperatorValues} values */ constructor(method: string, values?: OperatorValues); /** * Convert the operator object to a JSON string. * * @returns {string} */ toString(): string; /** * Increment a numeric attribute by a specified value. * * @param {number} value * @param {number} max * @returns {string} */ static increment: (value?: number, max?: number) => string; /** * Decrement a numeric attribute by a specified value. * * @param {number} value * @param {number} min * @returns {string} */ static decrement: (value?: number, min?: number) => string; /** * Multiply a numeric attribute by a specified factor. * * @param {number} factor * @param {number} max * @returns {string} */ static multiply: (factor: number, max?: number) => string; /** * Divide a numeric attribute by a specified divisor. * * @param {number} divisor * @param {number} min * @returns {string} */ static divide: (divisor: number, min?: number) => string; /** * Apply modulo operation on a numeric attribute. * * @param {number} divisor * @returns {string} */ static modulo: (divisor: number) => string; /** * Raise a numeric attribute to a specified power. * * @param {number} exponent * @param {number} max * @returns {string} */ static power: (exponent: number, max?: number) => string; /** * Append values to an array attribute. * * @param {any[]} values * @returns {string} */ static arrayAppend: (values: any[]) => string; /** * Prepend values to an array attribute. * * @param {any[]} values * @returns {string} */ static arrayPrepend: (values: any[]) => string; /** * Insert a value at a specific index in an array attribute. * * @param {number} index * @param {any} value * @returns {string} */ static arrayInsert: (index: number, value: any) => string; /** * Remove a value from an array attribute. * * @param {any} value * @returns {string} */ static arrayRemove: (value: any) => string; /** * Remove duplicate values from an array attribute. * * @returns {string} */ static arrayUnique: () => string; /** * Keep only values that exist in both the current array and the provided array. * * @param {any[]} values * @returns {string} */ static arrayIntersect: (values: any[]) => string; /** * Remove values from the array that exist in the provided array. * * @param {any[]} values * @returns {string} */ static arrayDiff: (values: any[]) => string; /** * Filter array values based on a condition. * * @param {Condition} condition * @param {any} value * @returns {string} */ static arrayFilter: (condition: Condition, value?: any) => string; /** * Concatenate a value to a string or array attribute. * * @param {any} value * @returns {string} */ static stringConcat: (value: any) => string; /** * Replace occurrences of a search string with a replacement string. * * @param {string} search * @param {string} replace * @returns {string} */ static stringReplace: (search: string, replace: string) => string; /** * Toggle a boolean attribute. * * @returns {string} */ static toggle: () => string; /** * Add days to a date attribute. * * @param {number} days * @returns {string} */ static dateAddDays: (days: number) => string; /** * Subtract days from a date attribute. * * @param {number} days * @returns {string} */ static dateSubDays: (days: number) => string; /** * Set a date attribute to the current date and time. * * @returns {string} */ static dateSetNow: () => string; } export { Condition, Operator, OperatorValues, OperatorValuesList };